DUICUO

インタビュアー: 独自のオープンソース ライブラリはありますか?

この記事は、WeChat公式アカウント「GoLang Full Stack」(Xiaokun Gege氏執筆)からの転載です。転載の許可については、GoLang Full Stack公式アカウントまでお問い合わせください。

新しい機能に直面したとき、私たちが最初に考えるのは通常、「直接使用できるライブラリはあるだろうか?」ということです。

そのため、開発中に最も多く行ったのはプルアップでした。

しかし、コードを書くスキルが上達するにつれて、頻繁に使用するライブラリが数多く存在するようになります。多くの人は、前のプロジェクトで作成したコードをそのまま次のプロジェクトにコピーしてしまうかもしれません。

しかし、これはあまり洗練されていないようです。

他の専門家と同様に、独自のライブラリを他の人が使用できるようにリリースできますか?

答えはイエスです。

そこでこの記事では、GitHub でリポジトリを公開するまでの手順を順を追って説明します。

新しいプロジェクト

まず、GitHub に新しいパブリック プロジェクトを作成する必要があります。

ここでは Public タイプを選択する必要があります。そうしないと、通常の `go get` コマンドでコードを取得できなくなります。

プロジェクトの名前は何でも構いません。私はランダムに選んだ名前なので、KUD と呼びます。

コードを準備する

新しいプロジェクトを作成して、Goのmodを初期化しましょう。今のところ、ライブラリ管理には他のツールは使わないほうがいいと思います。

プロジェクトの下で実行:

 go mod init github .com / GoLangStackDev / kud

ここで、github.com/GoLangStackDev/kud はリポジトリ アドレスです。これは、新しいリポジトリを作成した後のプロンプト ページに表示されます。

「.git」を含めないように注意してください。

「.git」を含めないように注意してください。

「.git」を含めないように注意してください。

すると、go.mod ファイルは次のようになります。

モジュール github .com / GoLangStackDev / kud

1.17へ進む

Go バージョン 1.17 は私のローカルの Go バージョンであり、あなたのものとは異なる場合がありますが、それは問題ではありません。

コードを書き始める

これでコードの作成を開始できます。

ここでコードをいくつか書いてみます。string.go という新しいファイルを作成し、以下のコードを記述してください。

パッケージクッド

輸入
「数学/ランド」
"時間"


// GetRandomStringはランダムな文字列を生成します
GetRandomString関数( l int )文字列{
文字列: = "23456789abcdefghijkmnpqrstuvwxyz"
バイト: = [ ]バイト(文字列)
結果: = [ ]バイト{ }
r : = rand .New ( rand .NewSource ( time .Now ( ) .UnixNano ( ) ) )
i : = 0 ; i < l ; i ++ {
結果= append (結果,バイト[ r .Intn ( len (バイト) ) ] )
}
文字列を返す結果
}

書き終わったらリポジトリにアップロードできます。

ここではコードのアップロード部分は省略します。

リリースバージョン

コードが正常にアップロードされると、`go get` を実行して取得するだけで、他のサードパーティ ライブラリと同じように使用できるようになります。

ただし、これには問題があります。プルするたびに、マスター ブランチから最新のコードが取得されます。

次のように引き下げます。

 $ go get github .com / GoLangStackDev / kud
入手してください: github .com / GoLangStackDev / kud v0 .0 .0 - 20220111073608 - 36510 a889cc4 を追加しました

バージョン名は自動的に v0.0.0 になります。

バージョンをリリースするにはどうすればいいですか?

バージョンのリリースも非常に簡単です。コードにタグを付けるだけです。

ただし、タグ バージョンは vx.xx のような 3 桁の形式である必要があります。そうでないと、go mod はバージョン番号を見つけることができません。

タグの追加方法については詳しく説明しません。

これに v0.1.1 のタグを付けました。

これで、バージョン別にコードを取得できるようになりました。

 $ go get github .com / GoLangStackDev / kud@v0 .1 .1
入手してください:アップグレードされた github .com / GoLangStackDev / kud v0 .0 .0 - 20220111073608 - 36510 a889cc4 => v0 .1 .1

使用

他のライブラリと同じように使用されます。

パッケージメイン

輸入
「fmt」
「github.com/GoLangStackDev/kud」


関数main ( ) {
fmt .Println ( kud .GetRandomString ( 3 ) )
}

学習に失敗しましたか?

今すぐライブラリをアップロードしてください。