ããã°ã©ãã³ã°ãããšãã«ããžã§ã³ã¬ãã¬ãŒã€ãŒïŒãã¬ãŒã€ãŒããæ§ç¯äžã®æ§é ã«1ã€ã®èŠçŽ ã亀äºã«è¿œå ãããã®ã¢ã¯ã·ã§ã³ãç Žå£ã«ã€ãªããèŠçŽ ã倱ãã²ãŒã ïŒã®ããã«æããŸããïŒ ãœãããŠã§ã¢ã·ã¹ãã ã«å€æŽãå ããã®ã¯ç°¡åã§ããïŒ å€æŽãå ããåŸãã³ãŒããçªç¶æ©èœããªããªãããšãæããŠããŸããïŒ ãããã®è³ªåã®1ã€ã«ãã¯ãããšçããå Žåãããã¯ã³ãŒããé©åã«èšèšãããŠããªãããšã®æãããªå
åã§ããã衚瀺ãããç¿æ¥ã«ã¯äœæ¥ãé
ããªããŸãã ç¿æ¥ã«ã¯ç解ãã«ããã³ãŒããéçºããå¿
èŠããããŸãããïŒ ããã»ããŒãã£ã³ïŒããããããïŒã®å€ãã®ãã¬ãŒã³ããŒã·ã§ã³ã«åå ã§ããã®ã¯å¹žéã§ããããã³ãŒãã®è³ªãæªãããã«éçºé床ã倧å¹
ã«äœäžãããã©ãããèŽè¡ã«å°ãã圌ã®ã¹ããŒãã®éšåãæ¬åœã«å¥œãã§ãã ã»ãšãã©ã®èŽè¡ãæãæãããšãã圌ã¯å°ããïŒãããã§ãªãããªãã¯ããããã®ããã«æžããã®ã§ããïŒã
ã¹ã¯ã©ãã«ããã¬ã€ããŸããããïŒãã®èšäºã¯ãMark Nijhofã«ããæ¡åŒµå¯èœãªãœãããŠã§ã¢ã³ãŒãã®éçºãžã®ã¢ãããŒãã®ãã¬ãŒã³ããŒã·ã§ã³ã«åºã¥ããŠæžãããèè
ã®èš±å¯ãšç¥çŠãåŸãŠ
Alexey Smirnovã«ãã£ãŠç¿»èš³ãããŸããã ããã¯ãSOLIDã®ååã®äœ¿çšæ³ãäŸãšãšãã«ç€ºããŠãããåå¿è
ãçµéšè±å¯ãªéçºè
ã®äž¡æ¹ã«åœ¹ç«ã€ããšãç解ã§ããŸãã
ãã£ãšããèŠããŸããïŒæè»æ§ã®ãªãã³ãŒãã®åé¡ã解決ããããã«ããããèšè¿°ããããã«äœ¿çšããã¹ã¿ã€ã«ãå€æŽããå¿
èŠããããŸãããŸããä»åŸã®å€æŽã«ã€ããŠããã«èããç°¡åã«å€æŽå¯èœãªã³ãŒãã ãã§ãªããæåéãå€æŽãè¡ãããããšãæåŸ
ããã³ãŒããèšè¿°ããå¿
èŠããããŸãå°æ¥çã«ã
ææ¥å€æŽãããã®ããã«ã³ãŒããæžããŸãã ãã®ãããªæè»ãªã³ãŒããæžãéã®å€§ããªå©ãã¯ããã®åŸã®åæ§ç¯ã«åœ¹ç«ã€ååãå«ããã¿ãŒã³ïŒãã³ãã¬ãŒãïŒã«ãã£ãŠæäŸãããŸãã ç¹ã«ããããã¯ããããSOLIDååã§ãã ãããäœã§ããããç解ããŠã¿ãŸãããã SOLIDã¯ãå°æ¥ã®å€æŽã«å¯ŸåŠããã·ã¹ãã ã®èœåã倧å¹
ã«åäžãããã³ãŒãã®æ§é åã«äžå¯æ¬ ãª5ã€ã®ç°ãªãååã説æããé åèªã§ãã
çŽ æŽããããã¶ã€ã³ãšã¯ãé£ãã質åã«å¯ŸããçããèããŠããèããããšã§ãããã¡ããããã¡ããã§ãïŒèåãªèæžãã¬ã¬ã·ãŒã³ãŒããå¹æçã«äœ¿çšãããã®èè
ã§ãããã€ã±ã«ãã§ã¶ãŒãºã¯ãSOLIDãšããç¥èªãææ¡ãã人ã
ã®1人ã§ããã ãããã©ã®ãããªåçã§æ§æãããŠãããèŠãŠã¿ãŸãããã
â¢S-åäžè²¬ä»»ååïŒSRPïŒ
â¢O-ãªãŒãã³ã¯ããŒãºãããªã³ã·ãã«-OCP
â¢L-ãªã¹ã³ã眮æã®åå-LSP
â¢I-ã€ã³ã¿ãŒãã§ã€ã¹åé¢ã®ååïŒISPïŒ
â¢D-äŸåé¢ä¿å転ã®åç-DIP
ããã»ããŒãã£ã³ã¯ããããã®ååã®é åºã«ã€ããŠã¯æºãããªããã®ã§ãããSOLIDã®ç¥èªãåæ ããŠããããSDOLIãžã®é åºã®å€æŽãææ¡ããŠããŸãã 圌ã®ææ¡ã«åŸããŸãã
ãã£ã ã»ãã«ãããã®åŒçšããã¯ç§ã®ã·ãŒã±ã³ã¹ã§ãããã®ææ¡ã確èªããŠãç§ã¯ããã€ãã®å
éšãã¬ãŒã³ããŒã·ã§ã³ãè¡ã£ããšèšãããšãã§ãããã®ãã³ã«èª¬æããã®ãå°é£ã«ãªããŸããã SOLIDã®åçã¯äºãã«å¯æ¥ã«é¢é£ããŠãããSDOLIã·ãŒã±ã³ã¹ã«ãããã¬ãŒã·ã§ã³ã倧å¹
ã«ç°¡çŽ åããããšããäºå®ã«ãããç§ã«ã¯æããŸãã ããã§ã¯å§ããŸãããã
ãã¬ãŒãã®1ã€ãç ŽæãããŸã§ãã¹ãŠãå®è¡ã§ãããã°ãããããŒã«ã«æ³šæããŠãã ããã1ã€ã®ç Žæãããã¬ãŒããä»ã®ãã¹ãŠã®ãã¬ãŒãã«åœ±é¿ãäžãããããå»æ£ããå¿
èŠããããŸãã ã¯ã©ã¹ãå€æŽããçç±ã¯è€æ°ãããŸããã
å人ç責任ã®ååïŒåäžè²¬ä»»ååïŒã¯ãSOLIDã®æåã®ååã§
ããããã¯ã©ã¹ãå€æŽããçç±ã¯è€æ°ããã¹ãã§ã¯ãªããããšã瀺ããŠ
ããŸã ã ãããŸãã¯ãã®ã¯ã©ã¹ãŸãã¯ã¡ãœãããäœã«è²¬ä»»ãæã¡ããã®è²¬ä»»ç¯å²å€ã«ãããã®ãç解ãããšãããããå€æŽããã®ãåžžã«ç°¡åã«ãªããŸãã å人çãªè²¬ä»»ç¯å²ããããããã·ã¹ãã ã®ä»ã®éšåã«åœ±é¿ãäžããå¯èœæ§ã®ããå€æŽãå ããå¯èœæ§ã¯ã»ãšãã©ãããŸããã ãã¡ãããã·ã¹ãã ã®åäœãå€æŽã§ããŸãããã³ãŒãã¯å€æŽã§ããŸãããããã«ãããåå©çšã®å¯èœæ§ã倧å¹
ã«é«ãŸããŸãã ããã«ã責任ç¯å²ãæ確ã«å®çŸ©ããããœãããŠã§ã¢èšèšã¯ãä»ã®ãã¹ãŠããåé¢ããŠãã¹ãããã®ãç°¡åã§ãã
OrderProcessorã¯ã©ã¹ã®ããŸããŸãªè²¬ä»»é åã詳ããèŠãŠã¿ãŸãããã ããã«ã¯ã泚æã®åŠçãä¿ç®¡ãããã³ç¢ºèªã¡ãã»ãŒãžã®éä¿¡ã«é¢é£ãã3ã€ããããŸãã ãããã£ãŠããã®ã¯ã©ã¹ãå€æŽããçç±ã¯å°ãªããšã3ã€ãããŸãã
ã芧ã®ãšããã責任ç¯å²ã3ã€ã®ç°ãªãã¯ã©ã¹ã«åããŸããã ããã§ããããã®ã¯ã©ã¹ãç°¡åã«ç¥ãã ãã§ãã¯ã©ã¹ã®è²¬ä»»ãç解ããããšãã§ããŸããåå©çšããŠãäžå¿
èŠã§ã¯ãããŸããã
èŠãç®ã»ã©çããªãã ããã§ã¯ãããŸããã äœã¬ãã«ã¢ãžã¥ãŒã«ã¯äœã¬ãã«ã«äŸåããã¹ãã§ã¯ãªããäž¡æ¹ãšãæœè±¡åã«äŸåããã¹ãã§ãã æœè±¡åã¯è©³çŽ°ã«äŸåãã¹ãã§ã¯ãããŸããã å®è£
ã®è©³çŽ°ã¯æœè±¡åã«äŸåããå¿
èŠããããŸããäŸåé¢ä¿å転ã®ååã¯ã5çªç®ã®æçµçãªSOLIDååã§ããã
ãé«ã¬ãã«ã¢ãžã¥ãŒã«ã¯äœã¬ãã«ã¢ãžã¥ãŒã«ã«äŸåããã¹ãã§ã¯ãããŸãããããããã®ã¬ãã«ã¯äž¡æ¹ãšãæœè±¡åã« äŸåããå¿
èŠããããŸããæœè±¡å ã
ã Brrr ç°¡åã«èšãã°ãããã¯ãã³ãŒãå
ã®ç¹å®ã®å®è£
ã«äŸåãããã®ã¯ãªããã€ã³ã¿ãŒãã§ã€ã¹ãŸãã¯æœè±¡ã¯ã©ã¹ãžã®äŸåã®ã¿ãèš±å¯ãããããšãæå³ããŸãã
ãã®ååã«åŸãã¹ãçç±ã¯ãã³ãŒãã«åœ±é¿ãäžããããšãªããããå®è£
ãå¥ã®å®è£
ã«ç°¡åã«çœ®ãæããããšãã§ããããã§ãã ã¯ããæ£ç¢ºã«ã ããªãã®ã³ãŒãã¯çµ¶å¯Ÿã«æ°ã«ããã¹ãã§ã¯ãããŸããã
ãã®äŸã§ã¯ãOrderProcessorã¯ã©ã¹ãRepositoryãšMailSenderã®å®è£
ã®è©³çŽ°ã«äŸåããŠããããšã«æ°ä»ããããããŸããã éç¥ã®éä¿¡ã®å®è£
ãå€æŽããããã«å¥ã®ã¯ã©ã¹ãããšãã°SmsSenderã䜿çšããå¿
èŠãããå Žåã¯ã©ããªããŸããïŒ æªããã¥ãŒã¹ã¯ãOrderProcessorã¯ã©ã¹ã«ã¯ã¡ãã»ãŒãžã®éä¿¡æ¹æ³ã«é¢ããç¥èãããããããã®å®è£
ãå€æŽããå¿
èŠããããšããããšã§ãã
çŸåšãOrderProcessorã¯å®è£
ã¡ãœããã«äŸåãããIRepositoryããã³IMailSenderã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ã«äŸåããŠããŸãã ãããã£ãŠãéç¥ã®éä¿¡æ¹æ³ãå€æŽããå¿
èŠãããå Žåã¯ãIMailSenderã€ã³ã¿ãŒãã§ã€ã¹ã®æ°ããå®è£
ãäœæããOrderProcessorã«æäŸããã ãã§ãã OrderProcessorèªäœã¯ä»¥åãšåãããã«æ©èœãç¶ãããã®å®è£
ã¯å€æŽããããåäœã®ããžãã¯ã®ã¿ãèæ
®ãç¶ããŸãã
çŸå®¹åž«ã«ãšã£ãŠã圌女ã¯å€±ãããŸãããä¿®æ£ãå¯èœã«ããããã«ãã¹ã«ã©ãå£çŽ
ãäžããããšãã§ããŸããOpen-Closed Principleã¯ãªã¹ãã®2çªç®ïŒOpen Closed PrincipleïŒã§ã
ããœãããŠã§ã¢ãšã³ãã£ãã£ã¯æ¡åŒµã®ããã«éãããŠããå¿
èŠããããŸãããå€æŽã®ããã«éããããŠããå¿
èŠããããŸã ã
ã ããã¯ãã¯ã©ã¹ãç©ççã«å€æŽããã«ãã¯ã©ã¹ã®å€éšåäœãšå€éšäŸåé¢ä¿ãå€æŽã§ããããšãæå³ããŸãã æ¢ã«å®çŸ©ãããŠããã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¬ãŒã ã¯ãŒã¯å
ã§äœæ¥ããã³ãŒãã®äžéšã«ç¹å®ã®å€æŽãå ããä»ã®éšåã¯å€æŽããªãå Žåã«ããã®åäœãå¿
èŠã«ãªããŸãã
æ¢ã«ãæ°ã¥ããããããŸãããããã®ã¯ã©ã¹ã¯äŸåé¢ä¿å転ã®åçã䜿çšããçµæã§ããããªãŒãã³ã¯ããŒãºãåçã«ãæºæ ããŠããŸãã ããã¯ãäŸåé¢ä¿ã®å転ã䜿çšããŠéå°ã®åçãéæã§ããããšãæå³ããŸããïŒ ãã¡ããããããããã¯ã¯ã©ã¹ãæ¡åŒµå¯èœã«ããå¯äžã®æ¹æ³ããã¯ã»ã©é ãã§ãã
åã®ã¹ã©ã€ãã§ã¯ãOrderProcessorã¯ã©ã¹ã®å®£èšã«IOrderProcessorã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ããŸãããããã«ããããã®ã¯ã©ã¹ã®ä»£æ¿å®è£
ãäœæã§ããŸããã 次ã«ãDecoratedOrderProcessor Decoratorã¯ã©ã¹ãäœæããŸãããããã«ãããå
ã®ã¯ã©ã¹ã«è¿œå ã®åäœãè¿œå ãããå€æŽããå¿
èŠããªããªããŸããã åæ§ã®ã¢ãããŒãã䜿çšããŠããã®åäœããã®å Žã§ïŒå®è¡æã«ïŒè¿œå ããããšãã§ããŸãã ãã®ã¢ãããŒãã瀺ããã1ã€ã®è¯ãäŸã¯ã
FubuMVCã§å®è¡ãããèšèš
ã§ã ã
ãã¿åéè»ã¯ãäžããã§ã¯ãªãäžããéãéãããã¿å®¹åšã®è²ãæ°ã«ããŸããã3çªç®ã®SOLIDååã¯Liskov Substitution Principleã§ããã
ãåºæ¬ã¯ã©ã¹ãžã®åç
§ãŸãã¯ãã€ã³ã¿ãŒã䜿çšããé¢æ°ã¯ãå®è£
ã®è©³çŽ°ãç¥ããªããŠããªããžã§ã¯ããŸãã¯ãã®æŽŸçç©ã䜿çšã§ããå¿
èŠããããŸã ã
ã ã€ãŸããã³ãŒãã§ç¹å®ã®ã¯ã©ã¹ãŸãã¯ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããå Žåãå
éšå®è£
ãå€æŽããã«ã掟çã¯ã©ã¹ãŸãã¯ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã®ä»£æ¿å®è£
ã䜿çšã§ããå¿
èŠããããŸãã ãã®ååã¯ãå€æŽãã³ãŒãã«äžãã圱é¿ãæå°éã«æããŸãã
PriorityOrderã¯ã©ã¹ãLiskov Substitution Principleã«éåããŠããããšã«æ³šæããŠãã ããã Orderã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã䜿çšããã³ãŒãã泚æç¶æ
ïŒIsValidé¢æ°ïŒã®æå¹æ§ããã§ãã¯ããå ŽåãããŒã«å€ã®åœ¢åŒã§çµæãååŸããããšãæåŸ
ããŸãããPriorityOrderã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã䜿çšããå Žåã泚æãç¡å¹ã§ããå Žåã«çºçããå¯èœæ§ã®ããäŸå€ãè¿œå ã§åŠçããå¿
èŠããããŸãç¶æ
ã ãããã®ã¯ã©ã¹ãæäœããã«ã¯ãéçºè
ã¯ãèªåãåŠçããŠããã¿ã€ãïŒOrderãŸãã¯PriorityOrderïŒãæ£ç¢ºã«ç¥ãå¿
èŠããããŸãã ãããŠãããã¯ãã¡ããã¬ã¹ã³ãŠã®ä»£æ¿ååã«éåããŸãã
ãã®äŸã§ã¯ãBob Martinã䜿çšããŸãã Squareã¯ã©ã¹ã¯Heightå®çŸ©ã®å®å
šã«ç°ãªãå®è£
ãæäŸãããããè¡šé¢ç©ãWidthãšHeightã®ç©ãšããŠèšç®ãããããšãæåŸ
ãããã¹ãŠã®Rectangleã¯ã©ã€ã¢ã³ããäžå¿«ãªé©ããåŸãã§ãããã
å»åž«ã«ãã£ãŠã¯ãããªããæ²»ãã®ã«äœã圹ç«ã€ãã ããäŒããŠãã ããããã ããå»åž«ã«ãã£ãŠã¯ãäžç圌ã«äŒããå¿
èŠããããããããŸããã ã¯ã©ã€ã¢ã³ãã¯ã䜿çšããªãã€ã³ã¿ãŒãã§ã€ã¹ã«äŸåããªãã§ãã ãããInterface Segregation Principleã¯4çªç®ã®SOLIDååã§ããã次ã®ããã«èãããŸãã
ãã¯ã©ã€ã¢ã³ãã¯ã䜿çšããªãã€ã³ã¿ãŒãã§ã€ã¹ã«äŸåãã¹ãã§ã¯ãããŸãã ã
ã ããã¯ããããªããžã§ã¯ãã®äœ¿çšæ¹æ³ãç°ãªãå Žåã顧客ãç°ãªã責任åéãšæ··åããªãããã«ããå¿
èŠããããããç°ãªããŸãŒã³ã®å¯èŠæ§ãåé¢ããããã«ç°ãªãã€ã³ã¿ãŒãã§ã€ã¹ãå¿
èŠã§ããããšãæå³ããŸãã ã³ãŒãã®å€æŽã«ãã圱é¿ãæå°éã«æãããšèšã£ãŠãç¹°ãè¿ããããããŸããã
顧客ãè²·ãç©ããã«ååãè¿œå ããå
容ã衚瀺ããèªåèªèº«ãšé
éæ¹æ³ã«é¢ããæ
å ±ãå
¥åãã泚æãå®äºããçŽåã«ã泚æã確èªããããã®èŠçŽããŒã¿ãåãåãããšãã§ããã·ã³ãã«ãªãªã³ã©ã€ã³ã¹ãã¢ãæ³åããŠãã ããã ãããã£ãŠã泚æã䜿çšããã«ã¯3ã€ã®ç°ãªãæ¹æ³ããããŸããããããã®äœ¿çšæ¹æ³ã®ãã¹ãŠãOrderã¯ã©ã¹ãæäŸã§ãããã¹ãŠã®æ
å ±ãå¿
èŠãšããããã§ã¯ãããŸããã
äŸãšããŠããã§ãã¯ã¢ãŠãããã»ã¹ã®ããŸããŸãªã¹ãããã«åå¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããšãããããŸãã Orderã¯ã©ã¹ã¯åãããã«èŠããŸãããç°ãªãã¯ã©ã€ã¢ã³ãã¯ãã¿ã¹ã¯ãå®äºããããã«å¿
èŠãªã¯ã©ã¹ã®æ©èœã«ã®ã¿ã¢ã¯ã»ã¹ã§ããŸãã ã€ãŸããOrderã¯ã©ã¹ã®èŠæ¹ãç°ãªããŸãã ãã®ã¢ãããŒãã«ãããåã¹ãããã§ãªããžã§ã¯ãã®ããŸããŸãªè¡šçŸãäœæããã³äœ¿çšã§ãããã®å Žæã§å¿
èŠãªã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ãå®è£
ã§ããŸãã
ããã°ã©ããŒã®éæ³ã®åžœåã³ã³ãããŒã«ã³ã³ããã®å転ãªãã§äŸåé¢ä¿ã®å転ãè¡ãããšã¯å°é£ã§ãã åé¡ã¯ãã¡ãœããå®è£
ã¬ãã«ã§ã®ç¹å®ã®å®è£
ãžã®ãã¹ãŠã®äŸåé¢ä¿ããããé«ãã¬ãã«ã®ã³ãŒãã«ç§»è¡ããããšã§ãã ãŸãã«ãã®å ŽåãInversion of Controlã³ã³ããã圹ç«ã¡ãŸãã
ãã®ã³ãŒããèŠãŠãã ããã ã芧ã®ããã«ãç¹å®ã®å®è£
ãžã®äŸåé¢ä¿ã¯ãã®ã¬ãã«ã§ãŸã çããŠããŸããbrrr ...
èŠãç®ãè¯ãããã£ãšãããšããèšãã§ãããã ãã®äŸã§ã¯ãå
±éã€ã³ã¿ãŒãã§ã€ã¹ãæã¡ããã¹ãŠã®ã³ã³ãããŒã«ã³ã³ããã®å転ããµããŒãããCommon Service Locatorã®äœ¿çšæ¹æ³ã瀺ããŸãã å¶åŸ¡ã³ã³ããã®æ£ããå転ã«ãããèŠæ±ãããã¯ã©ã¹ãæã£ãŠããäŸåé¢ä¿ãèªåçã«è§£æ±ºããæ°ããäœæãããã¯ã©ã¹ã«åã蟌ãããšãã§ããŸãã èšãæããã°ãç§ãéåžžæåã§è¡ãããšãèªåçã«è¡ããŸãã
æ§æã®è©³çŽ°ã¯ããããžã§ã¯ãã§äœ¿çšããã³ã³ãããŒã«ã³ã³ãããŒã®å転ã«äŸåããŸãã ããšãã°ã
StructureMapã䜿çšããŸãã 圌ã¯æªããªã ãã¹ãŠã®æå¹ãªäŸåé¢ä¿ãå®çŸ©ãããŠããã³ãŒãå
ã®1ã€ã®å Žæã§æ§æãããŸããããã¯ãããŸããŸãªå®è£
ã«ã€ããŠç¥ã£ãŠããã³ãŒãå
ã®å¯äžã®å Žæã§ãã å€ãã®ã³ã³ããã¯XMLã䜿çšããèšå®ããµããŒãããŠããŸãããã¿ã€ãã»ãŒãã®åªå€±ãšãªãã¡ã¯ã¿ãªã³ã°ã®ãµããŒãã«ã€ãªãããããç§ã¯ã³ã³ããã®äœ¿çšã«å察ããŠããŸãã
ãã¹ãé§åéçº/ TDDããã³ããã€ãã¢é§åéçº/ BDDãŸãã¯ãã¹ãé§åèšèšã¯ãé©åãªèšèšãèšèšããããšã匷å¶ããææ³ã§ãã ã³ãŒããæžãåã«ãã¹ããæžãããšã¯ãèšèšã«ãã£ãšæ³šæãæããå®è£
ããããšããŠããããšã«éäžããã®ã«åœ¹ç«ã¡ãŸãããã®çµæããã¹ãã®éçºã§ã倱ããããæéã¯ãçµæãšããŠåŸãããæé«ã®èšèšã«èŠäºã«å ±ããŸãã ãã¹ãæžã¿ã®ã³ãŒãã¯ãå°æ¥å€æŽããã®ãç°¡åã«ãªããŸãã ã³ãŒãããã¹ãããªãçç±ã¯ãããŸããã ãã¹ãã¯å€ãã®åéã§äœ¿çšãããŠããŸãããããã°ã©ã ãéçºãããšãã«ãã¹ãã䜿çšããŠã¿ãŸãããïŒ
ç¹°ãè¿ããŠã¯ãããŸããã åè¿°ããããã«ãã³ãŒãå
ã§åæ§ã®æ©èœãæ°åç¹°ãè¿ããŠããå Žåãå€æŽãããšãã«äœããå€æŽããã®ãå¿ããå±éºããããŸãã ãããŠãããã¯ã·ã¹ãã ã³ãŒãã®è€è£œã ãã§ãªãããã¹ãã«ãåœãŠã¯ãŸããŸãã è€è£œã¯ã³ãŒããè匱ã«ããŸãã ç¹°ãè¿ããªãã§ãã ããïŒ ããŠãåã³ãç§ã¯ããããã£ã...
å¿
èŠãããŸãã å¿
èŠæ¡ä»¶ããæ瀺ãããå Žåã«ã®ã¿ãåçãè¿œå ããŸãããªãã¯ãããå¿
èŠãšããŸããïŒããªãã¯ãããå¿
èŠãšããŸããïŒã ããã¯éåžžã«é »ç¹ã«èµ·ãããŸãã ããªãã¯ã·ã¹ãã ã®ããéšåã«åãçµã¿ããããïŒ ç¢ºãã«éå®ãããã®ãæãã€ããŸããã ä»æ¥è¿œå ããã®ãæãç°¡åãªæ¹æ³ã ããã§ããããã¯ãŸãã«ç§ãçŸåšåãçµãã§ããã·ã¹ãã ã®äžéšã ããã§ããã åœç¶ããã®ãŸãã«å¿
èŠãªç¬éã«è¿ã¥ããšãæ¬åœã«å¿
èŠãªãã®ãããããç解ã§ããããã«ãªããŸãã ãããŠãã¡ãããããã¯ä»¥åã«æžãããã®ãšã¯ã»ã©é ãããšãç解ããã§ãããã ãããã£ãŠãæéãç¯çŽãã代ããã«ãäœæ¥ã®ããçŽãã«äœåãªæéãè²»ããããšã«ãªããŸãã å°æ¥ã®ããã«æžãããã³ãŒãã«ãæ¬ é¥ãå«ãŸããŠããå¯èœæ§ãããããšãå¿ããªãã§ãã ãããããã¯ä»éããå¿
èŠããããŸãã é©åã«èšèšãããã·ã¹ãã ã«æ©èœãè¿œå ããã®ã¯ç°¡åãªã®ã§ãå€æŽãæåŸ
ããŠãã ããïŒ
å¿
æ»ã®ããã¢ã䌎ãç·ã®ããã«ãåžžã«ã³ãŒããæžãèªåã«æ£çŽã«ãªã£ãŠãããã«é«å質ã®ã³ãŒããæžãå§ããŠãã ããã
ã¢ã¬ã¯ã»ã€ã»ã¹ãã«ããã¯ã 21csmã®ã»ã«ã²ã€ã»ã¹ã¬ããã§ã³ã³ãšãèšäºã®äžæ£ç¢ºãã®ç¿»èš³ãšä¿®æ£ãæ¯æŽ/æ¯æŽããŠããããã¹ãŠã®äººã«æè¬ããŸãã