TDDïŒãã¹ãé§åéçºïŒãäœéšããªãã Go ãåŠã¹ãåŠç¿ã³ã³ãã³ããLearn Go with Testsãã玹ä»ããâïžå šãŠã®ã³ã³ãã³ãã宿œããŠã¿ãŠïŒéåžžã«è¯ãã£ãã®ã§ãŸãšããããšã«ããð¡
- Go ã«å ¥éã§ãã
- TDD ã®ãµã€ã¯ã« (Red / Green / Refactor) ãäœéšã§ãã
- ã³ã³ãã³ã㯠"35çš®é¡" ããã
- ç¡æã§åŠã¹ã
- GitBook (GitHub) ã«å ¬éãããŠãã
- æ¥æ¬èªå¯Ÿå¿
è±èªç ð
æ¥æ¬èªç ð
ã³ã³ãã³ãäžèЧ
ãªããšã35çš®é¡ããã³ã³ãã³ããããâïž
Go fundamentals ð¢ 21çš®é¡
- Install GoïŒGo ãã€ã³ã¹ããŒã«ããïŒ
- Hello, worldïŒHello, WorldïŒ
- IntegersïŒæŽæ°ïŒ
- IterationïŒå埩ãç¹°ãè¿ãïŒ
- Arrays and slicesïŒé åãšã¹ã©ã€ã¹ïŒ
- Structs, methods & interfacesïŒæ§é äœãã¡ãœãããã€ã³ã¿ãŒãã§ãŒã¹ïŒ
- Pointers & errorsïŒãã€ã³ã¿ãšãšã©ãŒïŒ
- MapsïŒãããïŒ
- Dependency InjectionïŒäŸåæ§æ³šå ¥ïŒ
- MockingïŒã¹ã¿ãã»ã¢ãã¯ïŒ
- ConcurrencyïŒäžŠè¡æ§ïŒ
- SelectïŒéžæïŒ
- ReflectionïŒãªãã¬ã¯ã·ã§ã³ïŒ
- SyncïŒåæïŒ
- ContextïŒã³ã³ããã¹ãïŒ
- Intro to property based testsïŒããããã£ããŒã¹ã®ãã¹ãæŠèŠïŒ
- MathsïŒæ°åŠïŒ
- Reading filesïŒãã¡ã€ã«ã®èªã¿åãïŒ
- TemplatingïŒãã³ãã¬ãŒãïŒ
- GenericsïŒãžã§ããªã¯ã¹ïŒ
- Revisiting arrays and slices with genericsïŒãžã§ããªã¯ã¹ã䜿çšããé åãšã¹ã©ã€ã¹ã®åæ€èšïŒ
Build an application ð¢ 6çš®é¡
- HTTP serverïŒHTTP ãµãŒããŒïŒ
- JSON, routing and embeddingïŒJSONãã«ãŒãã£ã³ã°ãåã蟌ã¿ïŒ
- IO and sortingïŒIOãäžŠã³æ¿ãïŒ
- Command line & project structureïŒã³ãã³ãã©ã€ã³ãããã±ãŒãžæ§é ïŒ
- TimeïŒæéïŒ
- WebSocketsïŒãŠã§ããœã±ããïŒ
Testing fundamentals ð¢ 2çš®é¡
- Introduction to acceptance testsïŒåãå ¥ããã¹ãã®ç޹ä»ïŒ
- Scaling acceptance testsïŒåãå ¥ããã¹ããæ¡åŒµããïŒ
Questions and answers ð¢ 4çš®é¡
- OS execïŒOS å®è¡ïŒ
- Error typesïŒãšã©ãŒã®çš®é¡ïŒ
- Context-aware ReaderïŒã³ã³ããã¹ãèªèãªãŒããŒïŒ
- Revisiting HTTP Handlers ïŒHTTP ãã³ãã©ãŒã®åæ€èšïŒ
Meta / Discussion ð¢ 2çš®é¡
- Why unit tests and how to make them work for youïŒãŠããããã¹ãæ©èœãäœæããæ¹æ³ïŒ
- Anti-patterns ïŒã¢ã³ããã¿ãŒã³ïŒ
ããããçç± 1
( 'Ï')ïŒ Red! Green! Refactor!
äœããã TDDïŒãã¹ãé§åéçºïŒã®ãµã€ã¯ã«ãäœéšãïŒè¯ãã宿ã§ããããšã Learn Go with Tests ã®1çªã®çŽ æŽãããã ãšæãïŒæåã«æåŸ
ãããã¹ãã³ãŒããæžããã©ïŒé¢æ°åããªã undefined
ãšã©ãŒã«ãªã£ãŠïŒã³ã³ãã€ã«ãéãã€ã€ïŒæåŸ
ããå®è£
ã«è¿ä»ããŠããïŒãããŠïŒãªãã¡ã¯ã¿ãªã³ã°ãããªããäžæ©äžæ©æ¹åããïŒ
å®éã«äœéšããŠã¿ããšããããªã«æ©å¹ ãå°ããé²ãããããã ããããéå°ãªãªãã¡ã¯ã¿ãªã³ã°ãå ±éåã¯äžèŠãªãã ãããšããããšã«æ°ä»ããâïž
- ãã¹ãã³ãŒããæžãïŒèœã¡ã : RedïŒ
- ã³ã³ãã€ã«ãéãã€ã€æäœéã®å®è£ ãããïŒèœã¡ã : RedïŒ
- å®è£ ãããïŒéã : GreenïŒ
- ãªãã¡ã¯ã¿ãªã³ã°ãããïŒéã : GreenïŒ
ããããçç± 2
( 'Ï')ïŒ Go ã«è©³ãããªããïŒ
TDDïŒãã¹ãé§åéçºïŒã ãã§ã¯ãªãïŒGo ãã¡ãããšåŠã¹ãã®ãè¯ãã£ãïŒç¹ã« Go fundamentalsïŒ21çš®é¡ïŒã¯ç®æ¬¡ãèŠããšãããéãïŒHello Worldã»ã¹ã©ã€ã¹ã»ãããã®ãããªåºæ¬çãªãããã¯ããå§ãŸã£ãŠïŒäŸåæ§æ³šå ¥ã»goroutineã»ãªãã¬ã¯ã·ã§ã³ã»ãžã§ããªã¯ã¹ã®ãããªå®è·µçãªãããã¯ãŸã§åŠã¹ãïŒ
ä»ã«ã Build an applicationïŒ6çš®é¡ïŒã§ã¯ïŒnet/http
ã䜿ã£ã API æ§ç¯ã CLI æ§ç¯ãäœéšã§ããïŒGo ã§ API ãå®è£
ãããšãã®ãã¹ãæŠç¥ã«æ©ãããšããããšæããïŒãããã£ãåèã«ããªãâïž
ãšã¯èšãïŒå®å šã« Go å ¥éè ã ãšéäžããé£ãããªã£ãŠããŸããšæãã®ã§ïŒå人差ã¯ããããã ãã©ïŒïŒA Tour of Go ãããã¯ãã£ãŠãããšè¯ãããð
ããããçç± 3
( 'Ï')ïŒ ãã¹ãææ³ã«è©³ãããªããïŒ
Learn Go with Tests ã¯ãã¹ãææ³ã«å¯Ÿããçè§£ãæ·±ãŸãã®ãè¯ãã£ãïŒTestify ãªã©ã¯äœ¿ããã«ã¢ãµãŒããå®è£ ãããïŒããŒãã«é§åãã¹ã (Table Driven Test) ã»ããããã£é§åãã¹ã (Property Based Test)ã»æ¿èªãã¹ã (Approval Test)ã»ã¢ãã¯ãªã©ïŒå®è·µçã«äœ¿ãããã¹ãææ³ãåºãŠããïŒ
ä»ãŸã§ããã¹ããæžãã«ããããããã¯è«Šããã...ããšæ©ãã ããšããã£ãããã£ãšåèã«ãªããšæãâïž
æ¥æ¬èªã«é¢ã㊠ð¯ðµ
Learn Go with Tests ã«ã¯æ¥æ¬èªç ãã¹ãé§åéçºã§GOèšèªãåŠã³ãŸããã
ãããïŒãšãŠãèªã¿ããã翻蚳ãããŠãããïŒGoogle æ€çŽ¢ã§åè£ã«åºãŠããããšããã£ãŠïŒæ€çŽ¢æµå
¥ã§æ¬ã³ã³ãã³ããç¥ã人ãå€ããšæãïŒç¿»èš³ã«æè¬ð
ãããçŸæç¹ã ãšïŒããŸãã¡ã³ããã³ã¹ïŒãã«ãªã¯ãšã¹ãã®åã蟌ã¿ïŒã¯ãããŠãªãïŒè±èªç (quii/learn-go-with-tests) ã«å¯ŸããæŽæ°ã®åæ ãæ¢ãŸã£ãŠããïŒ
ã¡ãªã¿ã«ä»¥äžã®ã³ã³ãã³ãã«ã¯æ¥æ¬èªçããªãïŒä»åã¯è±èªçã§å®æœããããïŒã€ãã§ã«ç¿»èš³ãè¡ã£ãïŒGo fundamentals ã®4çš®é¡ã¯æ¢ã«å®äºããŠãã«ãªã¯ãšã¹ãã¯åºããŠããâ åŒãç¶ãæ®ããé²ããŠããäºå®ã ãã©ïŒãããªããžããªéçšãåã£ãŠãªãã£ããã¡ã³ãããšããŠãæäŒããããïŒã³ã©ãã¬ãŒã¿ãŒæš©éããããããšå¬ãããªãŒãšâïžâïžâïž
æ¥æ¬èªçæªå¯Ÿå¿ã®ã³ã³ãã³ãäžèЧ
- Go fundamentals
- Reading filesïŒãã¡ã€ã«ã®èªã¿åãïŒ
- TemplatingïŒãã³ãã¬ãŒãïŒ
- GenericsïŒãžã§ããªã¯ã¹ïŒ
- Revisiting arrays and slices with genericsïŒãžã§ããªã¯ã¹ã䜿çšããé åãšã¹ã©ã€ã¹ã®åæ€èšïŒ
- Testing fundamentals
- Introduction to acceptance testsïŒåãå ¥ããã¹ãã®ç޹ä»ïŒ
- Scaling acceptance testsïŒåãå ¥ããã¹ããæ¡åŒµããïŒ
- Meta / Discussion
- Anti-patterns ïŒã¢ã³ããã¿ãŒã³ïŒ
è±èªç GitHub ãªããžã㪠ðŸ
æ¥æ¬èªç GitHub ãªããžã㪠ðŸ
ãŸãšã
Learn Go with Tests ã§ãã¹ãé§åéçºãäœéšããªãã Go ãåŠãŒãâïž
çŽ æŽãããã³ã³ãã³ãã§ããâïž
åè : æèŠæé
GitHub ã®ã³ãããå±¥æŽã確èªãããã35çš®é¡ãå
šãŠã宿œãããŸã§ã®æèŠæéã¯1ã¶æã»ã©ïŒ2/3 ~ 3/7ãŸã§ïŒã ã£ãïŒæ¯æ¥ã³ãã³ããš1æé~1æéåã»ã©åãçµãã§ããããïŒæèŠæéã®åèãšããŠã¯ã30æéããããã ãšæãïŒè¿œå ã§èª¿æ»ããããïŒèª€ããçŽããŠãã«ãªã¯ãšã¹ããéã£ãŠããæéãå«ããŠããïŒã³ãããæ°ã¯ 237
ã ã£ãð