åå ã
ç§ãã¡ãããŒã ã®ä»äºã«ã€ããŠè©±ãããšããå€ãã®äººãéçºè
èªèº«ã®ä»äºã®çµç¹ã®è©³çŽ°ã«èå³ãæã£ãŠããŸãããããã«ã€ããŠã¯ä»ãã話ããŸãã éçºè
ãè¡ãããšã¯ãã¹ãŠäœåºŠã説æãããè°è«ãããŠããããããå
èš³ããçºèŠãæåŸ
ãã¹ãã§ã¯ãããŸããããå®éã®å€§èŠæš¡ãããžã§ã¯ãã§äžç·ã«è¡ãããšã¯ããã»ã©é »ç¹ã«ã¯è¡ãããŸããïŒæ£çŽãªãšãããç§ã¯ä»ã®ã©ãã«ãããŸããèŠãããïŒã ã€ãŸããäœããæåŸ
ããã¹ãã§ã¯ãããŸãããããã«ããŒãã¬ãŒã¯ããçºçããŸã:)
çŸå®ã«ã¯ãé©åãªãšã³ãžãã¢ãªã³ã°ãã©ã¯ãã£ã¹ã®ãªãã¢ãžã£ã€ã«ã¯éåžžã«è¿
éã«çµäºããŸãã é«ã¬ãã«ã®éçºå質ãšã·ã¹ãã å
šäœã®ç¶æ
ãä¿èšŒããåªåãããªããšããããžã§ã¯ããããè€éã«ãªããšãããã«å¶åŸ¡ã倱ãããŸãã ãã®çµæãã€ãã¬ãŒã·ã§ã³ã§èšç»ãããŠãããã¹ãŠãå®è¡ããããšã¯ã§ããŸããããéèŠãªãªãªãŒã¹ïŒãªãã¡ã¯ã¿ãªã³ã°ã ãã§ãªãããŠãŒã¶ãŒãå©çšã§ããããã€ãã®æ°æ©èœãæå³ããïŒã倢èŠãŠããã®ã¯æã«1åã ãã§ããéèŠãªãªãªãŒã¹ã®å®å®åã«ã¯1ãæ以äžããããŸãã
é©åãªã¢ãããŒãã䜿çšãããšãæ°ããæ©èœã®éçºãéåžžã«è¿
éã«è¡ãããšãã§ããŸããããã§ã®ã³ãã¯ã以åã«å®è¡ããããšãç Žããªãããã«ããããæ£ç¢ºã«å£ãããã®ããã°ããç解ããŠä¿®æ£ããããšã§ãã æ¯åããã¹ãŠã®è©³çŽ°ãšãã¥ã¢ã³ã¹ãæäœæ¥ã§ãã¹ãããããšã¯éåžžã«é·ããéå¹ççã§ãããªããªããä»æ¥ã®Elbaã«ã¯400ãè¶
ãããã¹ã¯ãªãŒã³ããããããã§ãã ãããŠåé¡ã¯ããã¹ã¿ãŒããã®ãã¹ãŠãæåã§ç¢ºèªããå¿
èŠãããã ãã§ã¯ãªã-ããã¹ã¿ãŒããã°ãè¿œå ãã-éçºè
ããã°ãä¿®æ£ãã-ãã¹ã¿ãŒããã°ã確èªããŠéã/åéããããšããã·ããªãªã«å€ãã®æéãè²»ãããã æ¥æé·ããŠããã·ã¹ãã ãå®å®ããç¶æ
ã«ä¿ã€ã®ãã©ãã»ã©é£ãããããªãã³ãŒãããããããã®ããä¿®æ£ããã®ãæãã®ãããããŠãªãªãŒã¹æ¥ã1ã¶æãŸã§åããã ãã®äººã¯ããªãïŒç¡è²¬ä»»ã ããïŒãšé·ãé話ãããšãã§ããŸããããããè¯ãããæ¹æ³ãåŠã¶ã®ã¯ãã£ãšé¢çœãã§ãã
ãã¹ãããã¹ãããã¹ã
ããã¹ãããšããèšèã3åæžããã®ã¯ãèšèã3åç¹°ãè¿ãã®ã楜ããããã§ã¯ãªãã3çš®é¡ã®ãã¹ãã䜿çšããŠããããã§ãã
- ããžãã¹ããžãã¯ã®åäœãã¹ãã Elbaã¯ãçžäºã«å¯Ÿè©±ããè€æ°ã®ãµãŒãã¹ïŒWebãããŒã¿ã¹ãã¬ãŒãžããã£ã¬ã¯ããªãµãŒãã¹ãå°å·ãµãŒãã¹ãªã©ïŒã®çµã¿åããã§ãããããããã¹ãŠã®ãµãŒãã¹ãšWebã®ãµãŒããŒéšåãTDDã¹ã¿ã€ã«ã§èšè¿°ããŸãã TDDã«ã€ããŠå€ãã®ããšãèšãããæžãããŠããŸãã ãã®æ¹æ³è«ã®äž»ãªå©ç¹ã¯ããã¹ãã®äœæãæ¥åžžçãªäœæ¥ãéå±ãªäœæ¥ã§ã¯ãªãç¶æ³ãäœãåºãããšã ãšæããŸãã åŸã
ã«ãã¹ããæ§ç¯ããçŸåšã®äžé£ã®åäœãã¹ãã«åæ Œããã®ã«ååãªã»ã©ç±ççã«ã³ãŒããèšè¿°ããŸããããã以äžã®è¡ã¯ããŸã楜ãããããŸããããã§ã¹ã®ãããªã¡ã³ã¿ã«ã²ãŒã ã§ãã ããã«ãã³ãŒãã®ãã¹ãŠã®è¡ãåäœãã¹ãã§æ£çŽã«ã«ããŒãããšãããé«åºŠãªã³ãŒããååŸã§ããŸãã çä¿¡ã¯ããã§é©åã§ãïŒæ¶å»ã§ããã³ãŒãããããåæã«åäžã®ãã¹ããèœã¡ãªãå Žåãæè²ç®çã§ãã®ã³ãŒããããã«æ¶å»ããå¿
èŠããããŸãã 誰ããåªããã³ãŒãã«ã€ããŠã®ç¬èªã®ã¢ã€ãã¢ãæã£ãŠãããšèšã䟡å€ããããŸããçåŸã¯ã³ã³ãã€ã«ãå®ç§ã§ããã³ãŒããæ€èšããäžéšã®éçºè
ã¯æ©èœããã³ãŒããæ€èšããŸãã 幞ããªããšã«ãããã«ã€ããŠè°è«ããããšã¯ã§ããŸããã æãçŸãã人ç©ã§ããããããããã¯ãè¯ãã³ãŒãã®æ£åŒãªç¹æ§ã®åéã§äžè¬åãããã¹ããã¹ãŠã®ãã®ãé·ãéèŠçŽããããã«ã€ããŠã®äžé£ã®èšäºãæžããŸããã Elbaã§ã¯ã SOLIDååã«æºæ ããåªããã³ãŒããèŠã€ããŠããŸãã ããã§ããããäœã§ããããããããHaskelléçºè
ã§ããªãå Žåã¯ãééã£ãŠãããç¡é§ã«ãªã£ãŠããå¯èœæ§ããããŸã:)åäœãã¹ãã§ã«ããŒãããŠããã³ãŒãã¯ç°¡åã«æ§ç¯ããã³å€æŽã§ããŸãããã¹ãã¯å€ãããžãã¹ããžãã¯ã®äžå€æ§ãä¿èšŒããŸãã SOLIDã䜿çšãããšãéèŠãªå€æŽãçŽç²ã«ããŒã«ã«ã§è¡ãããšãã§ããŸãïŒã³ããŒããŒã¹ããšåãããšãè¡ã3ã€ã®ã¯ã©ã¹ã¯ãããŸãããïŒïŒ-æå®ãããç®æšãéæããéçºé床ã¯äœäžãããæå®ãããå質ã§ãã¹ãŠãè¡ãããŸãã
- ã¯ã©ã€ã¢ã³ãåŽJavaScriptã®åäœãã¹ãã ãµãŒããŒåŽã®ããžãã¹ããžãã¯ã¯åªããŠããŸããããšã³ããŠãŒã¶ãŒã«ã¯Webã¢ããªã±ãŒã·ã§ã³ã衚瀺ãããŸãã ãããŠã圌ãã¯éå±ãªããŒãžãèŠãŠããã ãã§ãªãããã¹ãŠãé£ãã§ççºããªããã°ãªããŸããã ãããã£ãŠãå€ãã®ã¯ã©ã€ã¢ã³ãããžãã¯ãèšè¿°ããŸãã ãµãŒããŒåŽã®ããžãã¹ããžãã¯ã«æ¯ã¹ãŠæ°ãããã®ã¯äœããããŸãããã³ãŒãã¯SOLIDã§ããããã¹ãã§èŠãããŠããå¿
èŠããããç°ãªãèšèªã§ããå¿
èŠããããŸãã ãã®ããã«ããŠãæ±çšã¯ã©ã¹ãšã³ã³ãããŒã«ïŒããšãã°ãã¯ã©ã€ã¢ã³ãããªããŒã¿ãŒïŒããã¹ãããŸãã
- Webã¢ããªã±ãŒã·ã§ã³ã®æ©èœãã¹ãã ãã¹ãŠã®åäœãã¹ãã«åæ Œã§ããŸãããããã¯ãŠãŒã¶ãŒãç¹å®ã®ããŒãžã«åé¡ããªãããšãä¿èšŒãããã®ã§ã¯ãããŸããã åãã©ãŒã ã®ãã£ãŒã«ãã«å
¥åãããµãŒããŒã§ãããã®ãã£ãŒã«ããåŠçããããã®åäœãã¹ãã¯ãã¹ãããŸããã ãªãŒãããŒãžã®æ£ããåäœããã£ããã£ããã«ã¯ãæ©èœãã¹ãã䜿çšããŸãã å®éããŠãŒã¶ãŒã®åäœãç¹°ãè¿ããŸãããªã³ã¯ãã¯ãªãã¯ããç¹å®ã®ãã£ãŒã«ãã»ããã§ããŒãžãããŒããããã®ãåŸ
ã¡ããããã®ãã£ãŒã«ãã«å
¥åããæ€èšŒã®æå¹æ§ã確èªãããä¿åããã¿ã³ãã¯ãªãã¯ããŠããã£ãŒã«ãã«å
¥åãããã®ããªããžããªã«æ£ç¢ºã«åãŸã£ãããšã確èªããŸãã ããŒãžäžã§ãã£ãŠããããã€ãã®æ¡ä»¶ã«å¿ããŠãããã€ãã®å°ããªç¢æãå€æŽãããŸã-ãã®ããã®ãã¹ãããããŸãã éçºè
ãã³ãŒããæžãããã¹ãŠã®æ¡ä»¶ããã¹ãããããšã¯äžå¯èœã§ãããšèšã£ãå Žåã圌ã¯ãã®ã³ãŒãã飲ãã ãåãã€ãããããŸããïŒããšãã°ã ç§åŠçãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªããéåžžã®ããžãã¹ããžãã¯ã«ã€ããŠè©±ããŸãïŒã ãã¹ãã¯æ¬¡ã®ããã«ãªããŸãã
[Test] public void ChangeEmailWithGoodPassword() { const string newEmail = "hello_habr@gmail.com"; Prepare(); emailSettingsPage.Email.TypeValueAndWait(newEmail); emailSettingsPage.Password.TypeValueAndWait("superpassword"); emailSettingsPage.SaveButton.Click(); emailSettingsPage.WaitSaveSucceded(); emailSettingsPage = emailSettingsPage.Refresh(); emailSettingsPage.Email.WaitValue(newEmail); }
ãã¹ããå®è¡ãããšã次ã®ããã«ãªããŸãã
ãã®ãããªç解å¯èœãªãã¹ããäœæããããã«ãããŒãžã®æœè±¡åãšã³ã³ãããŒã«ãäœæããŸããããã«ããããµããŒãã®è€éãã倧å¹
ã«è»œæžãããèªã¿ããããªããTDDã§æ©èœãã¹ããäœæããããšãå¯èœã«ãªããŸãã
ãã¹ããå®è¡ãã
ãã¹ãã¯ããããå®è¡ããããã«æžãããŠããã®ã§ããã¹ããç°¡åã«ïŒ1ã€ã®ãã¿ã³ã§ïŒïŒå®è¡ããããã«éå§ããŠããã«è§£æ±ºããããšãéåžžã«éèŠã§ãã ãã®åŸãéçºè
ã¯å®éã«ããããèµ·åããŸãã åäœãã¹ãã¯ãã®ããã«åäœãã1700ã®ãã¹ãã2åã§å®äºããŸãã æ©èœãã¹ãã§ã¯ããã¹ãŠã®ãã¹ããããã»ã©åçŽã§ã¯ãããŸãããåãã¹ãã§ã¯ãããŒãžïŒå€ãã®å Žåãè€æ°ïŒãèªã¿èŸŒãã§ããã®åŸã®æ€èšŒãè¡ãããã§ãã æ°ç§ããæ°åç§ããããŸãã ãããã2000ãè¶
ããæ©èœãã¹ãããããšããäºå®ãèæ
®ãããšã1å°ã®ãã·ã³ã§ãã¹ãŠã®ãã¹ããå®è¡ããã«ã¯çŽ7æéããããŸãã æããã«ããã¹ãŠã®æ©èœãã¹ãããã¹ããã®ãåŸ
ã€å¿èãæã€éçºè
ã¯ãŸã çãŸããŠããŸããã ãããã£ãŠãéçºè
ã¯ãäœæããã°ããã®ãã¹ãããŸãã¯å€æŽãããããŒãžããã¹ããããã¹ãã®ãããããå®è¡ããŸãã ãã®åŸãéçºè
ãã³ããããããã«ããµãŒããŒãæ©èœããŸãããã«ããµãŒããŒã¯ããŒãžã§ã³ç®¡çã·ã¹ãã ãšéä¿¡ããæ°ãããã®ãåºçŸããããšãç解ããã³ãããããã¥ãŒã«è¿œå ããŸãã ãã¥ãŒã¯ããšãŒãžã§ã³ãïŒç©çãã·ã³ãŸãã¯ä»®æ³ãã·ã³ïŒã«ãã£ãŠã¹ã¯ãŒããããŸãããã®æå³ã¯ãã³ãããããšã«ãã¹ãã»ããå
šäœãå®è¡ããããšã§ãã 20ã®ãšãŒãžã§ã³ãã䜿çšããŠãéèŠãªãã¹ãŠã®ãã©ãŠã¶ãŒã§æ£ããåäœã確èªããŸãã èœãšããããã¹ãã®ãªã¹ããç°¡åã«ç¢ºèªããããããåŒãäžããããšãã§ããŸãã åæã«ãããŒãžã§ã³ç®¡çã·ã¹ãã ã«ã¯ããã€ãã®ãã©ã³ãããããŸãïŒæ°ããæ©èœãäœæããå®å®ãããã©ã³ãïŒã ãããŠããã¹ãŠã®äž»èŠãªæ¯åºã§ããšãŒãžã§ã³ããå
¥ããŸãã

ãã¹ããæèµ·ããæéã«ã€ããŠã¯ãå¥éèšåããå¿
èŠããããŸãã ããã§é
ãããããšã¯ã§ããŸããã Microsoftã®äžéšã®ããŒã ã§ã¯ãå°ãªããšã1ã€ã®ãã¹ãã倱æãããŸã§ãã¹ãŠã®äœæ¥ãåæ¢ããåéããªããšèããŸããã æ£çŽã«èšããšãç§ãã¡ã¯ãããããããšãããæ¯æ¥ãã¹ããè¡ãïŒããã¯ãã¥ãŒãã£ãšã³ãžãã¢ã§ãïŒãåãªãªãŒã¹ã®åã«ãå®å®åäžïŒå³ããå Žåã¯ããŒã å
šäœïŒã«äžããŸããã
ãã®çµæãè¡ã®ãã¹ãã³ãŒãã¯ã·ã¹ãã ã³ãŒããšã»ãŒçãããªããŸãã æã¡äžãã®ããã®æ¬æ Œçãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããšãã§ããŸããã ãããè¡ãåæ©ã¯äœã§ããïŒ é·ãæéééã§ãã¹ããè¡ããªããã°ãéçºã«ããå€ãã®æéãè²»ããããšã«æ°ã¥ããŸããã ããªãã®å€ãã¯ã次ã®å€§ããªã³ããããäœãå£ãå¯èœæ§ããããã«ã€ããŠã®è°è«ã«ç¹°ãè¿ãåå ããã«ã¡ãããããŸããã ãŸãã¯ãéèŠãªãªãã¡ã¯ã¿ãªã³ã°ãè¡ãäœè£ããªããšããçµè«ã«è³ããŸãããããã«ãããçºçããåé¡ãç¹å®ããã®ã«äºæž¬ã§ããªãæéãããããããäœæ¥ãé«éåãããã³ãŒããæ¹åãããŸãã äœãèµ·ãã£ãŠããã®ããã³ã³ãããŒã«ããã·ã¹ãã ã®å€æŽãçŸå®ã®ãã®ã§ããããšãç解ããã®ã¯éåžžã«æ¥œããããšã§ãã è€éãªã·ã¹ãã ãæžãããšã¯ç°¡åãªäœæ¥ã§ã¯ãªããæžãããšã¯åžžã«å®æ§çã«æ©èœãããã°ãã°å€åããŸãããã·ã¹ãã ã®å€åã«èããããšã¯ãæ¡éãã«é£ãããªããŸãã
ãã¢ããã°ã©ãã³ã°
ã»ãŒãã¹ãŠã®ã³ãŒãããã¢ã§èšè¿°ããå
±éã®ã³ãŒãæææš©ãç®æããŠåªåããŠããŸãã ã€ãŸãããµãŒããŒããã°ã©ããŒãã¯ã©ã€ã¢ã³ãããŸãã¯ããŒã¿ããŒã¹éçºè
ãªã©ã®åé¢ã¯ãããŸããã ãã¹ãŠã®ããŒã ã¡ã³ããŒãä»»æã®ã¿ã¹ã¯ãåŒãåããããšãã§ããŸãã 誰ãããããžã§ã¯ãããããžã§ã¯ãã®ããåéã§ç°ãªãèœåãšé¢äžãæã£ãŠããããšã¯æããã§ãããã®ããããã¢ã䜿çšããŠç¥èãåºããŸãã ãããŠããããã®2ã€ã¯ã¯ããã«æ¥œããã§ãã æ£çŽã«ã ãããŠæãéèŠãªããšã¯ãããããŸã£ããé
ããªãããšã§ãããã¢ã§äœæ¥ããå Žåãéçºè
ã¯ç¡é¢ä¿ãªåé¡ã«ãŸã£ããæ°ãåãããŸããã
ã³ãããåã®ã³ãŒãã¬ãã¥ãŒ
ã³ãŒãã®äžè¬çãªæææš©ã®ç¶æ³ã§ã¯ããã®ãããã¯ã«æã没é ããŠããããŒã ã®å¥ã®ã¡ã³ããŒã«ã«ããã«ãã³ãããããããšããŠããããšã瀺ãããšã¯éåžžã«åççã§ãã ãŸãã圌ããæžããã°ããã®ããšãã¬ãã¥ã¢ãŒã«èª¬æãããšãçµæãšããŠå€«å©Šèªèº«ããããå®å
šã«ç解ããŸãã 第äºã«ãæ ¡é²è
ã¯éåžžã«è¿
éã«ããã€ãã®å®å
šã«æããªåé¡ãèŠã€ããããããææããŸãã 第äžã«ãæ
å ±ã¯ã«ããã«ããå¥ã®éçºè
ã«é
åžãããŸã-ãããåªããŠããŸãã
èšç»äž
ãã¡ãããããã¯çŽç²ãªãšã³ãžãã¢ãªã³ã°ã®å®è·µãšã¯èšããŸãããèšç»ã ããéçºããŒã ã®ç掻ã®äžã§éåžžã«éèŠãªéšåã§ãããããããã«ã€ããŠè©±ããªãããšã¯å®å
šã«äžå¯èœã§ãã äžèšã§æžãããã®ã¯ãã¹ãŠå質ã«é¢é£ããŠããŸããããå質ã ããç®æšã§ã¯ãããŸããã åªããã³ãŒããå€ãã®ãã¹ãããªãªãŒã¹ã¯éåžžã«å®å®ããŠããŸããã6ãæ以å
ã«çºçããããããããžã§ã¯ãã¯ããã«åæ¢ããŸãã ããã¯ãèªåãæããã®ãç解ããããã«å¯ŸããŠååãªæ¯æããããæºåãã§ããŠãããåã«åœŒã®æ¬²æã®é«å質ã®å®çŸãæåŸ
ããŠããã¯ã©ã€ã¢ã³ããããå Žåãã«ã¹ã¿ã éçºã§æ©èœããŸãã ä»ã®ãã¹ãŠã®å Žåãã¢ã€ãã¢ã®æ£ç¢ºæ§ãæ€èšŒããŠä¿®æ£ã§ããããã«ããã«ã¯ãããé »ç¹ãªãªãªãŒã¹ãå¿
èŠã§ãã æåŸã«ãä»åŸæ°é±éã§ããŒã ãäœãã§ãããã確å®ã«ç解ããå¿
èŠããããŸãã ãŸããããã°ã©ãã³ã°ãšã³ãŒãã®å
±éæææš©ãçµã¿åãããã«ã¯ããã¹ãŠã®éçºè
ãã¿ã¹ã¯ãéå§ããåã«åãæ¹æ³ã§ç解ããå¿
èŠããããŸãã ããŒã«ãŒã®èšç»ã®å©ããåããŠãããæäŸããŸã-æè»ãªéçºæ¹æ³è«ã䜿çšããããŒã ã®ããç¥ããããã©ã¯ãã£ã¹ã§ãã åŸæ¥ã®ã¢ãããŒãã¯ãããŒã ã次ã®éçºã€ãã¬ãŒã·ã§ã³ã«ããã€ãã®ã¿ã¹ã¯ãå
¥åãïŒ2é±éã®ã€ãã¬ãŒã·ã§ã³ã䜿çšïŒãåã¿ã¹ã¯ã«ããããçæ³çãªãæéãæ祚ããããšã§ãã åœç€Ÿã®ããŠããŠã¯ãæ祚çµæãæ瀺ããé©æ°çãªåœ¢ã§æ§æãããŠããŸãããã®ãã€ã³ããããã䜿çšããŸãã

æåã¯ã¿ã¹ã¯ã®ååã§ãããæ°åã¯ããŒã«ãŒããã¬ã€ããçµæãšããŠçããæéã§ãã ããããæãã¯ãŒã«ãªããšã¯ãæ¯æ¥ç¶æ³ãé倧è©äŸ¡ããŠããããšã§ãã åã¿ã¹ã¯ã«ã€ããŠãé²è¡ç¶æ³ã決å®ãããŸã-ã©ã®éšåãæ¢ã«è¡ããããã ãã®çµæãéåžžã«æ©ã段éã§äžå¯æåã«å¯Ÿå¿ã§ãããããããŒã ãéã«åããªãããšãç解ããããã«ã€ãã¬ãŒã·ã§ã³ã®çµãããŸã§åŸ
ã€å¿
èŠã¯ãããŸãããéããŸãåæ§ã§ãã
è«
éçºè
ã®è¶³ãèžã¿èŸŒãŸããŠããªãå Žåã«ã®ã¿ãã°ã¯ãããŸããã ãŸããæã«äžåºŠéèŠãªãªãªãŒã¹ãäœæããããšããé¡æãããããšãèæ
®ãããšããã°ãä¿®æ£ããæéããªãããããã°ã«inããå¯èœæ§ããããŸãã ãŸããéåžžãã°ãä¿®æ£ããããšã¯ããªãäºå®å€ã®ã¿ã¹ã¯ã§ããããšãèæ
®ããå¿
èŠããããŸãã ãã°ã®æ°ãã¯ãªãã£ã«ã«ãã¹ã«éãããšãç±ççã«ä¿®æ£ããå¿
èŠãããããã¹ãŠã®èšç»ãç Žå£ãããå¯èœæ§ããããŸãã
ç§ãã¡ã¯ãã®åé¡ã«çŽé¢ããæ©èœããããã«èŠããæ¹æ³ãèŠã€ããŸãã-ãã°ã®æ¥ã æåã¯ãå埩ããšã«1æ¥ã®ãã°ããããŸãããããšã«ãããã°ã®æ°ã¯å¢ãç¶ããŸããã ãããã£ãŠããã°ã®å¥ã®æ¥ãå°å
¥ããŸãããããã¯ãå埩ã®2é±ç®ã«éå¬ãããŸãã ãããã£ãŠãå埩ã®2æ¥éã¯ãã°ã®ããã«äºçŽãããŠããããšãåžžã«èªèããŠãããèšç»ããéã«ãããèæ
®ããŸãã ãã®ãããªç¶æ³ã¯ããã«ã§ã¯ãªããæè¿ã«ãªã£ãŠçºçããããšã«æ³šæããŠãã ããã æåã¯ããããªãã§ãªããšã管çããŸããã
ãªãã¡ã¯ã¿ãªã³ã°
ã©ã®
ãã·ã¢ã®ããã°ã©ããŒããªãã¡ã¯ã¿ãªã³ã°ãå«ããŸããïŒ ãã¹ããå©çšã§ããããããªãã¡ã¯ã¿ãªã³ã°ãããªãç°¡åã«å®è¡ã§ãããšããäºå®ã«ããããããããã°ã®æ°ãå¢ããŠããã®ãšåãçç±ã§ãæã«äžåºŠãªãªãŒã¹ããã®ã«ååãªæéãå²ãããšãã§ããªãå ŽåããããŸãã ãã°ãäœã倱ãããšãªãïŒãããŠããæ°ãããªãïŒéããããïŒãŸãã¯éããããªãïŒå Žåããªãã¡ã¯ã¿ãªã³ã°ã«é¢äžããŠããŠãã©ãã«ãéåŽã§ããªãããšããããŸãã ãã®åé¡ã解決ããããã«ãå埩ã®å¥ã®æ¥ããèªç±ãªåµé æ§ã®æ¥ãã®äžã«å²ãåœãŠãããŸããããã§ã¯ããªãã¡ã¯ã¿ãªã³ã°ãããã€ãã®éæ³ã®ããšãè¡ãããšãã§ããŸãã ãããŠããã®æ¥ã®èª°ãããé説çã«ãã®ãŸãŸã§ãèªçºçã«ãã°ãä¿®æ£ããŸãïŒ
å€åäžã®ãšã³ãžãã¢
ä¿®æ£ã®ããã«ç¹å¥ã«äºçŽãããæ¥ã«ãã°ä¿®æ£ã延æããããšã¯åžžã«å¯èœã§ã¯ãããŸããã ãŸãããã¯ãã«ã«ãµããŒããã³ãŒã«ã»ã³ã¿ãŒãã¢ããªã¹ãã«ã¯ãæ¯æ¥ç°ãªãéçºè
ããã®è³ªåããªã¯ãšã¹ãããããŸãã ããŒã å
šäœãæ··ä¹±ãããªãããã«ããã¹ãŠã®å埩ã§è¢«å®³è
ãã€ãŸãå€åäžã®ãšã³ãžãã¢ãéžæããŸãã ãã®ååšã®æå³ã¯ããã¹ãŠã®è³ªåã«çããééçºè
ãšã«ãã®äººã
ã®ãã¹ãŠã®èŠæ±ãæºããããšã§ãã
ãªãªãŒã¹ãšã³ãžãã¢
ãã®åœ¹å²ã«ã€ããŠã¯ãåã«ã¯ãŸããªãèŠæ¹ããããŸãã ãªãªãŒã¹ããšã«ãéçºè
ãããªãªãŒã¹ãšã³ãžãã¢ãå²ãåœãŠãŸãã ãã®ç®æšã¯ããã¹ãŠã®æ©èœãã¹ãã«åæ Œããããããæºåããã³ãã¹ãããã誰ããªãªãŒã¹ã«é¢ãã質åããªãããšã確èªããããšã§ãã ããã¯ããªãªãŒã¹ãšã³ãžãã¢èªèº«ããã¹ãŠã®ãã¹ããæèµ·ããããšãæå³ãããã®ã§ã¯ãããŸãããäž»ãªããšã¯ã圌ãæ£ãã質åãæèµ·ããå
šå¡ãåçãåŸãããåæ©ã¥ããããšã§ãã ãããŠãã¡ããã圌ã¯åžžã«ãªãªãŒã¹ã«ååšããçºçããåé¡ã解決ããæºåãã§ããŠããŸãã
å®éãå€åäžã®ãšã³ãžãã¢ãšãªãªãŒã¹ãšã³ãžãã¢ã¯ååãšããŠ1人ã§ãã
çµæ
ãã®ããã«è¡åããããšã§ãã»ãŒ2幎éã1ãæã«1åã®éèŠãªãªãªãŒã¹ãè¡ãããšãã§ããŸããã ã·ã¹ãã ã¯éåžžã«åçã«éçºãããŠããŸãããé±ã«æ°åæŽæ°ããããšãæããŠããŸããïŒãã¹ãŠãèšç»ããããšã¯ã§ããŸããïŒæ³åŸã¯æ¥éã«å€åããŠããããŠãŒã¶ãŒã®æé·ã¯éå»6ãæã§éåžžã«éèŠã§ãïŒãç§ãã¡ã®ãšã³ãžãã¢ãªã³ã°æ
£è¡ã¯éçºãéåžžã«ç®¡çå¯èœã§äºæž¬å¯èœã«ããŸãã
æè¡çãªè©³çŽ°
IDEïŒMicrosoft VisualStudio +
JetBrains ReSharperç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãµãŒããŒïŒ
JetBrains TeamCityãã°ãã©ãã«ãŒïŒ
JetBrains YouTrackæ©èœãã¹ãïŒ
ã»ã¬ã³VCSïŒMercurial
WebãµãŒããŒïŒMicrosoft IIS + nginx
DBïŒMS SQLãµãŒããŒ
PSãã¶ãããã¯ããã¹ãããæããã§ã¯ãªããããããŸãããããã¹ã¿ãŒãããŸãã 圌ã¯ãã€ãå¿ãããŠããšãŠãããŸãåããŠããŸã:)
PPSçŽ æŽãããããŒã«ãæäŸããŠãããæãã
JetBrain瀟ã«æè¬ããŸã:)