ãœãããŠã§ã¢èšèšååã¯ãä¿å®æ§ãæ¡åŒµæ§ãä¿¡é Œæ§ã«åªããã·ã¹ãã ãæ§ç¯ããããã®éåçãšãªããŸããSOLIDãDRYãé«åéæ§ã»äœçµåãšãã£ãååã¯ãåãªãçè«äžã®çæ³ã§ã¯ãªããéçºè ãè€éæ§ã«å±ããããšãªãæé·ãç¶ããã³ãŒããæžãããã®ãæ¥åžžçãªãšã³ãžãã¢ãªã³ã°ããŒã«ã§ãããããå®éã«ã¯ããããã®ååã¯ãã°ãã°ç Žç¶»ããŸããå€ãã®å Žåãæªæãæ æ ¢ã«ãããã®ã§ã¯ãªããæ¥éãªéçºã®èŠæ±ãããŒã ã®äº€ä»£ããããŠæè¡çè² åµã®èç©ã«ãããã®ã§ãã
åŸæ¥ãããããéåãçºèŠããã«ã¯ãçµéšè±å¯ãªãšã³ãžãã¢ã«ããã¢ãŒããã¯ãã£ã¬ãã¥ãŒããåºå€§ãªã³ãŒãããŒã¹ã®è©³çްãªèª¿æ»ãå¿ èŠã§ãããããããå€§èŠæš¡ã忣åããããã¯é·æéçšã®ã·ã¹ãã ã§ã¯ãæåã«ããæ€æ»ã¯ããã«éçŸå®çã«ãªããŸãã éçã³ãŒãåææ§æãšã©ãŒã®æ€åºããã©ãŒãããã«ãŒã«ã®é©çšã§ç¥ãããããŒã«ã¯ãããå€ãã®æ©èœãæã€ããã«é²åããŸãããçŸä»£ã®ããŒã«ã¯ã¢ã³ããã¿ãŒã³ãèå¥ãã 建ç¯ã®åããå Žåã«ãã£ãŠã¯ãã°ãšããŠçŸããåã«ãã³ã¢èšèšååã®éåã远跡ããŸãã
éçã³ãŒãè§£æãèšèšã®æŽåæ§ãšãã芳ç¹ããã©ã®ããã«æ©èœããããæ¢ããŸããæ€åºã§ãããã®ãšã§ããªããã®ãSOLIDãDRYãšãã£ãäžè¬çãªååãšã®é¢é£æ§ããããŠèšèšéèŠã®éçè§£æãã¯ãŒã¯ãããŒã«çµ±åããããšã§ã¢ãŒããã¯ãã£ã®èŠåŸã匷åããæ¹æ³ã«ã€ããŠèå¯ããŸãã
ã³ãŒããæ£ããæ§é åãã
èšèšéåãå¯èŠåããŠã³ãŒãå質ãåäž
ä»ããæ¢çŽ¢ããæãéèŠãªãœãããŠã§ã¢èšèšååãçè§£ãã
ã¯ãªãŒã³ãªãœãããŠã§ã¢èšèšã¯é·æçãªæè³ã§ããæŽŸæãªæ©èœãå³å¹æ§ã®ããä¿®æ£ã¯åæã®é床åäžãä¿ããããããŸãããããããžã§ã¯ãã®æé·ãæ¯ããã®ã¯ãææ ®æ·±ãæ§é ãšååã«åºã¥ããã¢ãŒããã¯ãã£ã§ãããœãããŠã§ã¢èšèšååã¯ãã³ãŒããããçè§£ãããããæ¡åŒµãããããä¿å®ããããæ¹æ³ã§æŽçããããã®ãå®èšŒæžã¿ã®ãã¬ãŒã ã¯ãŒã¯ãæäŸããŸãããããã®ååã«éåããŠãããã«ã¯ã©ãã·ã¥ãçºçããããšã¯çšã§ãããæ§é ããæ··æ²ãžãšãã£ãããšç§»è¡ããŠããããšã¯äºæž¬å¯èœã§ãããäºé²ãå¯èœã§ããéçã³ãŒãåæã¯ããã®ç§»è¡ãæããäžã§éèŠãªåœ¹å²ãæãããŸãããã©ã®ååãæãéèŠã§ãããããããã³ãŒããã¿ãŒã³ã§ã©ã®ããã«è¡šçŸã§ããããèªèããäžã§é©çšããå¿ èŠããããŸãã
SOLID: ãªããžã§ã¯ãæåèšèšã®åºç€
SOLIDååã¯ãªããžã§ã¯ãæåèšèšã«äžå¯æ¬ ã§ãããæ¡åŒµæ§ãšä¿å®æ§ã«åªããã³ãŒãã®ããŒã¹ã©ã€ã³ãšããŠæ©èœããŸãã åäžè²¬ä»»ã®åå SRPïŒéçãªãœãŒã¹å²åœïŒã¯ãã¯ã©ã¹ãŸãã¯ã¢ãžã¥ãŒã«ã®å€æŽçç±ã1ã€ã ãã§ããããšãä¿èšŒããŸããåäžã®ã³ã³ããŒãã³ãããã°èšé²ãããŒã¿ã¢ã¯ã»ã¹ãæ€èšŒãåŠçããå Žåããããã®å€æŽã«ãã£ãŠåããã¡ã€ã«ã®å€æŽãå¿ èŠã«ãªãå¯èœæ§ããããŸããããã¯ãç¡é¢ä¿ãªããžãã¯éã®é«ãªã¹ã¯ãªçµåã«ã€ãªãããŸããéçè§£æããŒã«ã¯ãé »ç¹ã«å€æŽãããã¯ã©ã¹ãé床ã«å€§ãããªãã¯ã©ã¹ãç¹å®ããSRPéåã瀺åããŸãã ãªãŒãã³/ã¯ããŒãºåå ã³ã¢ããžãã¯ã倿Žããã®ã§ã¯ãªããã€ã³ã¿ãŒãã§ãŒã¹ãéããŠåäœãæ¡åŒµããããšãæšå¥šããŸããéçã¢ãã©ã€ã¶ãŒã¯ãããªã¢ãŒãã£ãºã ãæŽ»çšããã®ã§ã¯ãªããswitchæãç¹°ãè¿ãã®if/elseããªãŒã§æ°ããã±ãŒã¹ãåŠçããããšã§ããããæ€åºããŸãã ãªã¹ã³ãã®çœ®æåå ãµãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãåäœãæãªãããšãªãåºåºã¯ã©ã¹ã®åç §ã眮ãæããããšãã§ããããšãèŠæ±ããŸãããªãŒããŒã©ã€ããããã¡ãœãããäºæããªãäŸå€ãã¹ããŒããããå ¥åã³ã³ãã©ã¯ãã倿Žããããããšãéåãçºçããå¯èœæ§ããããŸããé«åºŠãªåæããŒã«ã¯ã䜿çšãã¿ãŒã³ãšäŸå€ããªãŒã«åºã¥ããŠçœ®æã®å®å šæ§ãè©äŸ¡ã§ããŸãã ã€ã³ã¿ãŒãã§ãŒã¹åé¢åç ã¯ã©ã¹ãå€§èŠæš¡ã§æ±çšçãªã€ã³ã¿ãŒãã§ãŒã¹ã«äŸåããŠããã«ããããããããã®ã¡ãœããã®äžéšãã䜿çšããŠããªãå Žåããã®ã«ãŒã«ã«éåããŸãããã®çµæãå®è£ ãè匱ã«ãªããäŸåé¢ä¿ãè¥å€§åããŸããéçããŒã«ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ã®äœ¿çšã«ãã¬ããžãè§£æããããšã§ããã®åé¡ã衚é¢åãããããšãã§ããŸããæåŸã«ã äŸåæ§é転ã®åå çŽæ¥çãªäŸåé¢ä¿ãããæœè±¡åã®äœ¿çšãéèŠããŸããå ·è±¡ã¯ã©ã¹ãçŽæ¥ã€ã³ã¹ã¿ã³ã¹åããããæœè±¡åãããŠããªãäœã¬ãã«ã¢ãžã¥ãŒã«ã«äŸåãããããã³ãŒãã¯ãå¯çµåãæ€åºããããã«èšå®ãããéçã³ãŒãã¢ãã©ã€ã¶ãŒããèŠåãçºããå¯èœæ§ããããŸãã
DRYãšKISSïŒã·ã³ãã«ããšäžè²«æ§
ãã® èªåãç¹°ãè¿ããªãã§ãã ããïŒDRYïŒ ãã®ååã¯ãããžãã¯ãæ§æãæ§é ã«ãããéè€ãæå°éã«æããããšãéèŠããŠããŸããã³ãŒãã®éè€ã¯ä¿å®ã³ã¹ããšäžæŽåã®å¯èœæ§ãé«ããŸããäŸãã°ãè€æ°ã®ã³ã³ããŒãã³ããåãèšç®ããžãã¯ãå®è£ ããŠããå Žåãå°æ¥ã®å€æŽã¯ãã¹ãŠã«é©çšããå¿ èŠãããããšã©ãŒãæããŸããéçã³ãŒãè§£æããŒã«ã¯ããã¡ã€ã«ãã¯ã©ã¹ããŸãã¯ãµãŒãã¹éã§å®å šã«éè€ããŠããããŸãã¯ã»ãŒéè€ããŠããã³ãŒããããã¯ãç¹å®ããããšã§ããããæ€åºããŸãããããã®ããŒã«ã¯ãã¯ããŒã³ãèŠã€ããããã«ãããŒã¯ã³ã®é¡äŒŒæ§ãæœè±¡æ§ææšïŒASTïŒã®ç䟡æ§ãèšç®ããããšããããããŸãã ã·ã³ãã«ã«ããã«ã«ããŠïŒKISSïŒ KISSååã¯ãéçºè ã«éå°ãªãšã³ãžãã¢ãªã³ã°ãé¿ããããä¿ããŸããããã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ã§ååãªå Žåãè€éãªæœè±¡åãäžå¿ èŠãªèšèšãã¿ãŒã³ãæ·±ãç¶æ¿éå±€ã¯æšå¥šãããŸãããã·ã³ãã«ãã¯äž»èгçãªãã®ã§ãããéçã¢ãã©ã€ã¶ãŒã¯ããµã€ã¯ãããã£ãã¯è€é床ããã¹ãã®æ·±ããå¶åŸ¡ãã¹ã®æ°ãšãã£ãææšãçšããŠè€éããæŠç®ã§ããŸããåå²ãå€ããã颿°ãæ±ºå®æšãé·ã颿°ã¯ãKISSéåã®å åãšãªãå¯èœæ§ããããŸãããããã®ææšãšäœ¿çšç¶æ³åæãçµã¿åãããããšã§ãããŒã ã¯æçæ§ãæ¡åŒµæ§ãç ç²ã«ããããšãªãè€éãã軜æžã§ããç®æãç¹å®ãããããªããŸãã
é«ãåéæ§ãšäœãçµåæ§
é«ãåé床ãšã¯ãã¢ãžã¥ãŒã«ã®åœ¹å²ãã©ãã ã坿¥ã«é¢é£ããŠããããæããŸããé«ãåé床ãæã€ã¢ãžã¥ãŒã«ã¯æç¢ºã«å®çŸ©ãããã¿ã¹ã¯ãå®è¡ããŸãããäœãåé床ã¯ãã³ã³ããŒãã³ããå€ãã®åŠçãããªããããŠããããšã瀺ãããšãå€ãã§ããéçã³ãŒãè§£æã§ã¯ãé¢é£ã®ãªãã¡ãœããã®æ°ã倿°ã®äžé©åãªäœ¿çšãåœåèŠåã®äžçµ±äžãšãã£ããã¥ãŒãªã¹ãã£ãã¯ãªææ³ãçšããŠãäœãåé床ãç¹å®ããŸããäœãåé床ã¯ãã¹ããå°é£ã«ããåå©çšæ§ãäœäžãããŸããäžæ¹ã§ã äœçµå ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãæå°éã«æããããšãæããŸããçµå床ã®é«ãã³ãŒãã¯ãããã¯ã©ã¹ã®å€æŽãä»ã®ã¯ã©ã¹ã«åœ±é¿ãäžããå¯èœæ§ãé«ããè匱æ§ãé«ãŸããŸããçµå床ã¯ãã€ã³ããŒãåæ°ãã°ããŒãã«å€æ°ã®äœ¿çšç¶æ³ãã¢ãžã¥ãŒã«éã®ããŒã¿ãããŒã®å¯æ¥ããªã©ã«ãã£ãŠæž¬å®ãããããšãå€ãã§ããéçè§£æããŒã«ã¯ããã¡ã³ã€ã³ãšãã¡ã³ã¢ãŠãã®ææšãèšç®ããåæ¹åã®äŸåé¢ä¿ãç¹å®ããå€ãã®å€éšã¢ãžã¥ãŒã«ã«äŸåããã³ã³ããŒãã³ãã«ãã©ã°ãä»ããŸãããŸããã¯ã©ã¹éã®å ±æç¶æ ã坿¥ãªã«ãŒããã¢ãžã¥ãŒã«åã劚ããŠããå Žåãæ€åºã§ããŸããåé床ãé«ããçµå床ãå¶éããããšã§ãããå ç¢ã§ç¬ç«ããŠé²åå¯èœãªã·ã¹ãã ãå®çŸã§ããŸãã
ãã¡ãã«ã®æ³åãšã«ãã»ã«å
ãã® ãã¡ãã«ã®æ³å çŽæ¥ã®é£æºçžæãšã®ã¿éä¿¡ããã¢ãžã¥ãŒã«ã®èšèšãæšå¥šããŸããã¡ãœããã¯ãå¿
èŠãªãã®ãååŸããããã«è€æ°ã®ãªããžã§ã¯ãå±€ãçµç±ãã¹ãã§ã¯ãããŸããïŒa.getB().getC().doSomething()ïŒïŒïŒããã®ãããªã¡ãœããé£éã¯ã«ãã»ã«åã«éåããã ãã§ãªããåŒã³åºãå
ãé ãé¢ãããªããžã§ã¯ãã®å
éšæ§é ã«çµã³ã€ããŠããŸããŸããéçã³ãŒãè§£æããŒã«ã¯ãå®çŸ©ãããæ·±ããè¶
ããã¡ãœããé£éãæ€åºããéåããã€ã©ã€ã衚瀺ããŸãããããã®é£éã¯äŸåé¢ä¿ã®è¡šé¢ç©ãå¢å ãããã³ãŒãã®ä¿å®ãå°é£ã«ãããªãã¡ã¯ã¿ãªã³ã°æã«è匱æ§ãé«ããŸãããããšçžãŸã£ãŠã ã«ãã»ã«åå
éšç¶æ
ãå€éšã¯ã©ã¹ã«çŽæ¥å
¬éããããšããã°ãã°ãã®ååãæãªãããŸããprivate ã§ããã¹ããã£ãŒã«ããå©äŸ¿æ§ã®ããã« public ã«ãªã£ãããgetter/setter ãäžå€æ¡ä»¶ã匷å¶ããã«åãªãã¢ã¯ã»ã¹ãããã·ã«ãªã£ããããŸããéçããŒã«ã¯ãäžé©åãªã¢ã¯ã»ã¹ä¿®é£Ÿåãæã€ãã£ãŒã«ãã«ãã©ã°ãä»ããã«ãã»ã«åããªã·ãŒã®é©çšãæ¯æŽããŸãããããã®ååã¯ãæ·±ãã¢ã¯ã»ã¹ãã§ãŒã³ãæå¶ããæç¢ºãªã€ã³ã¿ãŒãã§ãŒã¹ãä¿é²ããããšã§ããªããžã§ã¯ãå¢çãæå³ã®ããå®å
šãªç¶æ
ã«ä¿ã¡ãŸãã
YAGNIãšé¢å¿ã®åé¢
ãYou Aren't Gonna Need ItãïŒYAGNIïŒã¯ãéçºè ãæ¬åœã«å¿ èŠã«ãªããŸã§æ©èœãããã¯ãå®è£ ããªãããã«ä¿ããŠããŸããYAGNIéåã¯ãéåžžãäžå¿ èŠãªæœè±¡åãèšå®ã®è€éãããããã¯ä»®æ³ã·ããªãªåãã«æ§ç¯ãããæ±çšçãªã³ãŒããã¹ãšããŠçŸããŸããéçè§£æã§ã¯ãææ©çãªã³ãŒããçŽæ¥æ€åºããããšã¯ã§ããŸããããæªäœ¿çšã®ã¡ãœãããå®è£ ã1ã€ãããªãã€ã³ã¿ãŒãã§ãŒã¹ããããã¯è©äŸ¡ãããªãèšå®ãã©ã°ãªã©ãæããã«ã§ããŸãããããã®ææšã¯ãéå°ãªãšã³ãžãã¢ãªã³ã°ãææå°æ©ãªæ±çšåã瀺åããŠããŸãã é¢å¿äºã®åé¢å¯Ÿç §çã«ãã¯ã¢ããªã±ãŒã·ã§ã³ã®è²¬ä»»ãæç¢ºãªã¬ã€ã€ãŒãŸãã¯ã³ã³ããŒãã³ãã«åå²ããããšã«éç¹ã眮ããŠããŸããäŸãã°ãããžãã¹ããžãã¯ãããŒã¿ããŒã¹ãUIã³ãŒãããåé¢ãããªã©ã§ããã¯ã©ã¹ãæ°žç¶åããžãã¯ãå ¥åæ€èšŒãUIã¬ã³ããªã³ã°ãšæ··åšããããšãéåãçºçããŸããéçã³ãŒãè§£æã¯ã䜿çšç¶æ³ã°ã©ããšäŸåé¢ä¿ã°ã©ããéããŠãããæ€åºãã責任ãäžé©åã«å¢çãè¶ããŠããç®æããã¬ãŒã¹ããŸããåé¢ã匷å¶ããããšã§ãããŒã ã¯ã·ã¹ãã ãããã¢ãžã¥ãŒã«åãããã¹ããããããé²åãããããããããšãã§ããŸããããã2ã€ã®ååãçµã¿åãããããšã§ãã³ãŒããç®çãæã¡ãæå°éã§ãé©åã«åå²ãããŠããããšãä¿èšŒãããŸãã
éçã³ãŒãè§£æã«ããèšèšååéåã®æ€åºæ¹æ³
ãœãããŠã§ã¢èšèšååã¯æœè±¡çã«èŠããããšãå€ããã®ã®ããã®éåã®å€ãã¯ãœãŒã¹ã³ãŒãã«æ€åºå¯èœãªçè·¡ãæ®ããŸããéçã³ãŒãè§£æã¯ãé©åã«èšå®ã»é©çšããã°ãããã°ã©ã ãå®è¡ããããšãªããããã®çè·¡ãçºèŠã§ããŸããå®è¡æã®åäœã«é Œãã®ã§ã¯ãªãããœãŒã¹ã³ãŒããè§£æããæœè±¡æ§ææšïŒASTïŒãå¶åŸ¡ãããŒã°ã©ãïŒCFGïŒãäŸåé¢ä¿ããããªã©ã®å éšã¢ãã«ãæ§ç¯ããã«ãŒã«ããŒã¹ãŸãã¯ãã¿ãŒã³é§ååã®ããžãã¯ãé©çšããŠæ§é ãããžãã¯ãèšèšãè©äŸ¡ããŸããéèŠãªã®ã¯ãèšèšååãã³ãŒãããŒã¹å ã®èгå¯å¯èœãªçç¶ææšããã¿ãŒã³ãã¢ã³ããã¿ãŒã³ã«ãããã³ã°ããããšã§ãã
ã¹ã¿ã€ã«ãšæ§æãè¶ ããŠ: ã¢ãŒããã¯ãã£ã®éçã³ãŒãåæ
åæã®éçè§£æããŒã«ã¯ãæ§æãšã©ãŒãåœåèŠåãåºæ¬çãªã¹ã¿ã€ã«ãã§ãã¯ã«éç¹ã眮ããŠããŸãããçŸä»£ã®ããŒã«ã¯ããã«æ·±ãæãäžããããã°ã©ã å šäœãã¢ããªã³ã°ããããžãã¯ãããŒãšæ§é çé¢ä¿ã«ã€ããŠæšè«ãè¡ããŸããã¯ã©ã¹ã®ãµã€ãºãç¶æ¿ãã§ãŒã³ãçµåã¬ãã«ãã¡ãœããã®è€éããè©äŸ¡ããŸãããããã®ææšãç¹å®ã®èšèšååãšç §ããåããããšãåé床ã®äœããã¢ãžã¥ãŒã«æ§ã®äœããæœè±¡åã®è¥å€§åãšãã£ãéåãæµ®ã圫ãã«ããããšãã§ããŸããéçè§£æãã¬ãŒã ã¯ãŒã¯ã¯ã«ãŒã«ã®ã«ã¹ã¿ãã€ãºããµããŒãããããã«ãªããããŒã ã¯ç¬èªã®èšèšæåŸ ãäœç³»åãããã«ãäžã«äžè²«ããŠé©çšã§ããããã«ãªããŸããã
ã«ãŒã«ããŒã¹ã®æ€åº: ãªã³ã¿ãŒã誀çšãã¿ãŒã³ããã£ããããæ¹æ³
ãªã³ã¿ãŒãšéçã¢ãã©ã€ã¶ãŒã¯ã«ãŒã«ãšã³ãžã³ã«å€§ããäŸåããŠããŸãããããã®ã«ãŒã«ã¯ãéå°ãªãã©ã¡ãŒã¿æ°ã巚倧ãªã¯ã©ã¹ãæªäœ¿çšã®å€æ°ãæ·±ãç¶æ¿ããªãŒãé床ã«è€éãªã¡ãœãããšãã£ããäžè¬çãªæ§é äžã®æ¬ é¥ãæ€åºã§ããŸããäŸãã°ãããªã¢ãŒãã£ãºã ã®ä»£ããã«switchæã䜿çšãããšããªãŒãã³/ã¯ããŒãºååéåã®å
åãšãªãå¯èœæ§ããããŸããåæ§ã«ã .get() ãªããžã§ã¯ãéå±€ã®ãã§ãŒã³ã¯ããã¡ãã«ã®æ³åã«éåããŠããå¯èœæ§ããããããããã®ã«ãŒã«ã¯ãäžé©åãªèšèšã®å
åã«ãããã³ã°ãããã éçè§£æããŒã« ã¢ãŒããã¯ãã£æšæºãç¹å®ã®ååãåæ ããããã«ã«ã¹ã¿ãã€ãºã§ããåºç¯ãªã«ãŒã« ã©ã€ãã©ãªãæäŸããŸãã
ãããŒã»ã³ã·ãã£ãã§ã³ã³ããã¹ãã¢ãŠã§ã¢ãªã«ãŒã«ãšã³ãžã³
åºæ¬çãªéçè§£æã¯ããã¡ã€ã«ã颿°å ã®ããŒã«ã«ã³ã³ããã¹ãã®ã¿ã調ã¹ãŸããããé«åºŠãªè§£æããŒã«ã¯ æµãã«ææãªã€ãŸããå€ãšå¶åŸ¡æ§é ãã¢ããªã±ãŒã·ã§ã³å šäœã«ã©ã®ããã«äŒæããããè©äŸ¡ããŸããããã«ããã倿°ã®çžäºäœçšãã¡ãœããã®ã·ãŒã±ã³ã¹ãéããŠã®ã¿çºçããåé¡ãæ€åºã§ããŸããäŸãã°ããªã¹ã³ãã®çœ®æååéåã¯ããªãŒããŒã©ã€ããããã¡ãœããã®åäœãã³ã³ããã¹ãå ã®ããŒã¹ããŒãžã§ã³ãšæ¯èŒãããŸã§æããã«ãªããªãå¯èœæ§ããããŸãããããŒã»ã³ã·ãã£ãè§£æã«ãããããŒã«ã¯ã·ã¹ãã ã®ããŸããŸãªéšåãåå¥ã«å®çŸ©ãããŠããã ãã§ãªãããããã®çžäºäœçšã«ãã£ãŠçãã埮åŠãªèšèšéåãæ€åºã§ããŸãã
æ§é ãšã¡ããªãã¯ããŒã¹ã®æ€åºïŒäŸïŒã¯ã©ã¹ãµã€ãºããã¡ã³ã€ã³/ãã¡ã³ã¢ãŠãïŒ
ã¡ããªã¯ã¹ã¯èšèšæ€èšŒã®äžæ žãæãèŠçŽ ã§ããäž»èŠãªèšèšååã«éåããã³ãŒãã¯ãå€ãã®å Žåãæž¬å®å¯èœãªç°åžžã瀺ããŸããå€§èŠæš¡ãªã¯ã©ã¹ãã¡ãœããã¯ãéåžžãåäžè²¬ä»»ååã«éåããŸãããã¡ã³ã€ã³å€ïŒã³ã³ããŒãã³ãã«äŸåããã¢ãžã¥ãŒã«ã®æ°ïŒãé«ãå Žåã¯ãäŸåé¢ä¿ã®ã¯ã©ã¹ã¿ãŒãäžå¥å šã§ããå¯èœæ§ãããããã¡ã³ã¢ãŠãå€ïŒã¢ãžã¥ãŒã«ã䜿çšããäŸåé¢ä¿ã®æ°ïŒãé«ãå Žåã¯ãçµåãçãããŸããç¶æ¿ã®æ·±ãã埪ç°çè€é床ãåé床ã¹ã³ã¢ãäŸåé¢ä¿ã®æ·±ãã¯ãã¹ãŠå®éåå¯èœã§ãããéçã¢ãã©ã€ã¶ãŒã«ãã£ãŠèšèšã®å£åãèŠåããããã«äœ¿çšãããŸãããããã®ã¡ããªã¯ã¹ã¯èŠç¯çãªãã®ã§ã¯ãããŸããããã·ã°ãã«ãšããŠæ©èœããŸããçµæçã«è¿œè·¡ããããšã§ãã¢ãŒããã¯ãã£ã®å質ã®åŸåãæããã«ãªããæ§é çãªè² åµãæ·±å»åããåã«ããŒã ãä»å ¥ã§ããããã«ãªããŸãã
ãªãã¡ã¯ã¿ãªã³ã°åè£: èšèšã®éžè±ãæ©æã«çºèŠãã
èšèšéåã¯ãå€ãã®å Žåãå°ããªåŠ¥åãäŸãã°è¿œå ã¡ãœãããå ±æãŠãŒãã£ãªãã£ãšãã£ãå°ããªåŠ¥åããå§ãŸããæéã®çµéãšãšãã«èç©ãããŸããéçã³ãŒãè§£æã¯ãã¢ãŒããã¯ãã£ãå£åããåã«ãæ©ææ®µéã§ãªãã¡ã¯ã¿ãªã³ã°ã®æ©äŒãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããããŒã«ã¯ãé·ãswitchæãå埩çãªã³ãŒããããã¯ãåé·ãªã³ã³ã¹ãã©ã¯ã¿ãæœè±¡åã®èª€çšã瀺åããã¬ã€ã€ãŒéã®äŸåé¢ä¿ãªã©ããã©ã°ä»ãã§ããŸãããããã®åé¡ãç¶ç¶çã«è¡šé¢åãããããšã§ãéçè§£æã¯èšèšã¢ãã¿ãŒãšããŠæ©èœããæ§é çãªéžè±ãæããéçºè ãè»éä¿®æ£ã§ããããã«ããŸãããã®æ©æã®å¯èŠæ§ã¯ãæè¡çè² åµã軜æžããã ãã§ãªããã³ãŒãããŒã¹ã®é·æçãªæç¶å¯èœæ§ãåäžãããŸãã
建ç¯ã®å¥¥æ·±ãåãã®æ€åºã«ãããéçåæã®éç
éçã³ãŒãè§£æã«ã¯ãã®åŒ·ã¿ãããäžæ¹ã§ãéçããããŸãããã¡ã€ã³ç¥èãããžãã¹ã³ã³ããã¹ããå¿ èŠãšããé«ã¬ãã«ã®ã¢ãŒããã¯ãã£ãã¿ãŒã³ã«ã¯å¯Ÿå¿ããããŸãããäŸãã°ããã颿°ã¯æè¡çã«ã¯SRPã«åŸã£ãŠãããããããŸãããããã®è²¬åãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã³ã³ããã¹ãã«ãããŠå¯çµåãããŠããå ŽåãäŸç¶ãšããŠæžå¿µäºé ãæ··åšããããšã«ãªããŸããåæ§ã«ãéçããŒã«ã¯å¿ ãããæå³ãå°æ¥ã®äœ¿çšæ³ãæšæž¬ã§ãããšã¯éããŸãããããã¯ãæœè±¡åã¬ã€ã€ãŒã®åŠ¥åœæ§ãè©äŸ¡ããäžã§ãã°ãã°éèŠã§ããStrategyãFactoryã®ãããªèšèšãã¿ãŒã³ã¯ãã·ã³ãã«ãªã«ãŒã«ãšã³ãžã³ã«ãšã£ãŠã¯éå°ãªãšã³ãžãã¢ãªã³ã°ã«èŠãããããããŸãããã«ãŒã«ãã¥ãŒãã³ã°ãã«ã¹ã¿ã ããªã·ãŒã¯ãã®åé¡ãžã®å¯ŸåŠã«åœ¹ç«ã¡ãŸããã人éã®å€æã¯äŸç¶ãšããŠäžå¯æ¬ ã§ããéçè§£æã¯åŒ·åãªè£å©ããŒã«ã§ãããã¢ãŒããã¯ãã£æèã®å®å šãªä»£æ¿ææ®µã§ã¯ãããŸããã
ããããã³ãŒãã®èããšãã®æ£äœ
ã³ãŒãèã¯ãããæ·±å»ãªæ§é çãŸãã¯èšèšäžã®åé¡ã®å åã§ããå¿ ãããæ©èœã«æ¯éããããããã§ã¯ãããŸããããã¢ãžã¥ãŒã«æ§ãåäžè²¬ä»»ãã«ãã»ã«åãšãã£ãã³ã¢èšèšååã®éåã瀺ãããšããããããŸããéçã³ãŒãè§£æããŒã«ã¯ããããã®èãã®æ€åºã«ç¹ã«å¹æçã§ãããªããªãããããã®èãã®å€ãã¯ã枬å®å¯èœãªãã¿ãŒã³ãæ§é çã¡ããªã¯ã¹ããŸãã¯ç¹°ãè¿ãæ§é ãšããŠçŸããããã§ããã³ãŒãèãèªèããããšã¯ãã¢ãŒããã¯ãã£ã®å£åã蚺æããçãçµã£ããªãã¡ã¯ã¿ãªã³ã°ãå°ããèšèšã®æŽåæ§ãå埩ããããã®éèŠãªç¬¬äžæ©ã§ãã
ç¥ã¯ã©ã¹ãšSRPéå
ãŽããã¯ã©ã¹ãšã¯ãéå°ãªè²¬ä»»ãæ
ãã¢ããªã·ãã¯ãªã³ã³ããŒãã³ãã§ããéåžžã倿°ã®ã¡ãœãããéå°ãªäŸåé¢ä¿ãè€æ°ã®ç¡é¢ä¿ãªããŒã¿ãã£ãŒã«ããç¹åŸŽãšããŸãããããã®ã¯ã©ã¹ã¯ãããŒã ã«åŒ·åãªã¢ãžã¥ãŒã«å¢çããªãå Žåããäžå€®ã®ããžãã¯ããã«ãäžæçãªä¿®æ£ããç¹°ãè¿ã远å ãããå Žåã«ãææ©çã«æé·ããŠããããšããããããŸããèšèšã®èгç¹ããèŠããšããŽããã¯ã©ã¹ã¯åäžè²¬ä»»ååã«éåããåå©çšæ§ããã¹ãæ§ãã¹ã±ãŒã©ããªãã£ãé»å®³ããŸããéçã³ãŒãè§£æã§ã¯ãã³ãŒãè¡æ°ïŒLOCïŒãã¡ãœããæ°ããµã€ã¯ãããã£ãã¯è€é床ããã¡ã³ã€ã³/ãã¡ã³ã¢ãŠãé¢ä¿ãªã©ã®ææšãçšããŠãŽããã¯ã©ã¹ãæ€åºããŸããã¡ãœããåã«è€æ°ã®ç¡é¢ä¿ãªåè©ïŒäŸïŒ validate, calculate, send, log, persistããã¯è²¬ä»»éå€ã®æãããªå
åã§ããæŸçœ®ãããšãgodã¯ã©ã¹ã¯ã¢ãŒããã¯ãã£äžã®ããã«ããã¯ãšãªããèšå€§ãªç¶æ
ãšåäœãèç©ããã倿Žãåºç¯å²ã«ããããªã¹ã¯ãããããããšã«ãªããŸãã
埪ç°çãªäŸåé¢ä¿ãšã¢ãžã¥ãŒã«æ§ã®äœã
埪ç°äŸåé¢ä¿ã¯ã2 ã€ä»¥äžã®ã¢ãžã¥ãŒã«ãçŽæ¥çãŸãã¯éæ¥çã«çžäºã«äŸåããéã«ãŒãã圢æããå Žåã«çºçããŸãããããã®åŸªç°ã«ããã³ã³ããŒãã³ããå¯ã«çµåããããããæ©èœã®åé¢ãç¬ç«ãããã¹ãããªãã¡ã¯ã¿ãªã³ã°ãå°é£ã«ãªããŸãããŸããã¢ãžã¥ãŒã«åœ¢åŒã®ãããã€ã¡ã³ãã劚ããäŸåé¢ä¿é転ã®ååãšäœçµåã®ãã¹ã ãã©ã¯ãã£ã¹ã«éåããŸããéçã³ãŒãåæããŒã«ã¯ãã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ã°ã©ããäœæããè€æ°ã®ã¬ã€ã€ãŒã®æ·±ãã§ãã£ãŠã埪ç°ã匷調衚瀺ããŸãããããã®ããŒã«ã¯ãããã±ãŒãžéããã³ã¯ã©ã¹éã®åŸªç°ãæ€åºããäŸåé¢ä¿ãããªãã¯ã¹ãŸãã¯ã¢ãŒããã¯ã㣠ãã€ã¢ã°ã©ã ã䜿çšããŠèŠèŠåã§ããŸãã埪ç°äŸåé¢ä¿ã¯ãã©ããã ãããã¿ã€ãã³ã°äžãããŠãŒãã£ãªã㣠ã¯ã©ã¹ãã¬ã€ã€ãŒéã§èª€çšãããŠããå Žåã«ããçºçããŸããæéãçµã€ã«ã€ããŠã埪ç°äŸåé¢ä¿ã«ãã£ãŠã³ãŒãããŒã¹ãè€éåããéçºè ã¯å°ããªå€æŽã§ãè€æ°ã®ã³ã³ããŒãã³ããçè§£ããŠä¿®æ£ããå¿ èŠãçããŸãããããã®åŸªç°ãæã¡åãããšã§ãä¿å®æ§ãåäžãããã«ããç°¡çŽ åãããã·ã¹ãã ãã¯ãªãŒã³ãªã¢ãŒããã¯ãã£ã®ç®æšã«åãããããšãã§ããŸãã
éå°ãªãã©ã¡ãŒã¿ãªã¹ããšå¯çµå
é·ããã©ã¡ãŒã¿ ãªã¹ããç¹ã«ç¹°ãè¿ãããããŒã¿åãé¢é£ãã£ãŒã«ããæã€é¢æ°ãŸãã¯ã³ã³ã¹ãã©ã¯ã¿ã¯ãå¯çµåãŸãã¯äžååãªæœè±¡åã®ææšã§ãããã®ãããªãªã¹ãã¯ã颿°ãå€ãã®ããšãããããšããŠããããå€éšç¶æ ã«äŸåããããŠããããšã瀺ãããšããããããŸãããŸããå€ãªããžã§ã¯ããŸãã¯ã³ã³ããã¹ã ã³ã³ããã«ã«ãã»ã«åããæ¹ãããããŒã¿ã®å¡ãæããã«ãªãããšããããŸããé·ããã©ã¡ãŒã¿ ãªã¹ãã¯ããžãã¯ãéè€ãããå¯èªæ§ãäœäžããããããKISS ååããã³ DRY ååã«éåããŸããéçã¢ãã©ã€ã¶ã¯ãæ§æå¯èœãªæ°ãè¶ ãããã©ã¡ãŒã¿ãæã€ã¡ãœããã«ãã©ã°ãä»ããéåžžã¯éçºè ã«ã€ã³ã¿ãŒãã§ã€ã¹ãç°¡çŽ åããããã«èŠåããŸããéå±€åã¢ãŒããã¯ãã£ã§ã¯ãå¯çµåã¯äœã¬ãã« ã¢ãžã¥ãŒã«ãšé«ã¬ãã« ã¢ãžã¥ãŒã«éã®çŽæ¥çãªäŸåé¢ä¿ã«ãã£ãŠãçŸããäŸåé¢ä¿é転ã®ååã«éåããŸããéçããŒã«ã¯ãå€ãã®å ·äœçãªå®è£ ã䜿çšããã¯ã©ã¹ããå€ãã®ç¡é¢ä¿ãªã¢ãžã¥ãŒã«ããã€ã³ããŒãããã¯ã©ã¹ãæ€åºã§ããŸãããããã®æ€åºçµæã¯ããšã³ãžãã¢ãæœè±¡åãã€ã³ã¿ãŒãã§ã€ã¹ããŸãã¯å¶åŸ¡ã®å転 (IoC) ã¡ã«ããºã ãå°å ¥ããŠãªãã¡ã¯ã¿ãªã³ã°ããã®ã«åœ¹ç«ã¡ãŸãã
äžé©åãªèŠªå¯ããšãã¡ãã«ã®æ³åã®éå
äžé©åãªèŠªå¯æ§ã¯ãããã¯ã©ã¹ãä»ã®ã¯ã©ã¹ã®å
éšåäœã«é床ã«ç²Ÿéãããã©ã€ããŒããã£ãŒã«ãã«ã¢ã¯ã»ã¹ããããã¡ãœããåŒã³åºããä»ã®ãªããžã§ã¯ãã®æ§é ã®å¥¥æ·±ããŸã§é£éãããããããšãã«çºçããŸããããã¯ã«ãã»ã«åã®çŽæ¥çãªéåã§ããããã¡ãã«ã®æ³åã®å
žåçãªéåã§ããäŸãã°ã次ã®ãããªåŒã³åºã㯠order.getCustomer().getAddress().getZipCode() ã¡ãœãããè€æ°ã®ãªããžã§ã¯ãå¢çãæšªæããŠããããšãæããã«ãªããŸãããã®é£éã«ãããåŒã³åºãå
ãšåŒã³åºãå
ã®æ§é ãæ£ç¢ºã«çµã³ä»ããããåæ¹ã®å€æŽã«å¯ŸããŠè匱ã«ãªããŸããéçã³ãŒãã¢ãã©ã€ã¶ãŒã¯ãããã®é£éãæ€åºããã¢ã¯ã»ã¹æ·±åºŠãéŸå€ãè¶
ããå Žåã«èŠåãçºããŸãããŸãããã£ãŒã«ããžã®çŽæ¥ã¢ã¯ã»ã¹ããã¯ã©ã¹éã§ã®ã²ãã¿ãŒãšã»ãã¿ãŒã®éå°ãªäœ¿çšãèŠåããå ŽåããããŸããäžé©åãªèŠªå¯åºŠãæžããããšã§ã¢ãžã¥ãŒã«æ§ãåäžããå
éšãªããžã§ã¯ãèšèšãä¿è·ãããã³ã³ããŒãã³ããç¬ç«ããŠå®å
šã«é²åã§ããããã«ãªããŸãã
éè€ããããžãã¯ãšæœè±¡åã®æ¬ åŠ
ã³ãŒãã®éè€ã¯ãæãäžè¬çãªã³ãŒãã®èãã®äžã€ã§ãããèšèšãæªçã§ããããšã瀺ãæç¢ºãªå åã§ããéè€ããããžãã¯ã¯ãç¹ã«1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã倿Žãããä»ã®ã€ã³ã¹ã¿ã³ã¹ãå€ããŸãŸã§ããå ŽåãäžæŽåããã°ã®ãªã¹ã¯ãé«ããŸãããŸããã³ãŒãããŒã¹ãè¥å€§åããDRYååãæãªããŸããéçè§£æããŒã«ã¯ãæ£ç¢ºãªã¯ããŒã³æ€åºãšè¿äŒŒçãªã¯ããŒã³æ€åºã®äž¡æ¹ã«åªããŠããŸããããŒã¯ã³è§£æãASTæ¯èŒããã£ã³ã¬ãŒããªã³ãã䜿çšããŠããã¡ã€ã«ãã¯ã©ã¹ãããã«ã¯ãµãŒãã¹éã§ã®ããžãã¯ã®ç¹°ãè¿ããèå¥ããŸããéè€ã¯ãå€ãã®å Žåãã³ããŒïŒããŒã¹ãã«ãããœãªã¥ãŒã·ã§ã³ãå ±æãŠãŒãã£ãªãã£ã®æ¬ åŠããŸãã¯ããŒã ãæ¢åã®ã³ã³ããŒãã³ããèªèããŠããªãããšãªã©ããçºçããŸããæéã®çµéãšãšãã«ãéè€ããããžãã¯ã¯ãåäœã®äžè²«æ§ã®ãªããããžãã¹ã«ãŒã«ã®åæ£ãã¡ã³ããã³ã¹ã³ã¹ãã®å¢å€§ã«ã€ãªãããŸãããã®ãããªããžãã¯ãåå©çšå¯èœãªæœè±¡åïŒãã«ããŒã¡ãœãããå ±æã©ã€ãã©ãªããµãŒãã¹ãªã©ïŒã«ãªãã¡ã¯ã¿ãªã³ã°ããããšã¯ãDRYã«æºæ ããã ãã§ãªããé¢å¿ã®åé¢ãšã¢ãžã¥ãŒã«æ§ã匷åããããšã«ããªããŸãã
èšèšéåãèŠéããããçŸå®äžçã®ã·ããªãª
ãœãããŠã§ã¢èšèšååéåã¯ãã¯ã©ãã·ã¥ã倧ããªé害ãšããŠé¡åšåããããšã¯çšã§ããããããç¹ã«æ¥æé·ãé·æã«ãããéçšããããã¯è€æ°ããŒã ã§éçšãããã³ãŒãããŒã¹ã«ãããŠã¯ãç®ã«èŠããªã圢ã§é¡åšåããããšããã°ãã°ã§ããããããéåã¯ãå®å©çãªè¿éãç· ãåãã®å³ããããããã¯ã¢ãŒããã¯ãã£ã®å¢çãæç¢ºã§ãªããšãã£ãèŠå ã«ãã£ãŠããã£ãããšèç©ãããŠãããŸããåã ã®éçºè ã¯ãã¹ããã©ã¯ãã£ã¹ã«åŸãã€ããã§ããã·ã¹ãã çãªèŠå ã«ãã£ãŠèšèšã®å£åãèŠèœãšãããŠããŸãããšããããããŸããéçã³ãŒãåæã¯ãããããç°å¢ã«ãããŠç¹ã«æçšã§ãããªããªããããã§ãªããã°å€æŽã³ã¹ãã管çäžèœã«ãªããŸã§åããããŸãŸã ã£ãã§ããããã¿ãŒã³ã衚é¢åãããããã§ãã
ã¬ãŒãã¬ãŒã«ãªãã§æé·ããã¬ã¬ã·ãŒã·ã¹ãã
å€ãã®ãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã¯ã仿¥ã®ãã¹ããã©ã¯ãã£ã¹ã念é ã«çœ®ããŠæ§ç¯ãããŠããŸããã10幎åã«æžãããã³ãŒãã¯ãä»ã§ãéçšç°å¢ã§äœ¿çšãããŠããããªãã¡ã¯ã¿ãªã³ã°ãèšèšãã§ãã¯ãè¡ãããã«ç¹°ãè¿ãæ¡åŒµãããŠããå¯èœæ§ããããŸãããã®ãããªç°å¢ã§ã¯ã巚倧ãªãŽããã¯ã©ã¹ãæ·±ããã¹ããããæ¡ä»¶ä»ãããžãã¯ãç¡é¢ä¿ãªã¢ãžã¥ãŒã«éã®å¯çµåãèŠãããããšããããããŸãããããã®ã·ã¹ãã ã«ã¯ããã¥ã¡ã³ããã¢ãŒããã¯ãã£å³ãäžè¶³ããŠããããšãå€ãããšã³ãžãã¢ã倿Žãæå³ããèšèšå¢çã«æ²¿ã£ãŠãããã©ãããææ¡ããããšãå°é£ã§ããéçã³ãŒãè§£æã¯ãè€éãã®ãããã¹ããããäŸåé¢ä¿ã®ã¯ã©ã¹ã¿ãŒãéè€ããããžãã¯ã衚é¢åãããããšã§ãããããé ããéšåãå¯èŠåããŸããããã«ãããããŒã ã¯ããªãã¡ã¯ã¿ãªã³ã°ããå Žæãæ©èœãåé¢ããå ŽæããããŠé¢å¿ã®åé¢ã念é ã«çœ®ããŠæ§ç¯ãããŠããªãã³ãŒãã«ã¢ãžã¥ãŒã«æ§ã段éçã«åå°å ¥ããæ¹æ³ã決å®ããããšãã§ããŸãã
ã¢ãŒããã¯ãã£ç£èŠãªãã®è¿ éãªæ©èœéçº
åãã®éãéçºããŒã ãç¹ã«ã¹ã¿ãŒãã¢ãããã¢ãžã£ã€ã«éçºã®ç°å¢ã§ã¯ãæ©èœãè¿ éã«æäŸããããšã«éç¹ã眮ãããããšããããããŸãããããããã¬ãã·ã£ãŒã®äžã§ã¯ãæœè±¡åãåé¿ããããswitchæã远å ããããå ±æã¯ã©ã¹ãå©äŸ¿æ§ã®ããã«å€æŽããããããšãã£ã決å®ã¯ãäžèŠç¡å®³ã«æããŸããããããæéã®çµéãšãšãã«ãããããæ±ºå®ã¯èšèšè² åµãšããŠèç©ãããŠãããŸããã¢ãŒããã¯ãã£ã¬ãã¥ãŒå§å¡äŒãããã¥ã¡ã³ãã®åŸ¹åºãç¶ç¶çãªèšèšæ€èšŒãªã©ã«ããé©åãªç£ç£ããªããã°ãããŒã ã®é£æºã¯åŽ©ããŠããŸããŸããéçã³ãŒãåæã¯ãã¢ãŒããã¯ãã£ç£èŠã®ä»£çãšããŠæ©èœããåæãããååããéžè±ããæ±ºå®ãèŠåããŸããã¯ã©ã¹ãµã€ãºã®æ¡å€§ãã¢ãžã¥ãŒã«éã®æ°ããäŸåé¢ä¿ãããžãã¯ã®éè€ãææããããšã§ãããŒã ã¯ããªããªãŒã®å¢ãã倱ããã«è»éä¿®æ£ããæ©äŒãåŸãããšãã§ããŸãã
è€æ°ããŒã ã®ã³ãŒãããŒã¹ãšåå²ãã¿ãŒã³
å€§èŠæš¡ãªçµç¹ã§ã¯ãè€æ°ã®ããŒã ãåãã³ãŒãããŒã¹ãçžäºäŸåçãªã·ã¹ãã ã§äœæ¥ããããšããããããŸããèšèšã¬ããã³ã¹ãäžå åãããŠããªããšãåããŒã ãç¬èªã®èŠçŽãæœè±¡åãã¢ãŒããã¯ãã£ã¢ãããŒããå±éããåŸåããããŸããæéã®çµéãšãšãã«ãäžè²«æ§ã®ãªãã¬ã€ã€ãªã³ã°ãããžãã¯ã®éè€ãäºææ§ã®ãªãã¢ãžã¥ãŒã«èšèšãçããŸããããŒã ããã¿ãŒã³ãã³ããŒããããæ¡åŒµæ§ãèæ ®ããŠããªãã€ã³ã¿ãŒãã§ãŒã¹ãæ¡çšããããããšãã·ã¹ãã ã®äžéšã§ã®èšèšéåãä»ã®éšåã«æ³¢åããå¯èœæ§ããããŸããéçè§£æããŒã«ã¯ããªããžããªå šäœã«å ±éã®èšèšã«ãŒã«ãé©çšããããšã§ãäžè²«æ§ã®ç¢ºä¿ãå®çŸããŸããããã«ãããæ°å人ã®è²¢ç®è ãé¢äžããŠããå Žåã§ããã€ã³ã¿ãŒãã§ãŒã¹å¢çãæœè±¡åã¬ã€ã€ãŒãã¢ãžã¥ãŒã«äŸåé¢ä¿ãåãæ§é ãã¿ãŒã³ã«åŸãããšãä¿èšŒã§ããŸãããŸããæšªæçãªå¯èŠæ§ãæäŸããããããŒã ã®æ±ºå®ãå¥ã®ããŒã ã®ä¿å®æ§ã«ã©ã®ãããªåœ±é¿ãäžããããæç¢ºã«ç€ºããŸãã
èšèšå¥çŽã®åãã¹ããªãã®ãªãã¡ã¯ã¿ãªã³ã°
ãªãã¡ã¯ã¿ãªã³ã°ã¯ãåœåã®æ¹åãã¡ãœããã®åç·šæãããžãã¯ã®ç°¡çŽ åãšãã£ããçŽç²ã«æè¡çãªã¿ã¹ã¯ãšèŠãªãããããšããããããŸããããããçã®ã¢ãŒããã¯ã㣠ãªãã¡ã¯ã¿ãªã³ã°ã§ã¯ãèšèšèŠçŽãç¶æãŸãã¯åå®çŸ©ããå¿ èŠããããŸããèšèšèŠçŽãšã¯ãåã¢ãžã¥ãŒã«ã®æ©èœãéä¿¡æ¹æ³ã責任ã«é¢ããæç¢ºãªæåŸ ã§ããå€ãã®å Žåãéçºè ã¯ããã©ãŒãã³ã¹ãä¿å®æ§ãéèŠããŠãªãã¡ã¯ã¿ãªã³ã°ãè¡ããŸãããèšèšååãéµå®ãããŠãããã©ãããæ€èšŒããããšã¯ãããŸãããããšãã°ã2 ã€ã®ãµãŒãã¹ãçµ±åãããšéè€ã¯è§£æ±ºããããããããŸããããåäžè²¬ä»»ã®ååã«éåããããšã«ãªããŸããéçã³ãŒãåæã«ããããªãã¡ã¯ã¿ãªã³ã°ãã³ãŒãã®è¡çç¶æ ã ãã§ãªããèšèšã®æŽåæ§ã«ãé©åããŠããããšãä¿èšŒãããŸããã¢ãžã¥ãŒã«æ§ã倱ãããå Žåãã¬ã€ã€ãŒéã§æžå¿µäºé ãæŒãå§ããå Žåãæœè±¡åã®å¢çãææ§ã«ãªã£ãå Žåãªã©ãæ€åºã§ããŸãããã®ç£èŠã¬ã€ã€ãŒã¯ã衚é¢çãªæ§é ã ãã§ãªããã·ã¹ãã ã¢ãŒããã¯ãã£ã®é²åãç®æãé·æçãªãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠéåžžã«éèŠã§ãã
èšèšãèæ ®ããéçã³ãŒãè§£æã®ãã¹ããã©ã¯ãã£ã¹
éçã³ãŒãè§£æããŒã«ã¯åŒ·åã§ããããœãããŠã§ã¢èšèšååã®é©çšã«ãããæå¹æ§ã¯ãéçºããã»ã¹å ã§ã®èšå®ãçµ±åãããã³äœ¿ç𿹿³ã«ãã£ãŠç°ãªããŸãããªãªãŒã¹ããšã«ã¹ãã£ããŒã1åå®è¡ããã ãã§ã¯äžååã§ããäžè²«ããèšèšãã£ãŒãããã¯ãååŸããã¢ãŒããã¯ãã£ã®å£åãé²ãã«ã¯ãããŒã ã¯éçè§£æãã·ã¹ãã ã®å質ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšãšããŠæ±ãå¿ èŠããããŸããããã¯ãããŒã«ãèšèšæå³ãšæŽåããããã¡ã€ã³åºæã®ã«ãŒã«ãåæ ããããã«èšå®ããçµæãæææ±ºå®ããã»ã¹ã«çµ±åããããšãæå³ããŸãã以äžã¯ãéçºããŒã ãéçã³ãŒãè§£æã®ã¢ãŒããã¯ãã£äžã®ã¡ãªãããæå€§éã«æŽ»çšããã®ã«åœ¹ç«ã€å®èšŒæžã¿ã®ãã©ã¯ãã£ã¹ã§ãã
ãããå€ãšå質ã²ãŒããæŠç¥çã«æŽ»çšãã
éçè§£æããŒã«ã¯ãå€ãã®å Žåããããå€ïŒã¡ãœããã®æå€§ãµã€ãºã蚱容ããã埪ç°çè€é床ãäŸåé¢ä¿ã®æ·±ãããŸãã¯é¢æ°ãåãå ¥ãå¯èœãªãã©ã¡ãŒã¿æ°ïŒã«åºã¥ããŠã¹ã³ã¢ãŸãã¯ãã©ã°ãå²ãåœãŠãŸãããããã®ãããå€ã¯æ§æå¯èœã§ãããã·ã¹ãã ã®ã¢ãŒããã¯ãã£äžã®èš±å®¹ç¯å²ãåæ ããå¿ èŠããããŸããããšãã°ããã€ã¯ããµãŒãã¹ ããã¯ãšã³ã㯠5ïœ6 åã®ãã©ã¡ãŒã¿ãæã€å°ããªé¢æ°ãåãå ¥ããå¯èœæ§ããããŸãããã¢ããªã·ã㯠ãã©ãããã©ãŒã ã§ã¯åé¢ãç¶æããããã«ããå³ãããããå€ãå¿ èŠã«ãªãå ŽåããããŸããç¹å®ã®ãããå€ãè¶ ãããšãã«ãããããã¯ããå質ã²ãŒãã¯ãèªåçã«åŒ·å¶ãå®è¡ããŸãããã ããããŒã ã¯ãã€ãºãé »ç¹ãªèª€æ€ç¥ã«ã€ãªããé床ã«å¶éçãªã«ãŒã«ãé¿ããå¿ èŠããããŸãããã©ã³ã¹ã®åããã¢ãããŒãã§ã¯ãé©åãªããã©ã«ããèšå®ãã芳å¯ãããã³ãŒãã®å¥å šæ§ã«åºã¥ããŠæéã®çµéãšãšãã«èª¿æŽããŸãããããå€ã¯ããªãã¡ã¯ã¿ãªã³ã° ããŒãããããšäžŠè¡ããŠååæããšã«èŠçŽãããé²åãããããžã§ã¯ãç®æšãšäžèŽããŠããããšã確èªããå¿ èŠããããŸããç®æšã¯å³æ Œãªç£èŠã§ã¯ãªããç¶ç¶çãªèšèšæ¹åãå°ãæ å ±ã«åºã¥ãããã£ãŒããã㯠ã«ãŒãã§ãã
ããŒã ãŸãã¯ãã¡ã€ã³ã®æšæºã«åãããŠã«ã¹ã¿ã ã«ãŒã«ã»ãããé©çšãã
æ¢è£œã®ã«ãŒã« ã©ã€ãã©ãªã¯äŸ¿å©ã§ãããããŒã ã®ãã¡ã€ã³ãã¬ã¬ã·ãŒå¶çŽããŸãã¯æè¡ç念ã®å®å šãªã³ã³ããã¹ããåæ ããããšã¯ã»ãšãã©ãããŸããããã®ãããã«ã¹ã¿ã ã«ãŒã«ãäžå¯æ¬ ã§ããææ°ã®éçè§£æããŒã«ã®ã»ãšãã©ã¯ããŠãŒã¶ãŒãæ§æãã¡ã€ã«ãŸãã¯ãã©ã°ã€ã³ã䜿çšããŠã«ã¹ã¿ã ããªã·ãŒãå®çŸ©ã§ããŸããããšãã°ãããŒã ã¯ãç¹å®ã®ããã±ãŒãžå ã®ãã¹ãŠã®ãµãŒãã¹ãå ±æã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããå¿ èŠãããããšããŸãã¯ãŠãŒãã£ãªã㣠ã¯ã©ã¹ããããªã㯠ã³ã³ã¹ãã©ã¯ã¿ãŒãæã€ããšãã§ããªãããšã匷å¶ã§ããŸãããããã®ã«ãŒã«ã¯ããããµãŽãã« ã¢ãŒããã¯ãã£ãã³ãã³ããšã¯ãšãªã®åé¢ãã€ãã³ãé§ååã®ã¢ãžã¥ãŒã«æ§ãªã©ã®ãã¿ãŒã³ã匷å¶ã§ããŸãããã¡ã€ã³é§åèšèš (DDD) ããŒã ã¯ããšã³ãã£ãã£éçŽå¢çãäžå¿ã«ã«ãŒã«ãäœæãããã¡ã€ã³ ããžãã¯ãšã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ãŒããåé¢ããããšããããããŸããã«ã¹ã¿ã ã«ãŒã«ã®äœæã«ã¯æåã«å°é¡ã®æè³ãå¿ èŠã«ãªãå ŽåããããŸããããã®èŠè¿ããšããŠãããŒã éã§ã®é·æçãªèšèšã®æŽåæ§ãå®çŸããŸããéçè§£æã¯ãåãªãå質ããŒã«ã§ã¯ãªããã¢ãŒããã¯ãã£çšèªã®åœ¢åŒåã«ãªããŸãã
CI/CDãã€ãã©ã€ã³ãžã®èšèšãã§ãã¯ã®çµ±å
èšèšæ€èšŒã®ä¿¡é Œæ§ã確ä¿ããã«ã¯ãèªåãã€ç¶ç¶çã§ããå¿ èŠããããŸããéçåæã CI/CD ãã€ãã©ã€ã³ã«çµ±åããããšã§ãéåãæ©æã«ãçæ³çã«ã¯ã¡ã€ã³ ãã©ã³ãã«ããŒãžãããåã«æ€åºã§ããããã«ãªããŸããã»ãšãã©ã®ããŒã«ã¯ãJenkinsãGitHub ActionsãGitLab CIãCircleCIããã®ä»ã®ãã«ãç°å¢ã«çµ±åã§ãã CLI ãµããŒããŸã㯠API ãæäŸããŠããŸããåæçµæã®èšå®ã«ãããéèŠãªèšèšã«ãŒã«ã«éåããå Žåã«ãã«ãã倱æããããããã« ãªã¯ãšã¹ãã«è©³çްãªãã£ãŒãããã¯ãä»å ãããã§ããŸããããŒã ãããã«ãŒ (埪ç°äŸåé¢ä¿ãå±éºãªã¢ãŒããã¯ãã£éåãªã©) ãšãœãã ã¢ã©ãŒã (ã¹ã¿ã€ã«éåã軜埮ãªéè€ãªã©) ãåºå¥ããããšãéèŠã§ãããã®åé¢ã«ãããéçºè ã®ä¿¡é Œãç¶æãããã€ãã©ã€ã³ãããã«ããã¯ã«ãªãã®ã§ã¯ãªãã圹ç«ã€ã¬ã€ããšããŠæ©èœãç¶ããããšãä¿èšŒãããŸããCI çµ±åã«ãã£ãŠå¯èŠæ§ãåäžããŸããçµæã¯é¢ä¿è å šå¡ã«å ¬éããããããã³ãŒãã®å¥å šæ§ã¯ããã¯ã°ã©ãŠã³ã ã¿ã¹ã¯ã§ã¯ãªããå ±å責任ã«ãªããŸãã
éçåæãšã¢ãŒããã¯ãã£æ±ºå®ã¬ã³ãŒã (ADR) ã®çµã¿åãã
ã¢ãŒããã¯ãã£æ±ºå®ã¬ã³ãŒã (ADR) ã¯ãé·æã«ãããéèŠãªèšèšäžã®éžæãææžåããŸããéçã³ãŒãåæãšçµã¿åããããšãADR ã¯ç¹å®ã®ãã¿ãŒã³ãæ§é ãååšããçç±ã®ã³ã³ããã¹ããæäŸããŸããããšãã°ããããžã§ã¯ãã§ã¯ãã¬ã¬ã·ãŒäŸåé¢ââä¿ã®ããã«äžéšã® God ã¯ã©ã¹ãäžæçã«èš±å®¹ãããããã©ã°ã€ã³ããŒã¹ã®æ¡åŒµæ§ããµããŒãããããã«æå³çã«çµåãå転ãããããå ŽåããããŸããéçããŒã«ã¯ããããã®æ¿èªãããé åã§ã¢ã©ãŒãããã¯ã€ããªã¹ãã«ç»é²ãŸãã¯æå¶ããããã«æ§æã§ããŸããããã«éèŠãªã®ã¯ãéçåæã®çµæããå€ã決å®ãçŸåšã®ã³ãŒãæ§é ãšäžèŽããªããªã£ãå Žåã匷調衚瀺ããããšã§ãADR ã«æ å ±ãæäŸã§ããããšã§ããã·ã¹ãã ãéå±€åã¢ãŒããã¯ãã£ããµããŒãããããã«èšèšãããŠããŠããæéã®çµéãšãšãã«éåãå¢ããå Žåã¯ãæ£åŒãªèšèšã®åè©äŸ¡ãä¿ãããšãã§ããŸãããã®ãã©ã¯ãã£ã¹ã¯ãéçã¡ããªãã¯ãšäººéã®æšè«ãçµã³ä»ããåæãã¢ãŒããã¯ãã£ã®é²åã«ãããç©æ¥µçãªåå è ã«å€ããŸããADR ãªã³ã¯ãèŠåãããã·ã¥ããŒãããŸãã¯æè¡ wiki ã«åã蟌ãããŒã ã¯ãèªååãšã¢ãŒããã¯ãã£ã®æå³ããã匷åºã«é£æºãããããšãã§ããŸãã
ã³ãŒãã¬ãã¥ãŒãã£ãŒãããã¯ã«ãŒããæŽ»çšããŠèšèšãæŽåããã
匷åãªéçè§£æã«ãŒã«ããã£ãŠãããã¹ãŠã®èšèšäžã®åé¡ãæ©æ¢°ã§æ€åºã§ããããã§ã¯ãããŸãããã³ãŒãã¬ãã¥ãŒã¯ãããžãã¹ããžãã¯ã®èª€çšãäžå¿ èŠãªæœè±¡åãæå³ã®éè€ãªã©ããã¡ã€ã³åºæãŸãã¯ã³ã³ããã¹ãäŸåã®éåãèŠã€ããããã«äŸç¶ãšããŠéèŠã§ãããã ããéçè§£æã¯ãã€ãºãæžãããæ§é ãã¿ãŒã³ãåé¢ã«åºãããšã§ã¬ãã¥ãŒã®å質ãåäžãããããšãã§ããŸããã¬ãã¥ã¢ãŒã¯ããã©ãŒããããã¹ã¿ã€ã«ãäœã¬ãã«ã®éè€ã«çŠç¹ãåœãŠãå¿ èŠããªããªããã¢ãŒããã¯ãã£ã®æå³ãšã·ã¹ãã ã®æŽåæ§ã«çŠç¹ãåœãŠãããšãã§ããŸããéçè§£æã®çµæã¯ã次ã®ãããªè«ç¹ã«ã圹ç«ã¡ãŸãããªããã®ã¢ãžã¥ãŒã«ã¯ãã®ã¢ãžã¥ãŒã«ã«äŸåããŠããã®ãïŒãªããã®æ©èœã¯ãããªã«å€§ãããªã£ãã®ãïŒè§£æçµæããã«ãªã¯ãšã¹ãã«åã蟌ãããšã§ãã¬ãã¥ã¢ãŒã¯ã·ã¹ãã å šäœã«é¢é£ãã倿ŽãããåºãèŠéã§æããããšãã§ããŸããæéã®çµéãšãšãã«ããã®ãã£ãŒãããã¯ã«ãŒãã«ãã£ãŠèšèšååã®å ±éçè§£ãåäžããéäžç®¡çãªãã§äžè²«ããé©çšãä¿é²ãããŸãã
ãšã³ã¿ãŒãã©ã€ãºãœãªã¥ãŒã·ã§ã³ïŒæ¹æ³ SMART TS XL å€§èŠæš¡ãªèšèšåæããµããŒã
ã³ãŒãã®èšèšéåã¯ãåäžã®ãªããžããªå ã§æ€åºããã ãã§ãå°é£ã§ããã¬ã¬ã·ãŒã³ã³ããŒãã³ãã忣ã¢ãŒããã¯ãã£ãè€æ°ã®ããã°ã©ãã³ã°èšèªããããŠæ°åãã®çžäºäŸåã¢ãžã¥ãŒã«ã§æ§æããããšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã«é©çšãããšãæåã«ããæ€æ»ãç¬ç«ããéçè§£æã§ã¯ããã«æ©èœäžå šã«é¥ããŸãããããã SMART TS XL å€é©çãªå©ç¹ãæäŸããŸããåãªãéçã³ãŒãã¹ãã£ãã§ã¯ãªãã SMART TS XL ãœãããŠã§ã¢ã®æ§é ãããžãã¯ããããŒã®ã·ã¹ãã å šäœã®ãã¥ãŒãæäŸããããŒã ããã©ãããã©ãŒã ããã¯ãããžãŒ ã¹ã¿ãã¯å šäœã«ããã£ãŠèšèšååã®éåãæ€åºããŠè§£æ±ºã§ããããã«ããŸãã
ã·ã¹ãã éã®ã³ãŒãæ§é ãšäŸåé¢ä¿ãçè§£ãã
SMART TS XL ã¡ã€ã³ãã¬ãŒã ïŒCOBOLãPL/IãJCLïŒãããã«ãã£ã¢ïŒJavaãC#ãPL/SQLïŒãææ°ã®WebãµãŒãã¹ïŒJavaScriptãPythonãªã©ïŒãå«ããã¹ãŠã®ã³ãŒãè³ç£ã®çµ±åã¡ã¿ããŒã¿ã€ã³ããã¯ã¹ãæ§ç¯ããŸãããã®ã€ã³ããã¯ã¹ã«ãããããŒã ã¯åã ã®ã¯ã©ã¹ãã¡ãœããããã·ã¹ãã éã®äŸåé¢ä¿ã«è³ããŸã§ãè€æ°ã®ã¬ãã«ã§ã·ã¹ãã ã¢ãŒããã¯ãã£ãèŠèŠåã§ããŸããèšèšéåãåæããéã«ã¯ããã®ãããªå¯èŠæ§ãäžå¯æ¬ ã§ããäŸãã°ãCOBOLããã°ã©ã å ã®Godã¯ã©ã¹ãJavaãã€ã¯ããµãŒãã¹ã®ãŠãŒãã£ãªãã£é¢æ°ãåç §ããŠããå Žåãã·ã¹ãã éçµåã¡ããªã¯ã¹ã«ãã£ãŠãããæ€åºã§ããŸããããã«ããããšã³ã¿ãŒãã©ã€ãºã¢ãŒããã¯ãã¯ãããŒã«ã«ãªèšèšäžã®åé¡ã ãã§ãªããå¢çãè¶ããŠè匱æ§ãçã¿åºã忣æ§é äžã®åé¡ãçºèŠã§ããŸãã
èšèªéã¢ãŒããã¯ãã£ã¬ã€ã€ãŒã®ãããã³ã°
ã®äžã€ SMART TS XLã®éç«ã£ãæ©èœã¯ãç°ãªãããã°ã©ãã³ã°èšèªéã§èšèšããžãã¯ã飿ºã§ããããšã§ããåŸæ¥ã®éçããŒã«ã¯ãã³ãŒããåå¥ã«è§£æããããšãå€ããããã¹ã¿ãã¯å ã®ããã»ã¹ãå¥ã®ã¹ã¿ãã¯ã®åäœã«ã©ã®ããã«åœ±é¿ããããèæ ®ã§ããŸããã SMART TS XL ãã®åé¡ã¯ããã©ãããã©ãŒã éã§å¶åŸ¡ãããŒãšããŒã¿äœ¿çšããªã³ã¯ããããšã§è§£æ±ºãããŸãã顧客æ€èšŒã«ãŒã«ãCOBOLããããžã§ãããã©ã®ããã«çæãããã¹ãã¢ãããã·ãŒãžã£ãééããæçµçã«JavaScriptããã³ããšã³ãã«å°éãããã远跡ã§ããŸãããã®ãšã³ãããŒãšã³ãã®ãã¬ãŒãµããªãã£ã«ãããèšèšè©äŸ¡ã«ãããŠãã€ã³ã¿ã©ã¯ã·ã§ã³ã¬ãã«ã®åéæ§ãé¢å¿ã®åé¢ã®éµå®ããããŠè€æ°ã®ã¹ã¿ãã¯ã«ãŸãããå Žåã§ãæœè±¡åã¬ã€ã€ãŒãäžè²«ããŠé©çšãããŠãããã©ããã®æ€èšŒãå¯èœã«ãªããŸãã
åéæ§ãéå±€åãã¢ãžã¥ãŒã«åã®éåãå¯èŠåãã
ããŒãããããäŸåé¢ä¿å³ãè€éæ§ãªãŒããŒã¬ã€ã䜿çšããŠã SMART TS XL èšèšéŸå€ãè¶ ããã¢ãžã¥ãŒã«ãå£åã®å åã瀺ãã¢ãžã¥ãŒã«ããã€ã©ã€ã衚瀺ããŸããäŸãã°ãéçºè ã¯ãå€éšäŸåé¢ä¿ãå€ãããããã±ãŒãžïŒã¢ãžã¥ãŒã«æ§ãäœãïŒããããžãã¹ããžãã¯ããã¬ãŒã³ããŒã·ã§ã³ã³ãŒããšçµ¡ã¿åã£ãŠããããã±ãŒãžïŒé¢å¿ã®åé¢éåïŒãå³åº§ã«ç¹å®ã§ããŸãããããã®èŠèŠåã¯éçãªãã®ã§ã¯ãªããé¢é£ããã³ã³ããŒãã³ããããžãã¹ã«ãŒã«ããŸãã¯å¶åŸ¡ãããŒã®åå²ããªã¢ã«ã¿ã€ã ã§ããã²ãŒãã§ããŸããã³ãŒãã1è¡ãã€æ€æ»ããã®ã§ã¯ãªããããŒã ã¯ã¢ãŒããã¯ãã£ã®æŽåæ§ãç·åçã«è©äŸ¡ããæãéèŠãªç®æã«ãªãã¡ã¯ã¿ãªã³ã°ãéäžãããããšãã§ããŸãããããã®èŠèŠçãªæãããã¯èšèšã¬ãã¥ãŒã«ã圹ç«ã¡ãæè¡ãªãŒããŒã¯å®éã®ããŒã¿ã«åºã¥ããé«ã¬ãã«ã®èšèšã«é¢ããè°è«ãä¿é²ã§ããŸãã
ããžãã¹ã«ãŒã«ã®éè€ãšå¥çŽã®äžäžèŽã®ç¹å®
ãšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããæã埮åŠãã€ã³ã¹ãã®ãããèšèšéåã®äžã€ã¯ãã·ã¹ãã éã§ã®ããžãã¹ããžãã¯ã®äžè²«æ§ã®ãªãè€è£œã§ããå²åŒèšç®ãè«æ±ã泚æåŠçãã¬ããŒãã·ã¹ãã ã§ãããã«ç°ãªãæ¹æ³ã§å®è£ ãããŠããå ŽåãDRYã«éåãããªã¹ã¯ãçããŸãã SMART TS XL ã³ãŒããç°ãªãèšèªã§èšè¿°ãããŠããå Žåã§ãããªããžããªéã®ããžãã¯ãããã¯ã®ã»ãã³ãã£ãã¯æ¯èŒãéããŠãããæ€åºããŸããããžãã¯ã®ç䟡æ§ãšçžéæ§ãç¹å®ããããšã§ãçµç¹ã¯éèŠãªããžãã¹ããã»ã¹ã®ããã®ä¿¡é Œã§ããäžå çãªæ å ±æºãæ§ç¯ã§ããŸããããã«ãããå ç¢ãªèšèšååã®ç¹åŸŽã§ããæœè±¡åãåå©çšæ§ããããŠè¿œè·¡å¯èœãªæææ±ºå®ããžãã¯ã匷åãããŸãã
ãã¡ã€ã³åºæã®èšèšãã¿ãŒã³ã®ã«ã¹ã¿ã æ€åºã«ãŒã«ã®ãµããŒã
SMART TS XL æ¢æã®ã«ãŒã«ã«éå®ãããŸãããäŒæ¥ã¯ãã¢ãŒããã¯ãã£ãã¬ã€ããã¯ã«åºã¥ããŠã«ã¹ã¿ã èšèšå¶çŽãå®çŸ©ã§ããŸãããããµãŽãã«ã¢ãŒããã¯ãã£ãã¯ãªãŒã³ã¬ã€ã€ãªã³ã°ãDDDå¢çã®é©çšãªã©ã SMART TS XL ã¡ã¿ããŒã¿ãã¿ãŒã³ãåœåèŠåããŸãã¯ããŒã¿ã¢ã¯ã»ã¹æ§é ãçšããŠéåãæ€åºããããã«èšå®ã§ããŸãããã®ã«ã¹ã¿ãã€ãºã«ãããçµç¹ã¯ãã¡ã€ã³ç¥èãèšèšæ€èšŒã¯ãŒã¯ãããŒã«çŽæ¥çµã¿èŸŒãããšãã§ããããããã®ã³ã³ããã¹ãã«åãããŠã«ã¹ã¿ãã€ãºãããã¢ãŒããã¯ãã£ãèæ ®ããè§£æãã©ãããã©ãŒã ãæ§ç¯ã§ããŸãã
ãã¶ã€ã³ãããã³ã°ã«ãããªãã¡ã¯ã¿ãªã³ã°ãšãªãã©ãããã©ãŒã åã®åãçµã¿ã®æ¯æŽ
ã¬ã¬ã·ãŒ ã·ã¹ãã ãææ°åããå Žåãèšèšã®æŽåæ§ãç¶æãŸãã¯åæ§ç¯ããããšãéèŠã§ãã SMART TS XL æ¢ç¥ã®éåãæ§é çãªåŒ±ç¹ãå«ãã·ã¹ãã èšèšã®æ£ç¢ºãªããããæäŸããããšã§ããã®ããã»ã¹ãå éããŸãããªãã©ãããã©ãŒã ã®å®æœäžãããŒã ã¯ã©ã®ã¢ãžã¥ãŒã«ããªãã¡ã¯ã¿ãªã³ã°ãçµ±åããŸãã¯å»æ¢ãã¹ãããç¹å®ã§ããŸãã SMART TS XL åäžè²¬ä»»ãå¶åŸ¡ã®å転ãšãã£ãèšèšååãç¶æããªãããã¬ã¬ã·ãŒã¹ã¿ãã¯ããææ°ã¹ã¿ãã¯ãžã®ããžãã¯ã®ç§»è¡ã远跡ããã®ã«åœ¹ç«ã¡ãŸããã·ã¹ãã ã®é²åã«ãããã¬ã€ããšæ€èšŒã¬ã€ã€ãŒã®äž¡æ¹ãšããŠæ©èœããŸãã
å€§äŒæ¥ã«ãããèšèšæŽåæ§ã®ãã¬ãŒãµããªãã£ãšç£æ»ã®å®çŸ
èŠå¶ã®å³ããæ¥çãé«åºŠã«æ§é åãããéçºç°å¢ã§ã¯ãã¢ãŒããã¯ãã£é©åæ§ã®è¿œè·¡å¯èœæ§ãšç£æ»å¯èœæ§ã¯ãªãã·ã§ã³ã§ã¯ãããŸããã SMART TS XL éåããªãã¡ã¯ã¿ãªã³ã°ã®æ±ºå®ãã·ã¹ãã ã¬ãã«ã®ã¡ããªã¯ã¹ãçµæçã«èšé²ããŸããããã«ãããèšèšã®é²åã«é¢ããæ€çŽ¢å¯èœãªå±¥æŽãäœæãããã³ã³ãã©ã€ã¢ã³ã¹ç£æ»ã倿Žåœ±é¿åæãæŠç¥èšç»ã«åœ¹ç«ã¡ãŸããããã«ãããèšèšã®å¥å šæ§ã¯ãã¯ã䞻芳çãªææšã§ã¯ãªãããœãããŠã§ã¢ããªããªãŒã©ã€ããµã€ã¯ã«ã«çµ±åããã远跡å¯èœã§ã¬ãã¥ãŒå¯èœãªææç©ãšãªããŸãã
èšèšã®å®è·è ãšããŠã®éçè§£æ
çŸä»£ã®ãœãããŠã§ã¢éçºã¯ãã¹ããŒããšæç¶å¯èœæ§ã®ãã©ã³ã¹ãåãããšãäžå¯æ¬ ã§ããæ©èœãè¿ éã«æäŸããããšã§çæçãªç®æšã¯éæã§ããŸããããœãããŠã§ã¢èšèšã®ååãç¡èŠãããšãæçµçã«ã¯è匱ãªã·ã¹ãã ãäžè²«æ§ã®ãªãããžãã¯ããããŠã³ã¹ãã®ããããªãã¡ã¯ã¿ãªã³ã°ã«ã€ãªãããŸããéçã³ãŒãè§£æã¯ãããããã¢ãŒããã¯ãã£ã®éžè±ã«å¯ŸããéèŠãªé²åŸ¡ç·ãšãªããŸããéçã³ãŒãè§£æã¯ãããã§ãªããã°çºèŠãé£ããéåãã€ãŸãäœã¶æããããŠèç©ãããã³ãŒãããŒã¹ã®æŽåæ§ãéãã«äŸµé£ããéåã衚é¢åãããŸãã
ããããéçè§£æã¯äžèœè¬ã§ã¯ãããŸãããããžãã¹ã®æå³ããã¡ã€ã³ã®å¢çãæŠç¥çãªäŸå€ãå®å šã«çè§£ããããšã¯ã§ããŸããããããã广çã«æŽ»çšããã°ãèŠåŸã匷åããåæãããèšèšãã©ã¯ãã£ã¹ã®é©çšãèªååããããŒã ããªããžããªéã®äžè²«æ§ãä¿ã€ããšãã§ããŸããç¶¿å¯ãªéŸå€ããã¡ã€ã³åºæã®ã«ãŒã«ããããŠCI/CDã¯ãŒã¯ãããŒãžã®çµ±åãšçµã¿åãããããšã§ãéçè§£æã¯åãªãå質ã²ãŒããã¯ããã«è¶ ãããã®ã«ãªããŸããéçºããã»ã¹ã«çµã¿èŸŒãŸããèšèšã®å®è·è ãšãªãã®ã§ãã
æ°å幎ã«ãããã³ãŒããæ°åã®èšèªããããŠã¯ãã¹ãã©ãããã©ãŒã ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãšãã£ãè€éããæ±ãããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ã¯ãæç¢ºããããã·ã§ã³ã¯ãªãã£ã«ã«ã«ãªããŸãã SMART TS XL éçè§£æã®ç¯å²ããã¡ã€ã«ããã·ã¹ãã ã颿°ããããžãã¹ã«ãŒã«ã«ãŸã§æ¡åŒµããæåã¬ãã¥ãŒã§ã¯å®çŸã§ããªãã¬ãã«ã®å¯èŠæ§ãå®çŸããŸããããã«ãããçµç¹ã¯ã³ãŒãã¬ãã«ã®åé¡ã ãã§ãªããèšèšã¬ãã«ã®æ¬ é¥ãæ€åºããã·ã¹ãã å šäœã®åé¡ãšãªãåã«ä¿®æ£ããããšãã§ããŸãã
çµå±ã®ãšãããéçã³ãŒãè§£æãšã¯ãéçºè ã®ééããçªãæ¢ããããšã§ã¯ãããŸãããããŒã ãæ£ãããã®ãå埩åããããäžè²«æ§ããããé·ã䜿ãããã®ãæ§ç¯ã§ããããã«æ¯æŽããããšã§ããèšèšã®æŽåæ§ã枬å®å¯èœã§ã远跡å¯èœã§ãèŠèŠåãããè³ç£ã«ãªããšãã¢ãŒããã¯ãã£ã¯åãªãã¹ã©ã€ãè³æã§ã¯ãªããã³ãŒãããŒã¹ã®äžéšã«ãªããŸãã