Open32
goのdocker開発環境を作る

プロジェクトレイアウトなんてものがあるなんか知らんかったぞ

他にもこういうのあるのか?

公式を読んでおく

読む前にモジュールの概念を理解しておきなさいと言われる。
こういうのを飛ばせないからスピードが出ない。

goはモジュールがあり、その配下でさらにパッケージに区切られる

ざっと読んで雰囲気を思い出した

パッケージの話が分かったようで分からん。
特に以下の様な構成になっているにも関わらず、パッケージ名がmodname
となるのはパッケージ名を個別に定義してない場合、パッケージ名はモジュール名の最後のパスと合致するから?
project-root-directory/
go.mod
modname.go
modname_test.go
auth.go
auth_test.go
hash.go
hash_test.go

Internal
外部公開しないパッケージ
これは普通のwebアプリケーションでも意識する必要あるの?

そもそも何でこんなの読んでる?
→環境作るにあたって基本的なディレクトリ構成を知っておきたい
→デファクトスタンダード的なものがないか調べる

パッケージが分からなくなった

改めて色んな資料みるもわからない。
-
複数ファイルで構成可能
-
同じディレクトリ内で混在はNG
-
つまり1ディレクトリ= 1パッケージ(ネストは除く)と理解
-
internalパッケージが外部公開されないのは分かった
- https://qiita.com/tenntenn/items/d8db61720a5ce7fbdeb6
- だが一般的なwebアプリケーション開発で使うのか?というのは疑問

当初の認識通り自由に決めれるのか

The package name matches the last path component of the module name
の記述が分からん