Qiita)前回の続き。なんだけど,今回はパッケージのお話。関数の中にゴリゴリ書いてましたが,今後のことを考えて,これを使ってパッケージ化の作業を行うことにします。ユリウス日計算のパッケージ化まずは,前回のコードから計算処理部分をきちんと分離します。57023日ユリウス日の端数が鬱陶しいので修正ユリウス日の整数部分のみ計算しています。あと1970年1月1日を境界として計算方法を変えています。本当はユリウス暦の場合の計算も含めるべきなんでしょうけど,今回は割愛します。上のコードのうち修正ユリウス日計算関数を別ファイルにしてパッケージ化します。ちなみにパッケージ内の関数等は名前の先頭が大文字のものだけが外部から参照可能です。言語およびそのコミュニティは名前にうるさいようです。「実践Go言語1」によると慣例では,パッケージ名は小文字でひとつの単語です。アンダースコアや大文字が混ざって(mixedCaps)はいけません。パッケージ使用者がその名前をタイプすることを考慮して,簡潔すぎるぐらいにしてください。したかったんだけど,それでは筋が悪いらしい。一つの慣例は,パッケージ名がそのソースディレクトリのベース名であるということです。src/pkg/encoding/base64に置かれているパッケージは,“encoding/base64”としてインポートし,名前はbase64となります。encoding_base64やencodingBase64とはなりません。パッケージの指定はハンガリアン記法とかではなく単語をディレクトリで区切って階層化することで整理できそうです。慣れてる人には比較的とっつきやすい仕組みかもしれません。長い名前は,慣れたとしても読みやすくなることはありません。複雑もしくは微妙なニュアンスを持つものに名前をつけるときは,すべての情報を名前で表現しようとするより,通常は役立つドキュメントコメントを書いたほうがよいでしょう。使えばいいのですが,記述によってパッケージをどこに配置するかが変わります。以下はパッケージが見つからなくてエラーになってる例です。指定されるフォルダ以下を探すようです。以下もパッケージが見つからなくてエラーになってる例です。言語ではパッケージを相対パスで指定するのは(デバッグ時などを除いて)良くないと言われています。コマンドでパッケージをビルドする際,相対パスを解釈しないようにしているからのようです2。&quot;github.com/username/package&quot;のように指定することで,任意に取り込むことが可能です。github.com/spiegel-im-spiegel/astrocalc/modjulianこのパッケージを使って書いてみます。パッケージを以下のように配置してビルドします。57023日まだまだ続くよ。次回はテストについて。言語に関するブックマーク集はこちら。Go”[return]これについてはいろいろな意見があるようですが,妥当な割り切りだと思います。よって管理している場合は重要なポイントです。