èŠããã«ãç§ãã¡ã¯æ¬¡ã®äººãæ¢ããŠããŸãïŒ
- ã¬ããªã±ãŒãããããã¬ãŒã ã¯ãŒã¯ãäœæããã®ã奜ãïŒãŸãã¯æããæºåãã§ããŠããïŒ
- æ°çŸäžäººã䜿çšãã補åãäœããã
æ¢ããŠããéçºè ãšãã®æ¹æ³ããã詳现ã«ç€ºãããã«ãåœç€Ÿã®æ¡çšãããŒãžã£ãŒãšã®çãã€ã³ã¿ãã¥ãŒãè¡ããŸããã ã€ã³ã¿ãã¥ãŒäžã«è³ªåããããŸããïŒ
- ã©ã®ãããªéçºè ãå¿ èŠã§ããïŒ
- é¢æ¥ã¯äœããé¡ãããŸããïŒ
- é¢æ¥ã§ã¯ãçè«çãŸãã¯å®çšçãªè³ªåã¯ã©ãã§ããïŒ
- ããã°ã©ãã¯ãã¹ããæžãã¹ãã§ããïŒ
- å°éçãªæŽ»åç¯å²ããã§ã¯ãªã質åãããŸããïŒ
- ããã°ã©ãã³ã°ã«çŽæ¥é¢ä¿ããªãè«ççãªã¿ã¹ã¯ããã°ããèããŠèšå®ããŸããïŒ è»å ã®ããªãŠã ãå«ãããŒã«ã«é¢ããã¿ã¹ã¯ã®ã¿ã€ãïŒ
ããã°ã©ããŒã¯ãã©ã®åéã§ãã©ãããã©ãŒã éçºã«åãçµãããšãã§ããŸããïŒ ããŠãäŸãã°ïŒ
- ããžãã¹ã¢ããªã±ãŒã·ã§ã³ãéçºããããã®IDE
- çµã¿èŸŒã¿èšèªã³ã³ãã€ã©
- Webãã¬ãŒã ã¯ãŒã¯
- ããŒããã©ã³ãµãŒ
- ãã®ä»ïŒ
ã€ã³ã¿ãŒãããéçºã°ã«ãŒã
ãã®ã°ã«ãŒãã¯ããããã1C補åã®æ°çŸäžäººã®ãšã³ããŠãŒã¶ãŒã䜿çšãããªã³ã©ã€ã³ãµãŒãã¹ãäœæããŠããŸãã ããšãã°ããµãŒãã¹ã䜿çšãããšãTINã«ãã£ãŠçžææ¹ã«é¢ããæ å ±ãååŸããããçžææ¹ã®ä¿¡é Œæ§ã確èªãããã§ããŸãã 掻ååéã¯éåžžã«è²¬ä»»ãããããµãŒãã¹ã¯é«è² è·ã®äžã§æ©èœãããµãŒãã¹ã®ããŠã³ã¿ã€ã ã¯éåžžã«æãŸãããªããããæãä¿¡é Œæ§ã®é«ã補åãäœæããããåªããŠããŸãã Interaction SystemãšåŒã°ãã補åãäœæããŠããŸãã ããã¯ãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ãš1Cã®éã§æ å ±ã転éããã¡ã«ããºã ã§ãããšã³ã¿ãŒãã©ã€ãºãµãŒããŒã ç¹ã«ããã®å©ãã«ãããã¢ããªã±ãŒã·ã§ã³1Cã«çµã¿èŸŒãŸããã¡ãã»ã³ãžã£ãŒãå®è£ ãããŸãã
éçºè ãããç§ã¯åœŒã«è£œåå šäœãéçºããŠã»ãã-ãŠãŒã¶ãŒã®ããŒãºãåæããã¢ãŒããã¯ãã£ãèããã³ãŒããæžãã 人ã ã¯ãã°ãã°ã€ã³ã¿ãã¥ãŒã«æ¥ãŠãç§ã察象åéãåæããããšã¯é¢çœããªããšèšãã®ã§ãç§ã¯ã¢ããªã¹ãã«ç§ã«TORãæžãããŠãããã«å¿ããŠæ©èœãããã°ã©ã ããŸãã ã€ãŸãã人ã¯ããã°ã©ãã³ã°ã®æè¡çãªåŽé¢ã«ã®ã¿èå³ããããŸãã ãã®ãããªäººã ãéããªãããã«ããŸã ç§ãã¡ã«ã¯å°ããªããŒã ããããå€æ°ã®é¢é£åéã«å¯ŸåŠããå¿ èŠããããŸãã ãããã£ãŠãããã®ã¹ãã«ã«é¢ä¿ããªãäž»ãªèŠä»¶ã¯ã補åèŠä»¶ãçŸããæ£ç¢ºã«çå®ããå®è£ ãèãã補åãéçºããæçµçµæã«è²¬ä»»ãæã€èœåã§ãã 人ãæçµè£œåã®å質ã«å人çã«èå³ãæã¡ãèªãã«æã補åãäœãããšãéèŠã§ãã
Eric Evans ã®èæžãSubject-Oriented Designãã§ã¯ ãäž»ãªã¢ã€ãã¢ã®1ã€ã¯ãéçºè ãã¢ããªã¹ãã§ãããèªååãããµããžã§ã¯ãé åãååã«ç解ããããžãã¹ã«ãšã£ãŠæçãªãã®ãç解ãããããç解ããŠããªãå ŽåããŠãŒã¶ãŒã®ãã¹ãŠã®èŠä»¶ãæºããåªããã·ã¹ãã ãéçºã§ããŸãã éçºè ããµããžã§ã¯ãé åããæœè±¡åããå Žåã補åã®ã¢ãŒããã¯ãã£ã«é¢ããéèŠãªæ±ºå®ã¯è¡ããŸãããããããã®æ±ºå®ãå®è£ ããå¿ èŠããããŸãããã®å Žåãå®è£ ã®è³ªãäœäžãããªã¹ã¯ããããŸãã åãEvansã¯ããã¡ã€ã³é åã§2ã€ã®éšåãåºå¥ããããšãæšå¥šããŠããŸã-ããžãã¹ã«ãšã£ãŠåºæ¬çã«éèŠãªéšåãå®éã«è£œåãããªãã®è£œåã«ããéšåãããã³ããã»ã©éèŠã§ã¯ãªããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã³ãã«ãæ åœããéšåã ãããŠãæé«ã®éçºè ã«ã¯ãæåã®éèŠãªéšåã®å®è£ ãäžããããã¹ãã§ãã
ã€ã³ã¿ãã¥ãŒã¯ã©ãã§ããïŒ å¿åè ã«å°ãã10ã®è³ªåã«ã€ããŠã®ã¢ã³ã±ãŒãããããŸãã ã¢ã³ã±ãŒãã®è³ªåã¯çè«çã§ã¯ãããŸããããå®çšçã§ããããšãã°ããã®ãããªã¹ã¿ãã¯ãã¬ãŒã¹ã§ã³ãŒããäŸå€ãã¹ããŒããäœããããã説æããŸãã ãŸãã¯-å®è¡ãé ãããŒã¿ããŒã¹ãžã®ã¯ãšãªãããïŒã¯ãšãªããã¹ããæäŸãããŸãïŒãã¯ãšãªãã©ã³ããããè©äŸ¡ããŸã-ã¯ãšãªãã©ã³ãæªãããšãã¯ãšãªãé«éåããæ¹æ³ã説æããå¿ èŠããããŸãã JOINã®çš®é¡ã人ã«å°ããã®ã¯ç¡æå³ã§ãããã¡ãããã€ã³ã¿ãã¥ãŒã«å°ãã§ãæºåãã§ããŠããã°ã圌ã¯ãããã®çš®é¡ãç¥ã£ãŠããŸãã ãããã®JOINã䜿çšããå®éã®çµéšã¯èå³æ·±ããã®ã§ãã 人ãã¯ãšãªãã©ã³ã®åæã®çµéšãããå Žåãåé¡ã解決ããæ¹æ³ã«ã€ããŠè©±ãããšã¯é£ãããããŸããããã®ãããªçµéšããªããã°ããã®æ¬ã¯ããã§ã¯åœ¹ã«ç«ã¡ãŸããã ããã¯ãæ©èœã«ã€ããŠèªãã ã°ããã®éçºè ãšãå®éã«ãã®æ©èœãå®éã«äœ¿çšããéçºè ãåºå¥ããè¡ãéãå Žæã§ãã ç§ãã¡ã¯ã2çªç®ã®ã¿ã€ãã®éçºè ãæ±ãããšã«ãã£ãšèå³ãããããã®äººãããã«ãã²ãŒã ã«åå ãããããšãæãã§ããŸãã
ã¢ã³ã±ãŒãã®è³ªåã®äžéšã¯ãã§ã«æ©èœããªããªã£ãŠããããããã®è³ªåãæ°ãããã®ã«çœ®ãæããŸããã ããšãã°ããã°ããåã«ãã€ã³ã¿ãã¥ãŒäžã«åœŒãã¯ãã°ãã°ã·ã³ã°ã«ãã³ãã¿ãŒã³ãå®è£ ããããã«é Œã¿ãŸããããåè£è ããããå®è¡ãããšãã圌ãã¯ä»ãããæ ãè ã«ããŸããã ãã以éãHabréã«ããã€ãã®èšäºãç»å Žãããã®ãããªãã®ã®æžãæ¹ã詳现ã«èª¬æããŸããã人ã ã¯ãã®ã¿ã¹ã¯ãæèšããã°ããã§ãå°éçãªé©åæ§ã®ãã¹ãã§ã¯ãªããªããŸããã
ãŸããéçºè ã«æèœãªãã¹ããäœæããŠãããããã§ãã ããšãã°ãã·ã¹ãã ãæºããå¿ èŠã®ããå¥çŽçœ²åããã¹ã眲åã«èšè¿°ãããŠããå Žåã ããã¯ãããšãã°ãJavaã§Roy Osherãæšå¥šããã¹ã¿ã€ã«ã§è¡ãããšãã§ããŸãããã®å Žåãã³ã³ãã©ã¯ãã¡ãœããã®ååã¯ããäžãããããããæåŸ ãããã®ãããçµæãšã¯ãã®3ã€ã®éšåã«åãããŸãã ãããŠã Groovy㧠Spockã䜿çšããŠãããè¡ãããšãã§ããŸãã åè£è ãæ£ç¢ºã«ãã¹ãããå¿ èŠããããã®ãç解ããŠãããã©ãããå¢çå€ããã¹ãããå¿ èŠããããã©ããããã¹ããã©ãããã«ã€ããŠç¥ã£ãŠãããã©ãããªã©ãéèŠã§ãã
ãŸããç¹ã«ç§ãã¡ã«é¢é£ããæè¡ã䜿çšããŠããå Žåã¯ããã®äººãé¢äžãããããžã§ã¯ãã«ã€ããŠå°ããŸãã ããšãã°ãç§ãã¡ã¯Hazelcastã䜿çšããŠããŸããããããŸã§ã«ïŒæè¿ã®å€§èŠæš¡ãªå®è£ -Yandex.Money㧠ïŒæ¬çªç°å¢ã§äœ¿çšãã人ã¯ã»ãšãã©ããŸãããHazelcastã®äœ¿çšçµéšããã人ã«éåžžã«èå³ããããŸãã ããã«ãåè£è ã¯ãç§ãã¡ããŸã ç¥ããªãæ°æè¡ã®äºæããªãæçšãªåŽé¢ãç§ãã¡ã«æããã«ããããšãã§ããŸãã
ç§ãã¡ã«ãšã£ãŠéèŠãªãããã¯ã¯ããã«ãã¹ã¬ããç°å¢ã§åäœããã³ãŒããèšè¿°ããæ¹æ³ã§ãã ããšãã°ãè² è·ã®é«ãç°å¢ã«ã¯ããã€ãã®ã¢ããªã±ãŒã·ã§ã³ããŒãããããã·ã¹ãã ãæå°éã«æããªãããã·ã¹ãã ãåäœå¯èœãã€ä¿¡é Œæ§ã®é«ããã®ã«ããæ¹æ³ãåè£è ã«å°ããŸãã
ããã°ã©ãã¯ãã¹ããæžãã¹ãã§ããïŒ å¿ é ã§ããããã¹ãŠã§ã¯ãããŸããã ããã°ã©ããŒã¯ç¡æ¡ä»¶ã§åäœãã¹ããäœæããå¿ èŠããããŸãã ãšããã§ãããŒã å ã®ç§ãã¡ã¯ã TDDãªã©ã®ã¡ãœããã®å¿ é 䜿çšã䞻匵ããŠããŸããã äžéšã®éçºè ã¯ç¬èªã®ã€ãã·ã¢ããã§TDDã䜿çšããŠããŸãããTDDã¯éåžžã«æ°ã«å ¥ã£ãŠããŸãã çµ±åãã¹ããäœæããŸãã éçºè ã¯è² è·ãã¹ããè¡ããJMeterã®ãã¹ãèšç»ãäœæããŸãã
Webã¯ã©ã€ã¢ã³ãéçºããŒã
JavaScriptã§Webã¯ã©ã€ã¢ã³ããéçºããŠããŸãããåè£è ã¯ãJavaScriptã§ã®Webéçºã®çµéšã«å ããŠããå€å žçãªãOOPèšèªïŒC ++ãŸãã¯JavaãŸãã¯CïŒïŒã®éçºçµéšãããããšãæãŸããã§ãã ããã¯ããããžã§ã¯ãã®ä»æ§ã«ãããã®ã§ãã JavaScriptã§èšè¿°ããã1C Webã¯ã©ã€ã¢ã³ãã§ãããã€ããªãã®ãŒçã«ã¯OOPèšèªã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã«äŒŒãŠããŸãã JavaScriptã³ãŒããJSDocã¢ãããŒã·ã§ã³ã§ã«ããŒãããããã¢ã»ã³ããªäžã«éçãªåãã§ãã¯ãè¡ãããŸãã ãã®ã¢ãããŒããéžæãããã®ã¯ã Google Closure Compilerã䜿çšããŠããããã§ããããã«ãããç¹ã«ã³ãŒãã®é床ãåäžããã³ãŒãã«ãã£ãŠæ¶è²»ãããã¡ã¢ãªéãåæžãããŸãã ãããã£ãŠãOOPã®çµéšã¯åè£è ã«ãšã£ãŠéåžžã«åœ¹ç«ã¡ãŸãã
ã€ã³ã¿ãã¥ãŒã§ã¯ãåè£è ãšåœŒã®ããŒã ã以åã®ä»äºã§ã©ã®ãããªã¿ã¹ã¯ã解決ããªããã°ãªããªãã£ãããå°ãã圌ãå®è£ ãããœãªã¥ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã«ã€ããŠèª¬æããŸãã åè£è ã®ã¿ã¹ã¯ããããã®ããã€ã-çŽ æ©ãæ©ç¥ãšã¢ã«ãŽãªãºã çæèã«ã€ããŠå°ããŸãã ããšãã°ãããªã倧éã®ã³ãŒãã«ãã£ãŠæ£é¢ãã解決ã§ããã¿ã¹ã¯ããããèããŠã¿ããš1è¡ã§è§£æ±ºã§ããŸãã
JavaScriptã®ã¬ã€ã¢ãŠãã®ç¹å®ã®ç¥èã®ããã®ã¿ã¹ã¯ã®ããŒã«ããããŸãã ããšãã°ãçŽã«HTMLããŒãžæ§é ãæç»ãïŒæ§é ã¯åçã§ããå Žåããããç¹å®ã®ã¢ã«ãŽãªãºã ã«å¿ããŠæéçã«å€åããå ŽåããããŸãïŒããã®ãããªæ§é ãäœæããŠãã€ããã¯ã¹ã«å®è£ ããã³ãŒããäœæããããã«äŸé ŒããŸãã
ãŸããåæ掻åã«å¯Ÿããåè£è ã®çŽ å ãè©äŸ¡ããããšããŸãã é«å質ã®ã³ãŒããèšè¿°ããŠããããŒã å ã«ãã¯ãªãŒã³ãªããšã³ã³ãŒããŒãæã¡ããã¯ãããŸããããåºå®ãããæè¡ä»æ§ã«åŸã£ãŠå³å¯ã«æ©èœããŸãã éçºè ã«ã¿ã¹ã¯ã«åå ããŠãããã補åã§äœãè¡ãããŠããã®ãããããŠè£œåå ã§ãªãçæ³çã«ã¯æ°ããæ©èœã®ãã©ã€ããŒã§ãããã®ããæ·±ãç解ããŠãããããã
åè£è ãåŠçãŸãã¯æšæ¥ã®åŠçã§ããå ŽåãçŽç²ã«çè«çãªè³ªåãããããšãã§ããŸããããšãã°ãOOPã®åºæ¬ååãªã©ãå°ããããšãã§ããŸãã çµéšã®ãã人ããã®ãããªè³ªåãããŠãæå³ããªãå Žåãåè£è ã¯ãããã®ååãç¥ã£ãŠãããèªåã®ä»äºã§ãããã䜿çšããŠããå¯èœæ§ãé«ãã§ããããããå®åŒåããèŠæ±ã¯ãæç§æžããèšèé£ããå¿ããŠããŸã£ãããã圌ãè¡ãæ¢ãŸãã«å°ãå¯èœæ§ããããŸãã
åã€ã³ã¿ãã¥ãŒã¯ãŠããŒã¯ã§ãã ãããããã¯ã«ã€ããŠã¯ãã人ãšè©±ããå¥ã®ãããã¯ã«ã€ããŠã¯å¥ã®äººãšè©±ãã®ã¯èå³æ·±ãããšã§ãã ã€ã³ã¿ãã¥ãŒã®æåŸã«ã補åããã®äœ¿çšç¯å²ïŒãããŠå°è±¡çã§ã-ã·ã¹ãã ã«ã¯æ°çŸäžäººã®ãšã³ããŠãŒã¶ãŒãããŸãïŒã«ã€ããŠè©±ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã±ãŒã©ããªãã£ããŒã
ç§ãã¡ã¯èª°ã§ãã
ç§ãã¡ã®ããŒã ã¯ã1CïŒEnterpriseãã©ãããã©ãŒã ã§é«è² è·ã®ã·ã¹ãã ãæ§ç¯ããåéã®ãšãã¹ããŒãã§ãã ãããã®ãšã³ãžãã¢ã¯ãä¿¡é Œæ§ãšã¹ã±ãŒã©ããªãã£ã®èª²é¡ã«å¯ŸåŠããŸãã ãã®ãããªã¿ã¹ã¯ã¯ãå€ãã®å Žåã管çãšéçºã®å²è·¯ã«ãããŸãã ãã®ãããªåé¡ã解決ããçµæã¯ãæ¬åœã«ã¯ãŒã«ãªã·ã¹ãã ã§ãã ãã®ãããªã¿ã¹ã¯ã®äŸïŒ
- 2ã€ã®ããŒã¿ã»ã³ã¿ãŒã«ãã©ãŒã«ããã¬ã©ã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ãå±éããé害ã·ãã¥ã¬ãŒã·ã§ã³ãå®æœããŸãã
- ãŠãŒã¶ãŒæ°ã10åã«å¢ãããŠã·ã¹ãã ã®ããã©ãŒãã³ã¹ãäœäžããããããé·æéã®ã³ã¹ãèšç®ã3åã«å éããŸãã
- çºçãããããããã¯ã調æ»ããŠæé€ãããã
- ãããã®ããŒã¿ããŒã¹éã®äº€æãèæ ®ããŠãããæç¹ã§12ãè¶ ããåæ£æ å ±ããŒã¿ããŒã¹ã®èª¿æŽãããå埩ãä¿èšŒããŸãã
ãããŠãããã¯ã¿ã¹ã¯ã®å®å šãªãªã¹ãã§ã¯ãããŸããã ã¿ã¹ã¯ã®å€ããããããå®è¡ããããšããå¯èœã§ããïŒããšããèšèã§ç§ãã¡ã®ãšããã«æ¥ãã®ã¯ç¹ã«æ¥œããããšã§ãã 人ã ã¯æåã¯ä¿¡ããŸããã ç§ãã¡ã¯è°è«ããããšã¯ãããåžžã«å®è·µã§ç¢ºèªããããšãããã説åŸããããšããŸãã ããã«ãå€äžã«å€§èŠæš¡ãªã¯ã©ã€ã¢ã³ãã®ã·ã¹ãã ã«æ¥ç¶ããæ欲ãè¿œå ããå¿ èŠããããŸããããã¯ãå°å ã®ãšã³ãžãã¢ãäœããå£ãã誰ãäœããã¹ãããç¥ããªãããã§ãã ããã¯ã¢ãããååšããªãå Žåãç Žå£ãããããŒã¹ã埩å ããããã·ã¹ãã ã®è² è·ã5ïŒ å¢å ããçç±ãèŠã€ããå¿ èŠããããŸããã ãåžæã®å Žåã¯ãç§ãã¡ã®ä»äºã«é¢ããã¬ãã¥ãŒãèªãããšãã§ããŸã ã
ç§ãã¡ã¯èª°ãæ¢ããŠããŸã
ç§ãã¡ã¯ãäžå¯èœãªããšãæ ç±çã«ããããšã³ãžãã¢ãæ¢ããŠããŸãã åè£è ã«ãšã£ãŠæãéèŠãªèŠä»¶ã®1ã€ã¯ãç®ãçããããšã欲æãããã³æ¢åã®ç¥èã䜿çšããŠããããŸã§åºäŒã£ãããšã®ãªããã®ããã°ããç解ããèœåã§ãã ãããã¯ãä¿¡é Œæ§ãšã³ãžãã¢ãšéçºè å šå¡ã1ã€ã«çµ±åãããŠããŸãã ã¯ã©ã€ã¢ã³ããæ°å人ã®ãŠãŒã¶ãŒãšããªãã«é£çµ¡ãã圌ã®ãšã³ãžãã¢ã1幎ã®éã«éçºããè€éãªã¡ã«ããºã ãéçšããããšããŠãããšããªããèšããšæ³åããŠãã ããã ãšããã§ïŒ
- ã¯ã©ã€ã¢ã³ãã®ããžãã¹ãã絶ããå€åããèŠä»¶ã®æ¡ä»¶ã§éçºãå®äºã§ããŠããªãã
- å®è£ ã®ããã®äž»èŠãªã¡ã«ããºã ã®éçºãæ¬æ ŒåããŠããŸããããšã³ãžãã¢ã¯ãŸã äœå人ãã®ãŠãŒã¶ãŒã§ãã¹ãã¡ã«ããºã ã«å°éããŠããŸããã
- çŸåšã§ãããã®å®è£ ã®ãŠãŒã¶ãŒæ°ãå¢ããæ£ââ確ã«ãã®ã¡ã«ããºã ã§çç£æ§ãæ¥æ¿ã«äœäžããçç±ã¯èª°ã«ãããããŸããã
- éçºã¯Windowsäžã§MS SQL Server DBMSã䜿çšããŠè¡ãããæçµæ®µéã§ãCentOSãšDBMSã§PostgreSQLãã€ã³ããŒã代æ¿ã®äžå¿ã«çœ®ãããã«æ¿æ²»ç決å®ãäžãããŸããã
- ãããŠã10人ã®ãŠãŒã¶ãŒã§ããäœæ¥ãããšã¿ã€ã ã¢ãŠããçºçããããšã誀ã£ãŠããããŸãã
- ã¯ã©ã€ã¢ã³ãã¯å æè³Œå ¥ããå¿ èŠãããããããã®ã¡ã«ããºã ã®æ©åšãèšç®ããå¿ èŠããããŸãã
- ãã®ã¡ã«ããºã ã§ã¢ã«ãŽãªãºã ã®äžŠåå®è£ ãå®è¡ããååãšèª¿æŽããæ°ãããšã©ãŒãçºçãããã«æééãã«é²ãæ¹æ³ãäžç·ã«æ±ºå®ããå¿ èŠãããããšãç解ããŠããŸãã
ã¯ããç¹°ãè¿ããŸããããã¹ãŠã®äººãææ決å®ã®èª€ããã¢ã³ããã¿ãŒã³ãç¹å®ã§ããããã§ã¯ãªããããããæ°ãæãç¶ç¶çã«ã¹ãã¬ã¹ãæ±ããŠãããšã³ãžãã¢ãšéåžžã«å€äº€çã«ã³ãã¥ãã±ãŒã·ã§ã³ããšãããšãã§ããå¿ èŠããããŸãã
調åã¯ã©ãïŒ
é¢æ¥ã¯åè£è ã«ãšã£ãŠã¹ãã¬ã¹ã«ãªãå¯èœæ§ããããŸãã ãããããã®ã¹ãã¬ã¹ã¯ãæ¢åã®çµéšããã¹ãŠèããŠäœ¿çšããªããã°ãå®éã®ç¶æ³ã§åŸãããã¹ãã¬ã¹ãšæ¯èŒããããšããã§ããŸããã
å€ãã®åè£è ã®åé¡ã¯ã圌ãã®ç¥èãã©ã®ããã«å¿çšããããç¥ããã6æ³ã®åäŸã説æã§ããªãããšã§ãã ãã®ãããé¢æ¥äžã«å®æçã«åè£è ã«ç²ŸéããŠããããšãæããŠãã ãããšãé¡ãããŠããŸãã åœç¶ãç§ã¯æ¬åœã«å€ãã®ããšãåŠã¶ããšãã§ãã人ãåéãããã§ãã ãã®ãããªè°è«ã§ã¯ãç¥èã®æ·±ããšéåžžã«è¯ãç解ãéåžžã«éèŠã§ãã æã®7æã«åè£è ã«ã€ã³ã¿ãã¥ãŒããMS SQL Serverã®ã¡ã¢ãªç®¡çã³ã³ããŒãã³ãã«ã€ããŠè°è«ããæçµçã«ããŒãžãšãšã¯ã¹ãã³ãã®ç解ã«èœã¡çãããšãã«çµéšããããŸããã ãããã人äºéšãä»å ¥ãã次ã®ããã«èšã£ãã 誰ããããç¥ã£ãŠããã®ãïŒïŒãããããŠç§ãã¡ã¯è©±ãããããã«éšå±ãåºãŸããã ç ããŠããã³ãããŠããååãå¶ç¶ã«ã³ãŒããŒã®æ¹åã«å»äžãéãéããŸããã ååã¯åã質åããããŸããã圌ã¯ã¯ã£ãããšãæ£ç¢ºã«ãæ¬è³ªçã«ãçç®ãéããŠããã³ãããããšãªãçããŸããã
åœç¶ãæ°åŠãšã¢ã«ãŽãªãºã ã®ç¥èããã¹ãããããšããŸãã ãããããããã¯åºæ¬çãªç¥èã«é¢é£ããŠããŸãã ããããåæ£ã¢ã«ãŽãªãºã ã®ç¥èãšããã®ãããªã¢ã«ãŽãªãºã ãã¿ã¹ã¯ã«é©çšããèœåã¯ãåè£è ã«ãšã£ãŠç¢ºå®ãªãã©ã¹ã«ãªããŸãã
å¥ã®æ¹æ³ã¯ãåè£è ã«1Céçºè ã®ä»£ããã«èªå·±çŽ¹ä»ãäŸé Œããäœããã®çš®é¡ã®é©çšã¿ã¹ã¯ãå®è£ ããããã«äŸé Œããããšã§ãã åè£è ã®ã€ã³ã¿ãã¥ãŒãšã¹ãã¬ã¹ã§ããã®ãããªã¿ã¹ã¯ã«ãããåè£è ãã©ã®ããã«èããŠãããã確èªã§ããŸãã åè£è ã®è§£æ±ºçãæ€èšããåè£è ãèªåã®è§£æ±ºçã«é倧ãªæè¡çåé¡ãçºèŠã§ããããã«æ¯æŽããŸãã次ã«ãåè£è ã解決çãå€æŽããæ¹æ³ãæ€èšããŸãã æã ã6ã7åã®å埩ãè¡ãããœãªã¥ãŒã·ã§ã³ã®åŒ±ç¹ãæ¢ããŠè©äŸ¡ããŸãã åæã«ãããšãã°ãããããã¯ãªã©ã人ãç¥ã£ãŠããããšãè°è«ããŠç解ããã ãã§ãªããã³ãŒãå ã§ãããã®çºç確çããŒãã«æžããæ¹æ³ãç解ããŠãããã©ãããããã«å¯èœã«ãªããŸãã
ç¹å®ã®ããã°ã©ãã³ã°èšèªã®ç¥èã¯ãéåžžã«éèŠãªèŠçŽ ã§ã¯ãããŸããã 人ãèšèªã䜿çšããããã°ã©ãã³ã°ã®èŠ³ç¹ããèãããšããããã¯ããéèŠã§ãããèšèªæ§æã«éå®ãããŸããã
ä»äºã§äœ¿çšããããã®
æãé »ç¹ã«äœ¿çšãããæåã®ããŒã«ã¯ã1CïŒãšã³ã¿ãŒãã©ã€ãºãã¯ãããžãŒãã©ãããã©ãŒã ã§ãã ãã©ãããã©ãŒã ã®ç¥èã¯ã管çè ããã³éçºè ã¬ãã«ã§å¿ èŠã§ãã ã€ãŸã ç¹å®ã®ãœãªã¥ãŒã·ã§ã³ãå®è£ ãããããã·ã¹ãã ã§æ°å人ã®ãŠãŒã¶ãŒã«å¯ŸããŠå®è¡ããæ¹æ³ãç解ããå¿ èŠããããŸãã
MS SQL ServerãšPostgreSQL DBMSã®åäœãåæããå¿ èŠãããããšãéåžžã«å€ãããããããã¡ã€ãªã³ã°ããŒã«ãåçãã¥ãŒãããã³éèªã®äœ¿çšã¯ã¢ã¯ãã£ãã¹ãã«ã®æè·ç©ã«å«ãŸããŸãã ãããŠãããã§ã¯å€§å®¹éã§äœæ¥ããèœåãéèŠã§ãã æšæºã®Windowsã®ã¡ã¢åž³ã¯ããã·ã³ã§çæãããã¯ãšãªãšãã®èšç»ã§1 TBã®ããã¹ããã°ãæäœããå ŽåãããŸã䟿å©ã§ã¯ãããŸããã ããã«æ£èŠè¡šçŸã®ç¥èã ãã§ãªãããããããµããŒãããããŒã«ãšèšèªã®ã»ããå šäœãå¿ èŠã«ãªããŸãã ã¯ãšãªãã©ã³ãåæããã«ã¯ãã€ã³ããã¯ã¹ãšã¯äœããããŒãžçµåãšããã·ã¥çµåã®éããç解ããå¿ èŠããããŸãã
ãšã³ã¿ãŒãã©ã€ãºåžå Žã®ã·ã¹ãã ã¯ãå€ãã®å ŽåLinuxäžã§å®è¡ãããŸãã ãµãŒããŒã«ã°ã©ãã£ã«ã«ç°å¢ã¯ãããŸããã ã³ã³ãœãŒã«ã®ã¹ãã«ã¯éåžžã«éèŠã§ãã
Postgreããã»ã¹ã«ããCentOSã®PostgreSQLãµãŒããŒã®CPUè² è·ã5ïŒ å¢å ããçç±ãèŠã€ããããã«å¿ èŠãªãã®ãæ³åããŠãã ããã 調æ»ã®ã¢ã«ãŽãªãºã ãçŽã«æžããŠã¿ãŠãã ããã ãããŠãããã«å¿ èŠãªãã®ãç解ãããŸã
- uptime ã vmstat ã sar ã atop ã perfã ãã§ãªãã
- pgbadger ã psqlã䜿çšããpostgresql.confã§ãã®ã³ã°ãèšå®ããæ¹æ³ãç¥ã£ãŠããã
- åžæããã¯ãšãªã1ã€èŠã€ããããšãã§ããŸãã
- åæã䜿çšãã圌ã®èšç»ãåæãã
- èŠæ±ãæžãçŽããè² è·ãèœã¡çããããšã確èªããŸãã
ç§ãã¡ã«ãšã£ãŠäœãéèŠã
人ã倧èŠæš¡ã«èããåžžã«å€§ããªçµµãèŠãããšããããšã¯éåžžã«éèŠã§ãã ããšãã°ãã»ãšãã©ã®åè£è ã¯ãããã¹ããã¡ã€ã«ã䞊ã¹æ¿ããã¿ã¹ã¯ã解決ãã10 MBã®ãã¡ã€ã«ã®äžŠã¹æ¿ãã«é©ããã¢ã«ãŽãªãºã ãæäŸããŸãã ããããã¡ã¢ãªãšãã£ã¹ã¯å®¹éãéãããŠããç¶æ³ã§10 TBã®ãã¡ã€ã«ããœãŒãããããšã«çŽé¢ãããšãã圌ãã®ç解ãšèŠç¹ã¯ã©ãã»ã©å€ãããŸãã ãŸãããã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã³ã¹ãã¯ãã¡ã¢ãªã«ã¢ã¯ã»ã¹ããã³ã¹ããããé«ãããšãèŠããŠããå¿ èŠããããŸãã åè£è ã«ããã¹ãŠã®ã¿ã¹ã¯ã§ã倧èŠæš¡ã«ãèããŠã»ããã
ãã©ãããã©ãŒã éçºã°ã«ãŒã1CïŒãšã³ã¿ãŒãã©ã€ãº
åè£è ããç§ãã¡ã®ããŒã ã«å¿ èŠãªäž»ãªããšã¯ãåæçã«èããåé¡ã培åºçã«åæãã解決çãæ€èšããèœåã§ãã 1CïŒãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ã¯éçºãµã€ã¯ã«ïŒæïŒãããªãé·ããããWebéçºã®å Žåã®ããã«ã段éçã«æ©èœãããŒãã«å®è£ ããããšã¯ã§ããŸããã ããã«ã¯ãå®è£ ã®è©³çŽ°ãæ€èšããéã«æ·±ãèããèœåãå¿ èŠã§ãããäžåºŠã«ããå®è¡ããå¿ èŠããããŸãã ã€ãŸã æšæ¥Habrã«ã€ããŠèªãã æåã®å©çšå¯èœãªæ¹æ³ã䜿çšããŠåé¡ã解決ããã®ã§ã¯ãªããããŸããŸãªãœãªã¥ãŒã·ã§ã³ã®ãã¹ãŠã®é·æãšçæãæ éã«æ€èšããŠãã ããã
é¢æ¥ã§åè£è ããã®ãããªè³è³ªãæã£ãŠãããã©ãããç解ããããšã¯ããã»ã©ç°¡åã§ã¯ãããŸããã æãé¢é£æ§ã®é«ãæ¹æ³ã¯ãåè£è ã®ä»¥åã®çµéšã«ã€ããŠè©±ãããšã§ãã 人ãã©ã®ã¯ãŒã«ãªè§£æ±ºçãæãã€ãããã話ããšããç§ãã¡ã¯å°ããŸã-ãããŠå®éãã©ã®åé¡ã解決ãããŸãããïŒ ãªããã®ç¹å®ã®ãœãªã¥ãŒã·ã§ã³ãéžæãããå¥ã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãªãã®ã§ããïŒ ãŸããåé¡ã®æ¡ä»¶ãå°ãå€ãã£ãå Žåããœãªã¥ãŒã·ã§ã³ã¯ã©ã®ããã«å€ãããŸããïŒ ããã€ãã®åæ§ã®è³ªåãããããšã§ããã®äººããããã¯ã«ã©ãã ãæ·±ã没é ããŠããããç解ã§ããŸãã
ãä»äºã®ä»æ¹ãç¥ã£ãŠãã人ãéããäœããã®çç±ã§ä»äºãããŠãããããããšãããã¬ãŒãºã«ã¯ãå¥ã®åŽé¢ããããŸãã ãããã£ãŠãã€ã³ã¿ãã¥ãŒã§ã¯ãç§ã¯ä»äºã人ã«ãšã£ãŠäœã§ããããç解ããããšæããŸãã 圌ã«ãšã£ãŠãããããªãããéã皌ãããšãå¯èœã«ãã楜ãã嚯楜ã§ãããªããé«ã確çã§åè£è ããè¯ããã®ã¯åºãŠããªãã§ãããã ã»ãšãã©ã®ããã®éçºè ã«ãšã£ãŠã圌ãã®ä»äºã¯ã圌ãããããªããã°ãªããªãã£ãæãèå³æ·±ããã®ã§ãããç 究ã欲æ±ããããŠæ°ããäœããåµé ããèœåã§ãã ç§ãã¡ã«æ¥ã人ã¯ãå匷ããå匷ããå匷ããæºåãã§ããŠããªããã°ãªããŸããã ããã©ãŒããŒã ãã§ãªããå匷ã«é£œããããšã®ãªã人ãå¿ èŠã§ããä»äºã§çµ¶ããå匷ããªããã°ãªããŸããã
åè£è ã«ä»ã«èŠããã®ã¯ããšã³ãžãã¢ãªã³ã°ã¹ãã«ã§ããã€ãŸããæ¯speakingçã«èšãã°ããã¥ââãŒããããšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ãçµã¿ç«ãŠãèœåã§ãã
ããã°ã©ãã³ã°èšèªã®å¿ èŠãªç¥èã¯ãåè£è ãæ±ããããŠãããã©ââãããã©ãŒã éçºåéã«äŸåããŸãã ãã©ãããã©ãŒã ã®äžæ žã¯C ++ãšJavaãWebã¯ã©ã€ã¢ã³ãã¯JavaScriptã§ããäžéšã®ãããžã§ã¯ãã§ã¯1Cã®ç¥èãå¿ èŠã§ãããä»ã®èšèªãšæè¡ã®ç¥èãéåžžã«æãŸãããããC ++ã®åºæ¬ãç¥ãããšãæãŸããã§ãã 1Cã®äžçã®ããã«å€ãã®æ°ãããã®ãäœæããå¿ èŠããããŸããéçºè ãä»ã®èšèªãæè¡ã§èæ¡ãããã¢ã€ãã¢ãæŠå¿µãæäœã§ããããã«ãã1Cãœãªã¥ãŒã·ã§ã³ãéçºããéã«é©åãªå Žæã§ããããé©åã«æ£ããé©çšããæ¹æ³ãç解ã§ããããã«ããå¿ èŠããããŸãã ããšãã°ã 1cFreshã¯ã©ãŠã補åãéçºããã«ã¯ãäž»ã«ç®¡ççšã®ããŸããŸãªããŒã«ã1Cã§äœæããŸãïŒåŸæ¥ã®èšèªããã1Cã§éçºããæ¹ãé«éã§ãïŒã éçºè ãã·ã¹ãã 管çè ïŒbashãPythonãPerlïŒã䜿çšãããã¯ãããžãŒãšèšèªã®ãã¿ãŒã³ãç解ããŠããå Žåãããã¯äœ¿ããããããŒã«ã®äœæã«åœ¹ç«ã¡ãŸãã
åŠçã«ã€ã³ã¿ãã¥ãŒããŠããå Žåã圌ã®ç©åãèšç®ããç©åãããèããããçç±ã説æããããã«åœŒã«äŸé Œããããšãã§ããŸãã å¹³åçãªå¹Žé·ã®çåŸã¯ç©åã®æå³ãããèŠããŠããããè¯å¿çã§ç±å¿ãªçåŸã¯ãã®æå³ãããèŠããŠãããããã説æã§ããŸãã
ã·ã¹ãã 管çè ãããå Žåã¯ãããšãã°ãLinuxã§RAMãæäœããç¹æ§ã«ã€ããŠè³ªåã§ããŸãã 人ãDBMSã䜿çšããŠããå Žåãããšãã°ãã©ã®ã¬ãã«ã®ãã©ã³ã¶ã¯ã·ã§ã³åé¢ãååšããããã©ã®åè£ãããã䜿çšããããšã奜ãããããã³ãã®çç±ãå°ããŸãã ããšãã°ããã人ãè€æ°ã®ããŒã¿ããŒã¹ã®åæã«åãçµãã å ŽåãåæãããããŒã¿ããŒã¹ã®1ã€ãããã¯ã¢ããããçªç¶åŸ©å ãããå Žåã®å¯ŸåŠæ¹æ³ã説æããŸãã ããŸããŸãªæ¹æ³ã§è§£æ±ºã§ããå žåçãªã¢ãŒããã¯ãã£äžã®åé¡ã
ãŸããåè£è ã«ã¯ãå®ç§äž»çŸ©ã®ããè¯ãããããŠå¥å šãªåæ ã®ããã«äžçãå€ããããšããé¡æãèŠããã§ãã åççãªéã®å®ç§äž»çŸ©ããªããã°ãéåžžã«ç°ãªãå®è£ ã§äœå¹Žãæ©èœããã³ãŒããæžãããšã¯å°é£ã§ãã
ããã°ã©ãã¯ãã¹ããæžãã¹ãã§ããïŒ ããã°ã©ãã¯ãæ©èœãã補åãçºè¡ããå¿ èŠããããŸãã 圌ãæ人ããã°ã©ããŒã§ããå Žåã誰ã圌ããããã©ã®ããã«è¡ããæ°ã«ããå¿ èŠã¯ãããŸããã ãããåå¿è ããã°ã©ããŒã®å Žå-ãã¹ããæžãããšããå§ãããŸãã çé¢ç®ãªéçºè ã¯ãæçµçã«ãèªåãäœæããã³ãŒãã«å¯ŸããŠã©ã®ãã¹ããèšè¿°ããå¿ èŠãããããç解ãå§ããŸãããã¹ãã§ã¯ãã³ãŒãã®è匱ãªã»ã¯ã·ã§ã³ãããé©åã«ã«ããŒãããŸãã ç§ãã¡ã¯å¿ã®ãªãã°ããŒãã«ãªãã¹ãã«ãã¬ããžã«å察ããŠããŸãã ããã°ã©ã ãæ£åžžã«æ©èœããã®ã¯ããã¹ãã§å®å šã«ã«ããŒãããããã§ã¯ãªããéçºè ãé ãã²ãã£ãããã§ãã ãã¹ãã¯ãããã°ã©ã ã®æãé£ããå Žæã§ã®ãšã©ãŒãã身ãå®ãããã®è£å©ããŒã«ã§ãã ãŸãããã¹ãã¯ã¢ãŒããã¯ãã£äžã®åé¡ã®äžèœè¬ã§ã¯ãªãããšãèŠããŠããå¿ èŠããããŸãã æãéèŠãªããšã¯ã人ã¯é ãåãã¹ãã§ãã
éITã®è³ªåã®ãã¡ãæã ãã®è³ªåãããŸãããããŠã3-5幎åŸã«èª°ãèªåãèŠãŸããïŒ åœŒã®éçºé¡æãäŒç€Ÿã圌ã®éçºãèŠãæ¹æ³ãšäžèŽããå Žåãç§ãã¡ã¯äººãšäžç·ã«åããšä¿¡ããŠããŸãã
2ã€ã®ããšãè©äŸ¡ããããšãéèŠã§ãã 1ã€ç®ã¯ããã®äººãä»ããå ŽæãçŸåšã©ã®ãããªçµéšãšç¥èãæã£ãŠããããä»ã©ã®ã¬ãã«ã®ã¿ã¹ã¯ã解決ã§ãããã§ãã 2ã€ç®ã¯ã奜ãŸããç°å¢ã«ãã人ãæ°å¹Žä»¥å ã«æºåãã§ããŠããããšã§ãã ãããŠãã¡ãããããæ°å¹Žéã圌ã¯åœç€Ÿã§åããåé¡ã解決ããå°éçã«æé·ããŸããã ç§ãã¡ã¯ã人ãä»äœã§ãããã§ã¯ãªãã1幎ã2ã3幎ã§åœŒãã©ããªããã«èå³ãæã£ãŠããŸãã èŠéãã¯ãçŸåšã®ç¶æ³ãããåžžã«éèŠã§ãã ç§ãã¡ã«ãšã£ãŠãããææãªæ°äººã¯ãåæ¥ãæãéãã人ãããé¢çœãã§ããã圌ã®ç®ã¯ç©ºã£ãœã§ãã
1CïŒãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ã®éçº-å¥ã®å€èŠ³
ç§ãã¡ã¯éåžžã質åããã€ã³ã¿ãã¥ãŒãå§ããŸã-ããªãã®æãèå³æ·±ããããžã§ã¯ãããæ°ã«å ¥ãã®ãããžã§ã¯ãã¯äœã§ãããïŒ ä»äºã§äººãæãããããã®ãšãä»äºã§äžè¬çã«æãããããã©ãããããã«ç解ãããã§ãã
ãããã圌ã¯ããã®äººã圌ã®ããã«ããã°ã©ã ã®ããã©ãŒãã³ã¹ãæé©åããå¿ èŠããã£ãã®ã ããããšæããŸãã
åè£è ããããžã§ã¯ãã§äœ¿çšãããã¹ãæ¹æ³ããããžã§ã¯ãããã¹ãããããã®æŠç¥ãã©ã®ããã«æ§ç¯ããããå°ããŸãããã®ãããªå®£èšãããæ©èœãåããã·ã¹ãã ããããŸããã©ã®ããã«ãã¹ãããŸããïŒ
ã€ã³ã¿ãã¥ãŒãJavaéçºè ã«é¢ãããã®ã§ããå Žåãã¬ããŒãžã³ã¬ã¯ã¿ãŒã®äœæ¥ã«ã€ããŠè³ªåããŸãã å€ããå°ãªããè€éãªããã°ã©ã ãéçºãã人ã¯ã圌ã®ä»äºã®ãã¥ã¢ã³ã¹ãšãã¬ããŒãžã³ã¬ã¯ã¿ãŒãå¹æçã«ã¬ããŒãžãåé€ããããã®ã³ãŒãã®æžãæ¹ãç¥ã£ãŠããå¿ èŠããããŸãã
ããã°ã©ããŒä»¥å€ã®ãããã¯ã®äžã§ãããžãã¹ã«ã€ããŠè³ªåããã®ã¯èå³æ·±ãã§ããããžãã¹ã®èŠ³ç¹ããã©ã®ã¿ã¹ã¯ãåè£è ã®ãæ°ã«å ¥ãã®ãããžã§ã¯ãã«ãã£ãŠè§£æ±ºãããã©ã®ãããªã¡ãªãããããããããŸãããã å šäœåãèŠãã®ã¯ãéçºè ã«ãšã£ãŠéåžžã«è²Žéãªè²¡ç£ã§ãã ãããã¯ãã§ãŒã³ãäœæããåè£è ãããã°ã圌ã®è©±ã¯éåžžã«æçã§ããã
èšèšã¿ã¹ã¯ãèšå®ããåè£è ã«åçŽãªã·ã¹ãã ãèšèšããããäŸé ŒããŸãã 次ã«ããããžã§ã¯ããäžç·ã«èŠãŠãæ¬ ç¹ãæ¢ãããããã解æ¶ããæ¹æ³ã«ã€ããŠè©±ãåããŸãã åè£è ãã³ã¡ã³ãã«ã©ã®ããã«å¿çãããã¯éåžžã«éèŠã§ãã
ç§ãã¡ãäœãããŠããããã€ãŸãã1CïŒEnterpriseãã©ãããã©ãŒã ãäœæããŠããããšã«ã€ããŠå¿ ã話ããŠãã ããã ããšãã°ã ãµãŒããŒã¯ã©ã¹ã¿ãŒãã¢ãã€ã«ãã©ãããã©ãŒã ãªã©ããã€ãã¯é¢é£ã®äœæ¥ã«åãçµãæ¹æ³ã«ã€ããŠèª¬æããŸã ã
åè£è ã«çŽã«ã³ãŒããæžãããšã匷å¶ããŸããã ããããã€ã³ã¿ãã¥ãŒã®äžã§çŽã«å€ããæããã·ã¹ãã ã¢ãŒããã¯ãã£ãã¢ãžã¥ãŒã«å³ããããã®çžäºäœçšã®åçãæããŸãã
ç¹å®ã®èšèªã®ç¥èã¯éèŠã§ã¯ãããŸããã ãã人ãC ++éçºè ãšããŠC ++éçºè ãšããŠäŒç€Ÿã«æ¥ãŠãC ++ãããã«ç¿åŸããããšããããŸãã ãŸããä»äºã®äžã§æ°ããèšèªãåŠãã ååã®å€ãã®äŸããããŸãã èšèªã®1ã€ã«å¯Ÿãã欲æ±ãšç¥èãããã°ãæ°ããèšèªãåŠã¶ããšã¯åé¡ã§ã¯ãããŸããã
ãŸããHabrãšstackoverflowã ããªã®ããå°éåéã®æ¬ãªã®ããã©ããèªãã§ããã®ããå°ããŸãã ãã®æ¹æ³ã§åœ¹ã«ç«ã€æ¬ãèŠã€ããããšããããŸãã
å ±åã¡ã«ããºã éçºã°ã«ãŒã
çéå ¥ãã®C ++éçºè ãå¿ èŠã§ãã ç§ãã¡ã®ããŒã ã¯å ±åã¡ã«ããºã ã«åãçµãã§ããŸããã€ãŸããç§ãã¡ã®ã³ãŒãã¯å€§éã®ããŒã¿ãæ±ãããšãã§ããã³ã³ãããšã¢ã«ãŽãªãºã ã«é¢ããååãªç¥èãå¿ èŠã§ãã
ã€ã³ã¿ãã¥ãŒã§ã¯ãåè£è ã圌ã®äœåã§äœ¿çšããã©ã€ãã©ãªãã¢ã«ãŽãªãºã ãå°ããŸãã ç§ãã¡ã¯STLãé »ç¹ã«äœ¿çšããããããã®ã©ã€ãã©ãªãéçºè ãã©ã®ã³ã³ããã䜿çšããããã©ã®ã¿ã¹ã¯ã«ã€ããŠç©æ¥µçã«å°ããŠããŸãã ããšãã°ãç¹å®ã®ã¯ã©ã¹ããããã«è¿œå ããã³ãŒããšãããã«ããã€ãã®åæ§ã®ã¿ã¹ã¯ãäœæããããã«ãé¡ãããŸãã ãã®ãããªã¿ã¹ã¯ã®å Žåãããã°ã©ããŒãç®ã®åã«ããã¬ãã«ã¯ããã«ããããŸãã
ããã°ã©ãã³ã°çè«ã«é¢ãã質åã¯ã»ãšãã©ãããŸããã å®è·µçãªç¥èãããéèŠã§ãããšèããŠããŸãã 人ãåé¡ãããŸã解決ããå®éã«çè«ãããŸãé©çšããã°ãOOPã®åºæ¬åçã®æ£ç¢ºãªå®åŒåãèŠããŠããªãã»ã©éèŠã§ã¯ãããŸããã
ã¡ãªã¿ã«ãåŠçãé¢æ¥ã«æ¥ãå Žåãçµéšäžè¶³ã®ããã«ææ¡ãããã¿ã¹ã¯ã«å¯ŸåŠããã®ããŸã é£ããå Žåããããå²åŒããŸãã çè«çã«åœŒãé転ãã圌ã®è·æ¥äžã®èå³ã«ã€ããŠå°ããããšã¯ãã§ã«çã«ããªã£ãŠããŸãã 人ãã¹ãã·ã£ãªã¹ãã®ããã«ææã«èŠããå Žåãç§ãã¡ãšäžç·ã«åªããå°é家ãšããŠæé·ããæ©äŒãäžããããšã¯çã«ããªã£ãŠããŸãã
ç§ãã¡ã«ãšã£ãŠããªãéèŠãªåºæºã¯ãä»äººã®ã³ãŒããç解ããæ欲ã§ãã 1CïŒãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ã¯ã1,000äžè¡ãè¶ ããã³ãŒãã®å€§ããªè£œåã§ãããå°ãªããšãç¬èªã®ã³ãŒããåã蟌ãã¬ãã«ã§ã¯ãæ¥åžžæ¥åã§ã®ãã®ã³ãŒããšã®è¡çªã¯é¿ããããŸããã
ç§ãã¡ã¯ãåè£è ãã©ã®ããã«ã¿ã¹ã¯ãå²ãåœãŠãããããšã奜ãããå°ããŸã-詳现ãªä»æ§ã®åœ¢ã§ããŸãã¯åã«ããã®ãããªããã³ãã®ãããªã¡ã«ããºã ãã®åœ¢ã§èšå®ããŸãã ç§ãã¡ã¯äž¡æ¹ã®ã¢ãããŒããç解ããåãå ¥ããŸããåé¡ã®ããã¹ããŒãã¡ã³ããåãå¿ èŠããããšããçç±ã ãã§ãåªããããã°ã©ããŒãæåŠããããšã¯ãããŸããã 人ãšä»äºãããæ¹æ³ãããã«ç解ããããšãéèŠã§ãã ããããç§ã¯ãåŸæ¥å¡ãå°æ¥ããã倧ããªèªç«ã®æ¹åã«æé·ããå¥ã®æ¹åã«è²¬ä»»ãæã€ããšãã§ããããã«ããããšèããŠããŸãã æ¹åã®äŸãšããŠã åçãªãªã¹ããŸãã¯å³ãæäŸã§ããŸãã ãããŠãç§ã¯åŸæ¥å¡ã«ãã®æ¹åæ§ãéçºããŠããããã-ãã®ã¡ã«ããºã ã®ãŠãŒã¶ãŒã®ããŒãºãèŠã€ãããã©ãŒã©ã ãäŒè°ã§ãŠãŒã¶ãŒãšã³ãã¥ãã±ãŒã·ã§ã³ãåããæ°æ©èœã®ãªã¹ããç·šéããåªå é äœãä»ããã¡ã«ããºã ã®åé¡ãç解ãã解決çãææ¡ããŸããèå³ããã人ã¯ãè¥ãå°é家ã»ã³ã¿ãŒã®åŠçã€ã³ã¿ãŒã³ã®ç£ç£ããå§ããŠãããŒã ãçããŠããŒã ãªãŒããŒãšããŠæé·ããããšãã§ããŸããæ¬æ¥ããã人ãTKã§ã®äœæ¥ã奜ããã¯ãªãŒã³ãªãéçºè ã§ããããŠãŒã¶ãŒã®ããŒãºãç解ããããšã«ããŸãèå³ããªãå Žåã¯ããã®ãããªäººãå¿ èŠã§ãã
ããã°ã©ããŒã¯ãã¹ããã¹ãã§ããïŒãã¡ããïŒãã¹ããè¡ããªãããã°ã©ãã¯ãæºåããããšãè©Šããªãæç人ã®ãããªãã®ã§ãããã¡ããããµããŒããããŠãããã¹ãŠã®ç°å¢ïŒWindowsãLinuxãmacOSãWebããã³ã¢ãã€ã«ã¯ã©ã€ã¢ã³ãïŒã§ããã°ã©ããŒã«ãã¹ããå®äºããããã«èŠæ±ããããšã¯ã§ããŸããããçŸåšã®OSã§åºæ¬æ©èœãæ€èšŒããå¿ èŠããããŸãããŸããèªåãã¹ããæžããšããã«è¯ãã§ããããã¯æ¢æã®ååž°ãã¹ãã§ããããã¹ãã©ã€ãã©ãªã«åé¡ãããã³ãŒãã®å¯Ÿå¿ããé åãå€æŽãããšãã«å®æçã«å®è¡ãããŸãã
1Céçºã°ã«ãŒãïŒãšã³ã¿ãŒãã©ã€ãºéçºããŒã«
1CïŒãšã³ã¿ãŒãã©ã€ãºéçºããŒã«ã¯Javaã§äœæãããŠãããJavaã®ç¥èãæã€éçºè ãšãã¹ã¿ãŒãæ¢ããŠããŸããç§ãã¡ã¯ãçãããããªç®ãæã€äººã ããã§ã«è¡ãããå°é家ãããã³æœåšçãªåå¿è ã®äž¡æ¹ãæ¢ããŠããŸãã Javaã®ç¥èã ãã§ãªããã¢ã«ãŽãªãºã ãšããŒã¿æ§é ããã«ãã¹ã¬ããããã°ã©ãã³ã°ã®ç¥èãå¿ èŠã§ããæ®å¿µãªãããç§ãã¡ã®ããŒã ã§ã¯ãæ°ããéçºè ããããã®ããšãåŠã¶ã®ãåŸ ã€äœè£ã¯ãããŸãããããããç§ãã¡ã䜿çšããç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ïŒEMFãXtextãGEFãLuceneãHandlyãªã©ïŒã®ç¥èã¯ãè²·ãåŸã§ãã人ã圌ãšè©±ãããŠããããšã«æ°ã¥ããŠããã°ãããã¯åœŒãããŒã ã«é©åããå¿ èŠãªç¥èãããã«åãåãããšãæå³ããŸãã
äžè¬çã«ãããŒã ãžã®é©åã¯ããããããããã§ãã·ã§ããªãºã ãšãšãã«ç§ãã¡ã®äž»ãªåºæºã§ããç§ãã¡ã®ããŒã ã¯æ奜家ã®ããŒã ã§ããå¥ã®æ§æ Œã®äººã§åžéããããããŸããããããŠãç§ãã¡ã®ããŒã ã§ç°ãªãæ§æ Œãæã€äººã¯ãããããäžå¿«ãªåããããã§ããããç§ãã¡ã«ãšã£ãŠæçœãªèµ€æã¯ãç¡ç€Œãªã³ãã¥ãã±ãŒã·ã§ã³ã§ãã人ã¯éåžžã«åªããå°é家ã«ãªãããšãã§ããŸãããååãšæ¬æãæã£ãŠã³ãã¥ãã±ãŒã·ã§ã³ãåãããšãã§ããªãå Žåã圌ã¯ç§ãã¡ã«é©ããªãã§ããããã²ãŒã ããããŸã-çŽç²ã«ããŒã ã§ãã
ç 究ææè²ã®ç¹åŸŽã¯ãç 究æã®å€§è¡ãç£æ¥çšããã°ã©ãã³ã°ãæããŠããªãããšã§ããæ§æãèšèªæ§æãã¢ã«ãŽãªãºã ãæãããããããéçºã®å¯èœæ§ãæ¡åŒµæ§ãå«ãææžåãããä»éã³ãŒããæžãèœåã¯ãã©ãã§ãã»ãšãã©æããããŠããŸããããããã£ãŠãã€ã³ã¿ãã¥ãŒã§ã¯ãã¿ã¹ã¯ã®éåžžã«éèŠãªã¿ã€ãã¯èšèšã¿ã¹ã¯ã§ããããšãã°ãåè£è ããããªã¹ãã©ã®ããã«æžããããããžã§ã¯ããã©ã®ã³ã³ããŒãã³ããåå²ããããã³ã³ããŒãã³ããçžäºäœçšããããã«ã©ã®ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšããããå°ããŸãã次ã«ãå°å ¥éšåãè€éã«ããŸã-ããšãã°ããããªã¹ã3次å ã§ããïŒãŸãã¯æ°ããã¿ã€ãã®åœ¢ç¶ãè¿œå ããããã圢ç¶ãç°ãªãåŽé¢ããèœã¡ãïŒãšèšããéžæããããã¶ã€ã³ãå€åããæ¡ä»¶ã«ã©ãã ãé©åãããã確èªããŸããäžè¬çã«ãã€ã³ã¿ãã¥ãŒã®äž»ãªã¿ã¹ã¯ã®1ã€ã¯ç解ããããšã§ãåè£è ãã©ãã»ã©æè»ãã€åºããšèããããšãã§ãããããããŠãã¡ãããããã°ã©ããŒã¯ãã¹ãïŒå°ãªããšãåäœãã¹ãïŒãäœæããå¿ èŠããããçµ±åãçŽ æŽãããã§ããããèšèšã¿ã¹ã¯ã®æšæºçãªè³ªåã¯ãèšèšãããã·ã¹ãã ãã©ã®ããã«ãã¹ãããŸããïŒ
ãŸãããã¹ã¿ãŒã«ââãšã£ãŠãåºãèããèœåã¯ããã«äŸ¡å€ããããŸãïŒãã¹ã¿ãŒã«ââããããŒã®ãã¹ãæ¹æ³ã¯ããç¥ãããŠããŸãïŒããŒã«1æ¯ãããŒã«2æ¯ãããŒã«0æ¯ãããŒã«9æ¯99999æ¯ãããŒã«8æ¯ãqwertyuipããŒã«1æ¯ã泚æããŸããããã€ã¬ïŒãã¹ã¿ãŒã®äž»ãªã¹ãã«ã¯ãéæšæºïŒåæã«çŸå®çãªïŒã·ããªãªãèãåºãããšã§ããååãšããŠãæšæºã¹ã¯ãªããã¯éçºè èªèº«ãéçºããŸãã
ãããã«
ããã§ç©ºããŠããæ±äººãžã®ãªã³ã¯ãæäŸããªãæ¹æ³:)
ãããŠãããªãã¯job@1c.ruã«å±¥æŽæžãéãããšãã§ããŸãã