カラクリスタ

「輝かしい青春」なんて失かった人のブログ

AppEngine/Go で dep を使って vendoring する時の構成

ã«ã¤ãã¦ãéã«ã¡ã¢ã

çµè«ããåã«æ¸ã

ã¨ããããããä»ã®æ§é ã¯ãããªæãã«ãªã£ã¦ãã:

<ruby>a<rp>(</rp><rt></rt><rp>)</rp>p<rp>(</rp><rt></rt><rp>)</rp>p<rp>(</rp><rt></rt><rp>)</rp>n<rp>(</rp><rt></rt><rp>)</rp>a<rp>(</rp><rt></rt><rp>)</rp>m<rp>(</rp><rt></rt><rp>)</rp>e<rp>(</rp><rt></rt><rp>)</rp></ruby>/    â ã¢ããªã±ã¼ã·ã§ã³ã® 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/
  <ruby>s<rp>(</rp><rt></rt><rp>)</rp>o<rp>(</rp><rt></rt><rp>)</rp>u<rp>(</rp><rt></rt><rp>)</rp>r<rp>(</rp><rt></rt><rp>)</rp>c<rp>(</rp><rt></rt><rp>)</rp>e<rp>(</rp><rt></rt><rp>)</rp>s<rp>(</rp><rt></rt><rp>)</rp></ruby>   â AppEngine/Go ã§ä½¿ãå®è£ã®ä¸­èº«
vendor/
  <ruby>a<rp>(</rp><rt></rt><rp>)</rp>p<rp>(</rp><rt></rt><rp>)</rp>p<rp>(</rp><rt></rt><rp>)</rp>n<rp>(</rp><rt></rt><rp>)</rp>a<rp>(</rp><rt></rt><rp>)</rp>m<rp>(</rp><rt></rt><rp>)</rp>e<rp>(</rp><rt></rt><rp>)</rp></ruby>   â ../src ã¸ã® symlink
  <ruby>d<rp>(</rp><rt></rt><rp>)</rp>e<rp>(</rp><rt></rt><rp>)</rp>p<rp>(</rp><rt></rt><rp>)</rp>s<rp>(</rp><rt></rt><rp>)</rp></ruby>      â github ç­ãã dep ã§åã£ã¦ãããã¡ã¤ã«é¡

ããã§å®éã«éçºãã¦ããæ中ã§ã¯ã

  • {appname}/dist/gopath ã GOPATH ã¨ãã¦æå®ããä¸ã§ãå種ã³ãã³ããå®è¡
    • ããã«ã¯ dep ensure -update 㯠å«ã¾ãªã
    • direnv ã¿ãããªã®ã使ãå ´åãGOPATH ãèªå設å®ããæ§ã«ããæ¹ã便å©ãããããªãï¼è¦æ¤è¨¼ï¼
  • {appname}/vendor/{appname} ã {appname}/src ã¸ã® symlink ã¨ãã¦ãã
    • ããããã¨ãã¢ããªã±ã¼ã·ã§ã³ã®ã³ã¼ããã import "{appname}/path/to/component" ã§åç§ã§ãã
    • ãã¨ãã¢ããªã±ã¼ã·ã§ã³ä¾å­ã®ãã¡ã¤ã«ããã£ããã¨ã¾ã¨ãããã¦ä¾¿å©
  • å種ã³ãã³ãã®å®è¡ã®éã«ã¯ã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 ã§æ¸ãã¦ãããããã¾ããã


ã¾ããæè¿ã® éçº ãã¦ããæãã ã¨ãããããæãã ãã£ã¦è©±ã§ãããã¯ãã