について、雑にメモ。
結論から先に書く
と、おおよそ、今の構造はこんな感じになっている:
{appname}/ → アプリケーションの root directory
dist/ → deploy する際の directroy
assets/ → 静的 assets
gopath/ → env GOPATH=/path/to/gopath する為の directory
src → ../../vendor への symlink
app.yaml → appengine の app.yaml
main.go → AppEngine/Go の main.go
src/
{sources} → AppEngine/Go で使う実装の中身
vendor/
{appname} → ../src への symlink
{deps} → github 等から dep で取ってきたファイル類
それで実際に開発している最中では、
a/dist/gopath
をGOPATH
として指定した上で、各種コマンドを実行- これには
dep ensure -update
は 含まない direnv
みたいなのを使う場合、GOPATH
を自動設定する様にした方が便利かもしれない(**要検証**)
- これには
a
を( /vendor/a( )p ( )p ( )n ( )a ( )m ( )e ( ) a
への symlink としている( /src)p ( )p ( )n ( )a ( )m ( )e ( ) - こうすると、アプリケーションのコードから
import "a
で参照できる( /path/to/component")p ( )p ( )n ( )a ( )m ( )e ( ) - あと、アプリケーション依存のファイルをすっきりとまとめられて便利
- こうすると、アプリケーションのコードから
- 各種コマンドの実行の際には、
npm
+node-saku
を使っている- 基本的には
saku.md
を書いて、そのコマンドの実行をnpm
で行うというスタイル - この辺りの toolchain は割と好みで選べば良いと思う
- 基本的には
とりあえず、僕は今、こういうディレクトリ構造で開発しているけど、これで困った事が今のところ無いので、 割と良い感じの構造になっているのでは? と個人的に思っています。
ただ、Application の source code の割り振り方については、とりあえず [[DDD]]([[ドメイン駆動開発]])とか、 そういう感じのヤツを参照した方が良いかもしれないじゃね? と思ってはいますが、僕がその辺り詳しくないので、
なんとなく、こういう感じで良いんじゃね?
的な構造でやっています。まぁ今現在の開発の進み具合から言って、MVC の内の View と Controller を事始めしたぐらいで、 Model のところまで辿り付いてないっつーのも有るのですけれどもね、この辺りについては。
あとはまぁ、僕は今回、 [[GopherJS]] で [[React]] + [[Redux]] っぽい何かを自前で実装していたりもしており、 かつ HTML は Golang 側の DSL でなんとかする、という方針を取っているため、 [[HTML]] とか [[JavaSscript]] とかを、 まったくもって直接は書いてない、と言う感じになっています。ただ、 [[CSS]] については、その [[SCSS]] で書いていたりもしますが。
まぁ、最近の [[開発]] している感じだと、そういう感じだよって話でした。はい。