転è·ããããšããŠé¢æ¥ã«åæ Œããªããã°ãªããªããšããçã£å
ã«ãé¢æ¥ã®æºåãããªããã°ããšèããã®ã¯äžæè°ã§ã¯ãããŸãããã HackerRank ã®åé¡ã解決ããã³ãŒãã£ã³ã° ã€ã³ã¿ãã¥ãŒã®ã¯ã©ãã¯ãèªã¿ãArrayList ã®ä»çµã¿ãš LinkedList ãšã®éããèŠããŠãã ããã ããããã圌ãã¯ãœãŒãã«ã€ããŠãå°ãããããããŸããããã¯ã€ãã¯ãœãŒããããããæè¯ã®éžæã§ãããšèšãã®ã¯æããã«å°éå€ã§ãã
ããããåŸ
ã£ãŠãã ãããããªã㯠8 æ¥ XNUMX æéããã°ã©ãã³ã°ããèå³æ·±ãåé¡ãéèŠãªåé¡ã解決ããŸãããããŠæ°ããè·å Žã§ãããã©ã¹ãã€ãã¹ãåããåãããšãè¡ãããšã«ãªããŸãã ããããããã«ãããããããé¢æ¥ã«åæ Œããã«ã¯ãäœããã®æ¹æ³ã§è¿œå ã®æºåãããå¿
èŠããããæ¥åžžã®ã¹ãã«ã磚ãã ãã§ãªããçŸåšã®ä»äºã§ã¯å¿
èŠããªãã次ã®ä»äºã§ãå¿
èŠã«ãªãå¯èœæ§ãäœãããšãåŠã¶å¿
èŠããããŸãã ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã¯ç§ãã¡ã®è¡ã«æµããŠããããããŠããããªããçå€äžã«ç§ãã¡ãèµ·ãããããç§ãã¡ã¯ç®ãéããŠæã«ããŒã®äžã§æèãåãæ»ãããšããããã«æšã®å¹
ã®åšããæ£æ©ããããšãæžããªããã°ãªããªããšããããªãã®å察ã«å¯ŸããŠãç§ã¯ããèšããŸããããç§ããµãŒã«ã¹ã§ä»äºãåŸãããšãã§ãããããããŠç§ã®äž»ãªããªãã¯ã¯ãŸãã«ââããã§ãããšçããã§ããã - ãããªãããããããã§ããç§ã¯åæããŸãã ãã®ã¹ãã«ã¯ãã¹ãããå¿
èŠããããŸãã
ãããããªãçŸåšã®ä»äºã«ç¡é¢ä¿ãªã¹ãã«ããã¹ãããã®ã§ãããã? ãã æµè¡ã£ãããïŒ Googleãããããã£ãŠããããã§ããïŒ ãããã¯ãããªãã®å°æ¥ã®ããŒã ãªãŒããŒã¯é¢æ¥åã«ãã¹ãŠã®ãœãŒãæ¹æ³ãåŠã°ãªããã°ãªããªãã£ãããä»ã§ã¯ãåªããããã°ã©ããŒã¯çãæååããåæãèŠã€ããå®è£
ãæèšããŠããã¯ãã ããšä¿¡ããŠããããã§ãã
ãŸããããªã㯠Google ã§ã¯ãããŸãã (c)ã Google ã«ã¯äœè£ããã£ãŠããäžè¬äŒæ¥ã«ã¯äœè£ããããŸããã Google ã¯åŸæ¥å¡ã®ããŒã¿ãåæããçµæããªãªã³ããã¯ã®çµéšãæã€ãšã³ãžãã¢ã¯ç¹å®ã®ã¿ã¹ã¯ã«å¯ŸåŠããã®ãåŸæã§ãããšããçµè«ã«éããŸããã ããã«ãéžèããã»ã¹ãèšèšããããšã§ãæ°åŠã®åé¡ãç°¡åã«è§£ãããšãã§ããªãããã«åªç§ãªãšã³ãžãã¢ãæ°åæ¡çšã§ããªãå¯èœæ§ããããšãããªã¹ã¯ãè² ãäœè£ãåŸãããŸãã ããããããã¯åœŒãã«ãšã£ãŠåé¡ã§ã¯ãããŸãããGoogle ã§åããã人ã¯ããããããŸããããã®ããžã·ã§ã³ã¯ééãããã§ãããã
ããŠãçªã®å€ãèŠãŠã¿ãŸããããããªãã®ãªãã£ã¹ã®åã§ãããªãã®ããã«åããããšèããŠãããšã³ãžãã¢ããŸã ãã³ããã£ã³ããèšå¶ããŠããããéçºè
ã次ã«äœã Spring ã¢ãããŒã·ã§ã³ãã€ã³ã¹ããŒã«ããå¿
èŠãããããã¹ã¿ãã¯ãªãŒããŒãããŒã§æ¢ããŠããããšãå€ããšããŸããã©ã³ã¯ä»ãã¢ã«ãŽãªãºã ã®è€éãããããæããã«ãGoogle ãã³ããŒãã¹ããã©ãããèããææãæ¥ãããã§ãã
ããŠãä»å Google ã倱æããŠçããæäŸããªãã£ãããã©ãããã°ããã§ãããã? éçºè
ãä»äºã§äœãããããæ£ç¢ºã«ç¢ºèªããŠãã ããã éçºè
ã«ãããŠå€§åã«ããŠããããšã¯äœã§ãã?
誰ãéçšãããã®åºæºãäœæãããããã®ã¹ãã«ãæ£ç¢ºã«ãã¹ããããã¹ããéçºããŸãã
ThoughtWorksã®
ThoughtWorksã¯ãããšäœã®é¢ä¿ãããã®ã§ãããã? ããã§ãç§èªèº«ã®æš¡ç¯çãªé¢æ¥ã®äŸãèŠã€ããŸããã ThoughtWorksãšã¯äœã§ãã? ã€ãŸããããã¯äžåœãã·ã³ã¬ããŒã«ããã¢ã¡ãªã«å€§éžãŸã§äžçäžã«ãªãã£ã¹ãæ§ãããã€ãšã³ãã®ã³ã³ãµã«ãã£ã³ã°äŒç€Ÿã§ãçŽ 25 幎ééçºåéã®ã³ã³ãµã«ãã£ã³ã°ãè¡ã£ãŠãããããŒãã£ã³ã責任è
ãåããç¬èªã®ãµã€ãšã³ã¹éšéãæã£ãŠããŸãããã¡ãŠã©ãŒã ãœãããŠã§ã¢ ãšã³ãžãã¢ã®å¿
èªæž 10 åã®ãªã¹ããæ¢ããŠããå Žåããããããã®ãã¡ 2 ïœ 3 åã¯ãMartin Fowler ã®ãRefactoringãã Sam ã®ãBuilding Microservices: Designing Fine-Grained Systemsããªã©ãThoughtWorks ã®æ
åœè
ã«ãã£ãŠæžãããŠããã§ãããããã¥ãŒãã³ãŸãã¯é²åçã¢ãŒããã¯ãã£ã®æ§ç¯
ãããªãã¯ã»ã¯ã¢ãã¬ããã«ã»ããŒãœã³ãºãããŒã«ã»ãã©ãŒãèã
å瀟ã®ããžãã¹ã¯ããªãé«äŸ¡ãªãµãŒãã¹ãæäŸããããšã§æãç«ã£ãŠããŸããã顧客ã¯å°éç¥èãå
éšæšæºããããŠãã¡ãã人æã§æ§æãããé©ç°çãªå質ã«ãéãæã£ãŠããŸãã ãããã£ãŠãããã§ã¯é©åãªäººæãéçšããããšãéèŠã§ãã
ã©ã®ãããªäººãé©ä»»ã§ããïŒ ãã¡ããã人ããããããŸããŸãªãã®ããããŸãã ThoughtWorks ã¯ãéçºè
ã®ããžãã¹ ã¢ãã«ã«ãšã£ãŠæãéèŠãªåºæºã¯æ¬¡ã®ãšããã§ãããšå€æããŸããã
- ãã¢ã§éçºããèœåã ããã¯çµéšãã¹ãã«ã§ã¯ãªããèœåã§ãã ãã¢ããã°ã©ãã³ã°ã5幎ãç¶ããŠãã人ãæ¥ããšã¯èª°ãæã£ãŠããŸãããã人ã®æèŠãåãå ¥ããèãåã¯å¿ èŠãªã¹ãã«ã§ãã
- ãã¹ããäœæããçæ³çã«ã¯ TDD ãå®è·µããèœå
- SOLID ãš OOP ãç解ããé©çšã§ããã
- ããªãã®æèŠãçºè¡šããŠãã ããã ã³ã³ãµã«ã¿ã³ããšããŠãã¯ã©ã€ã¢ã³ãã®éçºè ãä»ã®ã³ã³ãµã«ã¿ã³ããšååããªããã°ãªããŸããããã®äººãäœããããŸãè¡ãæ¹æ³ãç¥ã£ãŠããŠãããããããŒã ã®ä»ã®ã¡ã³ããŒã«ãŸã£ããäŒããããšãã§ããªãå ŽåãããŸãã¡ãªããã¯ãããŸããã
ããã§ãåè£è ã®ãããã®ç¹å®ã®ã¹ãã«ãè©äŸ¡ããããšãéèŠã§ãã ããã§ãThoughtWorks ã§ã®é¢æ¥ã®çµéšã«ã€ããŠè©±ããããšæããŸãã ç§ã¯ã·ã³ã¬ããŒã«ã«è¡ã£ãŠåæ Œãããšããã«èšããŸãããæ¡çšããã»ã¹ã¯çµ±äžãããŠãããåœã«ãã£ãŠå€§ããªéãã¯ãããŸããã
ã¹ããŒãž 0.HR
ããããããšã§ããã人äºéšãšã®20åéã®é¢æ¥ã ããã«ã€ããŠã¯è©³ãã説æããŸãããã瀟å ã®éçºæåããªã TDD ã䜿çšããã®ãããªãã㢠ããã°ã©ãã³ã°ãè¡ãã®ããªã©ã«ã€ã㊠15 åé話ãåãã人äºæ åœè ã«ã¯äŒã£ãããšããããŸããã éåžžã人äºæ åœè ã¯ãã®è³ªåã«å¯ŸããŠããããéçºè ãéçºãããã¹ã¿ãŒããã¹ããããããŒãžã£ãŒãé転ãããšããããã»ã¹ã¯æ£åžžã§ãããšèšããŸãã
ã¹ããŒãž 1. OOPãTDD ã¯ã©ããããåŸæã§ãã?
ã€ã³ã¿ãã¥ãŒéå§ã® 1.5 æéååã«ãç«ææ¢æ»æ©ã®ã·ãã¥ã¬ãŒã¿ãäœæãããšããã¿ã¹ã¯ãç§ã«éãããŠããŸããã
ç«ææ¢æ»æ©ã®ããã·ã§ã³NASAã«ãã£ãŠããããæ¢æ»æ©ã®éšéãç«æã®é«åã«çéžããäºå®ã ã å¥åŠãªããšã«é·æ¹åœ¢ã§ãããã®å°å°ã¯ãæèŒã«ã¡ã©ãåšå²ã®å°åœ¢ã®å®å
šãªãã¥ãŒãååŸããŠå°çã«éãè¿ãããšãã§ããããã«ãæ¢æ»è»ã«ãã£ãŠèªè¡ãããªããã°ãªããŸããã æ¢æ»æ©ã®äœçœ®ãšå Žæã¯ãx 座æšãš y 座æšã®çµã¿åãããšã0 ã€ã®åºæ¬ã³ã³ãã¹ç¹ã® 0 ã€ãè¡šãæåã«ãã£ãŠè¡šãããŸãã ãã©ããŒã¯ããã²ãŒã·ã§ã³ãç°¡çŽ åããããã«ã°ãªããã«åå²ãããŠããŸãã äœçœ®ã®äŸã¯ 90ãXNUMXãN ã§ããããã¯ãæ¢æ»è»ãå·Šäžé
ã«ãããåãåããŠããããšãæå³ããŸãã æ¢æ»è»ãå¶åŸ¡ããããã«ãNASA ã¯åçŽãªæååãéä¿¡ããŸãã 䜿çšã§ããæåã¯ãLãããRãããMãã§ãã ãLããšãRãã¯ãæ¢æ»æ©ãçŸåšã®å Žæããåããã«ãããããå·ŠãŸãã¯å³ã« XNUMX 床å転ãããŸãã ãMãã¯ãåãæ¹äœãç¶æããªãã XNUMX ã°ãªãã ãã€ã³ãåã«ç§»åããããšãæå³ããŸãã
(x, y) ããçåã«ããæ£æ¹åœ¢ã (x, y+1) ã§ãããšä»®å®ããŸãã
å
¥åïŒ
å
¥åã®æåã®è¡ã¯ãã©ããŒã®å³äžã®åº§æšã§ãå·Šäžã®åº§æšã¯ 0,0 ã§ãããšæ³å®ãããŸãã
å
¥åã®æ®ãã®éšåã¯ãé
åãããæ¢æ»æ©ã«é¢ããæ
å ±ã§ãã åããŒããŒã«ã¯ XNUMX 系統ã®å
¥åããããŸãã æåã®è¡ã¯æ¢æ»æ©ã®äœçœ®ã瀺ããXNUMX è¡ç®ã¯æ¢æ»æ©ã«é«åã®æ¢çŽ¢æ¹æ³ãäŒããäžé£ã®æ瀺ã§ãã äœçœ®ã¯ãx 座æšãš y 座æšããã³æ¢æ»æ©ã®æ¹åã«å¯Ÿå¿ãããã¹ããŒã¹ã§åºåããã XNUMX ã€ã®æŽæ°ãš XNUMX ã€ã®æåã§æ§æãããŸãã
åæ¢æ»æ©ã¯é çªã«çµäºããŸããã€ãŸããæåã®æ¢æ»æ©ã®ç§»åãçµäºãããŸã§ XNUMX çªç®ã®æ¢æ»æ©ã¯åãå§ããŸããã
OUTPUTïŒ
åæ¢æ»æ©ã®åºåã¯ãæçµçãªåº§æšãšæ¹äœã«ãªããŸãã
泚ïŒ
äžèšã®èŠä»¶ãå®è£
ããã ãã§ãåäœãã¹ããäœæããŠæé€æ©ãåäœããããšã蚌æã§ããŸãã
ãããã圢åŒã®ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã®äœæã¯ç¯å²å€ã§ãã
TDD (ãã¹ãé§åéçº) ã¢ãããŒãã«åŸã£ãŠåé¡ã解決ããããšãæšå¥šãããŸãã
éãããæéã®äžã§ãç§ãã¡ã¯å®æ床ãããå質ãéèŠããŸãã
â»ç§ã«éããã課é¡ã¯æ°å¹Žåã«åºãããå€ã課é¡ã®ããæçš¿ã§ããŸããã ãããä¿¡ããŠãã ãããåºæ¬çã«ã¯ãã¹ãŠãåããŸãŸã§ãã
ç¹ã«æ³šç®ãããã®ã¯è©äŸ¡åºæºã§ãã åè£è ã«ãšã£ãŠéèŠãªããšãç£æ»äžã«ãŸã£ããéèŠã§ã¯ãªãããããã¯ãã®éã®ç¶æ³ã«äœåºŠééããã§ããããã 誰ããããªããšåãããã«èããããã§ã¯ãããŸããããããªãã®äŸ¡å€èŠ³ãæ確ã«è¿°ã¹ãããŠããã°ãå€ãã®äººãåãå ¥ããŠåŸãããšãã§ããŸãã ãããã£ãŠãè©äŸ¡åºæºããããã®æ®µéã§æãéèŠãªã¹ãã«ã¯æ¬¡ã®ãšããã§ããããšãããã«ããããŸãã
- TDD;
- OOP ã䜿çšããä¿å®å¯èœãªã³ãŒããäœæããèœåã
- ãã¢ããã°ã©ãã³ã°èœå
ãã®ããããã® 1.5 æéããã³ãŒããæžãã®ã§ã¯ãªããã¿ã¹ã¯ãã©ã®ããã«å®è¡ããããèããããšã«è²»ããããã«èŠåãããŸããã äžç·ã«ã³ãŒããæžããŠãããŸãã
ç§ãã¡ãé»è©±ã«åºããšã圌ãã¯èªåãã¡ã誰ã§ãäœãããŠããã®ããç°¡åã«èª¬æããéçºãå§ããããšãç³ãåºãŸããã
ã€ã³ã¿ãã¥ãŒäžãèªåãã€ã³ã¿ãã¥ãŒãããŠãããšæããããšã¯äžåºŠããããŸããã§ããã ããŒã ã§ã³ãŒããéçºããŠãããããªæèŠããããŸãã ããªããã©ããã§è¡ãè©°ãŸã£ãå Žåã圌ãã¯å©ããã¢ããã€ã¹ããè°è«ããæåã®æ¹æ³ã«ã€ããŠãäºãã«è°è«ããããšãããããŸãã é¢æ¥ã®éãã¡ãœãããäŸå€ãã¹ããŒããããšã JUnit 5 ã§ãã§ãã¯ããæ¹æ³ãå¿ããŠããŸããŸããã圌ãã¯ãã¹ãã®äœæãç¶ãããšç³ãåºãŸãããããã®ãã¡ã® XNUMX 人ã¯ãã®æ¹æ³ãã°ãŒã°ã«ã§èª¿ã¹ãŠããŸããã
æåéããé¢æ¥ããæ°æéåŸã«ãäœã奜ãã§äœãå«ãããšãã建èšçãªãã£ãŒãããã¯ãåãåããŸããã ç§ã®å Žåãnull ãªããžã§ã¯ãã®ä»£ããã« Sealed ã¯ã©ã¹ã䜿çšããããšã§è³è³ãããŸããã ã³ãŒããæžãåã«ãæ¢æ»æ©ãã©ã®ããã«å¶åŸ¡ãããããç䌌ã³ãŒãã§æžããå°ãªããšãããããã® API ã«é¢ä¿ããã¯ã©ã¹ã®ã¹ã±ãããåãåããŸããã
ã¹ããã 2: ãç¥ãããã ãã
é¢æ¥ã® 15 é±éåã«ãèå³ã®ãããããã¯ã«ã€ããŠãã¬ãŒã³ããŒã·ã§ã³ãæºåããããã«èšãããŸããã 圢åŒã¯ã·ã³ãã«ã§éŠŽæã¿ãããã15 åéã®ãã¬ãŒã³ããŒã·ã§ã³ãXNUMX åéã®è³ªåã«åçããŸãã
ç§ã¯Uncle Bobã®Clean Architectureãéžã³ãŸããã ãããŠãŸãäœäººãã®æ¹ããã€ã³ã¿ãã¥ãŒãåããŸããã ç§ã«ãšã£ãŠè±èªã§ã®ãã¬ãŒã³ããŒã·ã§ã³ã¯åããŠã®çµéšã§ããããããã¹ãã¬ã¹ã®å€ãç¶æ³ã«é¥ã£ãŠãããã察åŠã§ããªãã£ããããããŸããã ããããç¹°ãè¿ãã«ãªããŸãããç§ã¯äžåºŠãé¢æ¥ã«ãããšããæèŠãæããããšã¯ãããŸããã§ããã ãã¹ãŠã¯ãã€ãéãã§ã - ç§ã圌ãã«èšããšã圌ãã¯æ³šææ·±ãèããŠããŸãã åŸæ¥ã®è³ªçå¿çãã€ã³ã¿ãã¥ãŒã®ãããªãã®ã§ã¯ãªãã質åããæ²ããããã®ãã®ã§ã¯ãªããç§ã®ãã¬ãŒã³ããŒã·ã§ã³ã«æ¬åœã«èå³ãæã£ããã®ã§ããããšã¯æããã§ããã
ã€ã³ã¿ãã¥ãŒã®æ°æéåŸããã£ãŒãããã¯ãåãåããŸããããã¬ãŒã³ããŒã·ã§ã³ã¯éåžžã«æçã§ã圌ãã¯æ¬åœã«æ¥œãããã«èããŠããŸããã
ã¹ããŒãž 3. 補é å質ã³ãŒã
ãããæè¡é¢æ¥ã®æçµæ®µéã§ãããšèŠåãããããç§ã¯èªå® ã§ã³ãŒããéçšæºåãæŽã£ãç¶æ ã«ããŠããã¬ãã¥ãŒçšã«ã³ãŒããéä¿¡ããã¿ã¹ã¯ã®èŠä»¶ãå€æŽãããã³ãŒããå€æŽãããé¢æ¥ã®ã¹ã±ãžã¥ãŒã«ãèšå®ããããã«æ±ããããŸãããä¿®æ£ãå¿ èŠã§ãã ä»åŸã®ããšãèãããšãã³ãŒãã¬ãã¥ãŒã¯ç²ç®çã«è¡ãããã¬ãã¥ãŒæ åœè ã¯åè£è ãå¿åããŠãã圹è·ãç¥ãããå±¥æŽæžãååãèŠãŠããªãããšèšããŸãã
é»è©±ã鳎ããåã³ã¢ãã¿ãŒã®åããåŽã«æ°äººã®ç·ãããã ãã¹ãŠã¯æåã®é¢æ¥ã®ãšããšåãã§ããéèŠãªã®ã¯ãTDD ã«ã€ããŠå¿ãããèªåãäœãããŠããã®ãããããŠãã®çç±ãäŒããããšã§ãã ãããŸã§ TDD ãå®è·µããããšããªãå Žåã¯ãããã«å®è·µãå§ããããšããå§ãããŸããäŒæ¥ã§å¿ èŠã ããã§ã¯ãªããç掻ãå€§å¹ ã«ç°¡çŽ åãããå¿ èŠã«å¿ããŠã¹ãã¬ã¹ ã¬ãã«ã軜æžãããããã§ãã ãã©ãŠã¶ã§ã®ã¿åçŸã§ãããã¹ãã§ã¯åçŸã§ããªããšã©ãŒããããã¬ã§å¿ æ»ã«æ€çŽ¢ããªããã°ãªããªãã£ãã®ãèŠããŠããŸãã? ããã§ãé¢æ¥äžã«ãã®ãããªééããèŠã€ããªããã°ãªããªãããšãæ³åããŠãã ãããçœé«ªãæ°æ¬ããã®ã¯ç¢ºå®ã§ãã TDD ã§äœãåŸãããã®ã§ãããã? ã³ãŒããå€æŽãããšããããã¹ããèµ€è²ã«ãªã£ãŠããããšã«æããããæ°ã¥ããŸããããæåã¯ç解ã§ããªããšã©ãŒã¯äœã§ãããã? ããŠãé¢æ¥å®ã«ããã£ãšããšèšããCtrl-Z ãæŒããŠãå°ããã€åã«é²ã¿å§ããŸãã ãããŠããã§ããèªåã®äžã§ TDD ã䜿çšããŠéçºããèœåãã€ãŸãããªãã¡ã¯ã¿ãªã³ã°ããããããããããããã¹ããåæ¥èµ€ã§ã¯ãªãæ°žç¶çã«ç·ã«ãªãããã«ç®æšã«åãã£ãŠé²ãèœåãéçºããå¿ èŠããããŸãã ããã¯ãä¿å®å¯èœãªã³ãŒããäœæããã¹ãã«ããçç£çãªã³ãŒããäœæããã¹ãã«ãšãŸã£ããåãã§ãã
ãããã£ãŠãã³ãŒããã©ãã ãé©åã«å€æŽã§ãããã¯ãæåã«ã©ã®ãããªèšèšã念é ã«çœ®ããŠãããããããã©ãã ãåçŽã§ãããããããŠãã¹ããã©ãã ãåªããŠãããã«ãã£ãŠæ±ºãŸããŸãã
é¢æ¥åŸãæ°æé以å ã«ãã£ãŒãããã¯ãåãåããŸããã ãã®æ®µéã§ãç§ã¯ã»ãŒçµããã«è¿ã¥ããŠãããããã¡ãŠã©ãŒã«äŒãããŸã§ã¯ã»ãšãã©æ®ã£ãŠããªãããšã«æ°ã¥ããŸããã
ã¹ããŒãž4ãæçµã æè¡çãªè³ªåã¯ååã§ãã ç§ãã¡ã¯ããªãã誰ãªã®ãç¥ãããã®ã§ã!
æ£çŽã«èšããšãç§ã¯ãã®è³ªåã®å®åŒåã«å€å°å°æããŸããã 3æéã®äŒè©±ã§ã©ããã£ãŠç§ãã©ããªäººéãªã®ãç解ã§ããã§ããããïŒ ãããŠããã«ãç§ãæ¯åœèªã§ã¯ãªããççŽã«èšã£ãŠéåžžã«äžæã§å£ã®æªãèšèªã話ããŠããã®ã«ãã©ããã£ãŠãããç解ã§ããã§ããããã 以åã®ã€ã³ã¿ãã¥ãŒã§ã¯ãå人çã«ã¯è³ªåã«çããããã話ãã»ããç°¡åã§ãã¢ã¯ã»ã³ãã®ããã§ããã ã€ã³ã¿ãã¥ã¢ãŒã®å°ãªããšã XNUMX 人ã¯ã¢ãžã¢äººã§ããããããŠã圌ãã®ã¢ã¯ã»ã³ãã¯ããŸããèšã£ãŠãããŸããããšãŒããã人ã®è³ã«å€å°ç¹æã®ãã®ã§ããã ãããã£ãŠãç§ã¯ç©æ¥µçãªã¢ãããŒãããšãããšã«ããŸãããèªåèªèº«ã«ã€ããŠã®ãã¬ãŒã³ããŒã·ã§ã³ãæºåããé¢æ¥ã®åãã«ãã®ãã¬ãŒã³ããŒã·ã§ã³ã§èªåã«ã€ããŠè©±ãããšãç³ãåºãŸããã ãã圌ããåæããã°ãå°ãªããšãç§ãžã®è³ªåã¯å°ãªããªãã§ããããããã圌ããç³ãåºãæåŠãããšããŠããç§ã®äººçã® XNUMX æéããã¬ãŒã³ããŒã·ã§ã³ã«è²»ããã®ã¯ããã»ã©é«ãå€æ®µã§ã¯ãããŸããã ãããããã¬ãŒã³ããŒã·ã§ã³ã«ã¯äœãæžãã°ããã®ã§ãããã? ç¥æŽ - åœæãããã§çãŸããåŠæ ¡ã«éãã倧åŠãåæ¥ããŸãã - ãããã誰ãæ°ã«ããŸããïŒ
Thoughtworks ã®æåã«ã€ããŠå°ã Google ã§æ€çŽ¢ãããšãæç¶å¯èœãªããžãã¹ããœãããŠã§ã¢ ãšã¯ã»ã¬ã³ã¹ã瀟äŒæ£çŸ©ã® 3 ã€ã®æ±ã«ã€ããŠèª¬æããŠãã Martin Fowler ã«ããèšäº [https://martinfowler.com/bliki/ThreePillars.html] ãèŠã€ãããŸãã
Software Excellence ããã§ã«ãã§ãã¯ãããŠãããšä»®å®ããŸãããã æç¶å¯èœãªããžãã¹ãšç€ŸäŒæ£çŸ©ã瀺ãããšã¯ãŸã æ®ã£ãŠããŸãã
ããã«ãç§ã¯åŸè ã«çŠç¹ãåœãŠãããšã«ããŸããã
ãŸããç§ã¯ãªã ThoughtWorks ãªã®ãã圌ã«è©±ããŸãããç§ã¯å€§åŠæ代㫠Martin Fowler ã®ããã°ãèªãã§ããã®ã§ãã¯ãªãŒã³ ã³ãŒãã倧奜ãã§ããã
ãããžã§ã¯ããããŸããŸãªè§åºŠããæ瀺ããããšãã§ããŸãã 圌ã¯ãŸããæ£è ã®ç掻ãç°¡çŽ åããå»ççšãœãããŠã§ã¢ãéçºããåã«ãããš 70 人ã®åœãæã£ãããšãããããŸããã ç§ã¯éè¡åãã®ãœãããŠã§ã¢ãéçºããŸããããããã«ããåœæ°ã®ç掻ã楜ã«ãªããŸããã ãã®éè¡ãåœã®äººå£ã® XNUMX% ã«ãã£ãŠå©çšãããŠããå Žåã¯ç¹ã«ããã§ãã ããã¯ãºãã«ãã³ã¯ã«é¢ãããã®ã§ã¯ãªããããã«ã¯ãã·ã¢ã«é¢ãããã®ã§ããããŸããã
ç§ã®ããšãç¥ãããã§ããïŒ ããããŸããã ç§ã®è¶£å³ã¯åçã§ã10幎ã»ã©ã«ã¡ã©ãæã«ãç¶ããŠããã®ã§ãèŠããŠãæ¥ãããããªãåçããããŸãã ãŸããäžæã¯ç«ã®ä¿è·æœèšãæäŒããå®äœã®å°ãå¿ èŠãšããŠããç«ã®åçãæ®ããŸããã ãããŠãè¯ãåçãããã°ãç«ãé 眮ããã®ãã¯ããã«ç°¡åã«ãªããŸãã ããããXNUMXå¹ã®ç«ã®åçãæ®ããŸãã:)
çµå±ãç§ã®ãã¬ãŒã³ããŒã·ã§ã³ã®80å²ã¯ç«ã§åãå°œããããŸããã
ãã¬ãŒã³ããŒã·ã§ã³ã®çŽåŸã人äºã¯é¢æ¥ã®çµæã¯ãŸã ç¥ããªããšç§ã«æçŽããããŸãããããªãã£ã¹å šäœã¯ãã§ã«ç«ã«æéãåããŠããŸããã
æçµçã«ãç§ã¯ãã£ãŒãããã¯ãåŸ ã¡ãŸãã - ç§ã¯äººãšããŠå šå¡ãæºè¶³ãããŸããã
ããããæåŸã®äŒè©±ã®äžã§ã人äºæ åœè ã¯ã瀟äŒæ£çŸ©ã¯éåžžã«åªããŠãããå¿ èŠã§ãããããã¹ãŠã®ãããžã§ã¯ãããã®ãããªããã§ã¯ãªãããšæ©è»¢ãå©ãããŠèšããŸããã ãããŠåœŒã¯ãããç§ã«æãã£ãããšå°ããŸããã äžè¬çã«ãç§ã¯ç€ŸäŒæ£çŸ©ãå°ããããããŸãããããã¯èµ·ãããŸã:)
åèš
ãã®çµæãç§ã¯ã·ã³ã¬ããŒã«ã® Thoughtworks ã§æ°ãæéåããŠããŸãããããã§ã¯ Spring ãããç¥èãè±å¯ã§ããã«ãããããããããŸãã«ãå€ãã®äŒæ¥ã Google ã®ããã¹ã ã€ã³ã¿ãã¥ãŒ ãã©ã¯ãã£ã¹ããæ¡çšããã³ãŒãã£ã³ã°ã«ãªãŒããšãã¯ã€ãããŒãã䜿çšããŠããããšãããããŸããã SymfonyãRubyOnRailsïŒå¿ èŠãªãã®ã«äžç·ïŒã¯äœæ¥äžäžèŠã§ãã ãšã³ãžãã¢ã¯é¢æ¥åã«ãæºåãã®ããã« XNUMX é±ââéã®äŒæãåããŸãã
Thoughtworksã§ã¯ãåè£è
ã«å¯Ÿããé©åãªèŠä»¶ã«å ããŠã次ã®ååãæåªå
ã«ããŠããŸãã
ã€ã³ã¿ãã¥ãŒã®åã³ã ãããäž¡é¢çšã å®éãæé«ã®äººæãç²åŸãããã®ã§ããã°ïŒããã§ãªã人ãããã§ããããïŒïŒãé¢æ¥ã¯å¥Žé·ãéžã¶åžå Žã§ã¯ãªããéçšäž»ãšåè£è
ã®äž¡æ¹ããäºããè©äŸ¡ããã·ã§ãŒã§ãã ãããŠãåè£è
ãããäŒæ¥ã«å¯ŸããŠæ¥œããææ
ãé¢é£ä»ããŠããå Žåããã®äŒæ¥ãéžæããå¯èœæ§ãé«ããªããŸãã
åèŠã軜æžããããã«è€æ°ã®é¢æ¥å®ãé 眮ããŸãã Thoughtworksã§ã¯ããã¢ããã°ã©ãã³ã°ãäºå®äžã®æšæºãšãªã£ãŠããŸãã ãããŠããã®å®è·µãä»ã®åéã«ãé©çšã§ããã®ã§ããã°ãTW ã¯ããããããšããŸãã é¢æ¥ã¯å段é2åãã€ã§è¡ãããŸãã ãããã£ãŠãå人ç©ã¯å°ãªããšã 8 人ã«ãã£ãŠè©äŸ¡ãããTW ã¯ç°ãªãèæ¯ãç°ãªãæ¹åæ§ (æè¡è ã«éãã)ãæ§å¥ãæã€é¢æ¥å®ãéžæããããšããŸãã
æçµçã«æ¡çšæ±ºå®ã¯å°ãªããšã8人ã®æèŠã«åºã¥ããŠè¡ããã誰ããã£ã¹ãã£ã³ã°ããŒããæããªãã
å±æ§ã«åºã¥ãæ¡çš åè£è ã®å¥œãå«ãã«åºã¥ããŠæ±ºå®ãäžãã®ã§ã¯ãªããè©äŸ¡ãããå±æ§ãå«ããã©ãŒã ãå圹å²ããã³å段éããšã«éçºãããŸãã åæã«ãè©äŸ¡ããéã«ã¯ãç¹å®ã®ã¹ãã«ã®çµéšã§ã¯ãªãããããé©çšããèœåãè©äŸ¡ããããšã匷ããå§ãããŸãã ãããã£ãŠãåè£è ã TDD ãªã©ã®ã¹ãã«ãé©çšã§ããªãã£ããšããŠããããããé©çšããããšããããããæ£ãã䜿çšããæ¹æ³ã«ã€ããŠã®ã¢ããã€ã¹ã«è³ãåŸããå Žåãé¢æ¥ã«åæ Œããå¯èœæ§ã¯ååã«ãããŸãã
åŠæŽèšŒææžã¯äžèŠã§ã TW ã§ã¯ãã³ã³ãã¥ãŒã¿ãŒ ãµã€ãšã³ã¹ã®è³æ Œãæè²ã¯å¿ èŠãããŸããã ã¹ãã«ã®ã¿ãè©äŸ¡ãããŸãã
æºåãããå¿ èŠããªãã£ãå€è³ç³»äŒæ¥ãšã®é¢æ¥ã¯ãããåããŠã§ãã åã¹ããŒãžãçµãã£ãŠãç²ãã¯æããŸããã§ããããéã«ããã¹ããã©ã¯ãã£ã¹ãå®è·µããããšãã§ããŠãã¢ãã¿ãŒã®åããã«ãã人ãã¡ããããè©äŸ¡ããæ¯æ¥å®è·µããŠãããŠããããšãå¬ããã£ãã§ãã
æ°ãæåŸãç§ã®æåŸ ã¯å®å šã«æºãããããšèšããŸãã ThoughtWorksã¯æ®éã®äŒç€Ÿãšã©ãéãã®ã§ããïŒ æ®éã®äŒç€Ÿã§ã¯åªç§ãªéçºè ãè¯ã人æãèŠã€ããããšãã§ããŸãããTW ã§ã¯åœŒãã®éäžåãæ¡å€ãã§ãã
ThoughtWorksãžã®åå ã«èå³ãããå Žåã¯ãåéäžã®ããžã·ã§ã³ãã芧ãã ããã
èå³æ·±ãæ±äººã«ã泚ç®ããããšããå§ãããŸãã
ãªãŒããœãããŠã§ã¢ãšã³ãžãã¢:
ã·ã㢠ãœãããŠã§ã¢ ãšã³ãžãã¢:
ãœãããŠã§ã¢ãšã³ãžãã¢ïŒ
ã·ã㢠ããŒã¿ ãšã³ãžãã¢:
å質ã¢ããªã¹ã:
ã€ã³ãã©ã¹ãã©ã¯ãã£ãŒïŒ
ïŒãªã³ã¯ã¯çŽ¹ä»ãªã³ã¯ã§ããããšãæ£çŽã«èŠåããããšæããŸããTWã«ã¢ã¯ã»ã¹ãããšãçŽ æµãªããŒãã¹ãããããŸãïŒã 奜ããªãªãã£ã¹ãéžæããŠãã ããããšãŒãããã«éå®ããå¿
èŠã¯ãããŸãããçµå±ã®ãšãããTW 㯠2 幎ããšã«åãã§ä»ã®åœã«ç°åãããŠããã ããŸãããªããªã... ãã㯠ThoughtWorks ã®ããªã·ãŒã®äžéšã§ãããããæåãåºãããå質åãããŸãã
ã³ã¡ã³ãã§è³ªåããããæšå¥šäºé
ãèãããããŠãã ããã
ãã®ãããã¯ãé¢çœããã ã£ãããThoughtWorks ã§åãã®ãã©ã®ãããªãã®ãªã®ããã·ã³ã¬ããŒã«ã§ã®ç掻ã¯ã©ã®ãããªãã®ãªã®ãã«ã€ããŠæžããŸãã
åºæïŒ habr.com