Open32

goのdocker開発環境を作る

Hidden comment
Hidden comment
ksk nksk n

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

ksk nksk n

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

ksk nksk n

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

ksk nksk n

https://go.dev/doc/modules/layout#basic-package
パッケージの話が分かったようで分からん。

特に以下の様な構成になっているにも関わらず、パッケージ名がmodnameとなるのはパッケージ名を個別に定義してない場合、パッケージ名はモジュール名の最後のパスと合致するから?

project-root-directory/
  go.mod
  modname.go
  modname_test.go
  auth.go
  auth_test.go
  hash.go
  hash_test.go
ksk nksk n

Internal

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

ksk nksk n

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

Hidden comment
ksk nksk n

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

ksk nksk n

改めて色んな資料みるもわからない。

  • 複数ファイルで構成可能

  • 同じディレクトリ内で混在はNG

  • つまり1ディレクトリ= 1パッケージ(ネストは除く)と理解

  • internalパッケージが外部公開されないのは分かった

ksk nksk n

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