tomaszjaniakããã°ããã®ç»å
ããªãã®ã¢ãŒããã¯ãã£ãèŠããŠãã ãã
ããŸããŸãããžã§ã¯ãã«æ°å¹Žåãçµãã§ããŠãä»ã¯ã³ãŒãã®ã²ãã«è °ãäžãããŠããŠããã¹ããçããŠããŠãã©ãããããã¯ãŒã©ãŒãé³ãç«ãŠãŠãã³ã³ãã€ã©ãŒã«ãã£ãŠéç±ãããããã»ããµãŒã®ç±ãå·åŽããããšããŠããŸããããšæ°æéã§ããªãã¡ã¯ã¿ãªã³ã°ã¯çµäºããŸãããããŠãç§ãã¡ã¯ç·æ¥ã«ãã¹ãŠãåé€ãããããžã§ã¯ãã®ã¢ãŒããã¯ãã£ãæãå¿ èŠããããŸãã倧èŠæš¡ãªã¯ã©ã€ã¢ã³ããèšç»ãããŠãããååŒãæç«ãããããã«ã¯ç£æ»ãåããå¿ èŠããããŸãããããŠãã®å Žåã建ç¯å³ãªãã§ã¯ã©ãã«ããããŸãããããã§ããããžã§ã¯ãããŸã å°ãããå®éã®äœæ¥ã§æ°å人ã®éçºè ãããã«ã¢ãŒããã¯ãã£ãå¿ èŠãšããªãã£ãå Žåã¯ã©ããªãã§ããããããããã³ãŒãã§ã-ãã¹ãŠãæ確ã§ããããããéãéã¯ãããŸãããããã¯å¿ èŠã§ã-ãããŠããã¯å¿ èŠã§ãã
ãã¹ãŠãã©ã®ããã«æ©èœããããç¥ã£ãŠããã°ãã©ã®è£œåã®ã¢ãŒããã¯ãã£ã1æéã§æãããšãã§ããŸãããããŠãããã¯éåžžãç£æ»ã«ã¯ååã§ããçµå±ã®ãšãããç£æ»ã®ãã€ã³ãã¯ãéšå€è ã補åã¢ãŒããã¯ãã£ãå®éã«ç解ããããšã§ã¯ãããŸãããåé¡ã®èŠç¹ã¯ã補åéçºè èªèº«ãèªåãã¡ã®ããŠããããšãç解ããŠãããã©ãããå€æããããšã§ãããããŠãèªä¿¡ãæã£ãŠè©±ããããããããšãªã質åã«çããã°ããã¹ãŠãã¹ã ãŒãºã«é²ã¿ãŸããããããããã§ãããã®è©±ãçµãããšãã¯ãŒã ãã©ããã«èœã¡çããåé¡ãæ確ã«ãªããŸããããã§ãã補åã«ã¯å®éã«ã©ã®ãããªã¢ãŒããã¯ãã£ããããŸããïŒçµå±ã®ãšããã圌ããå°ããã°ãããããä»ã®äººã¯ã¢ãŒããã¯ãã£ãæã£ãŠããŸãããããŠãç§ãã¡ããããæã£ãŠããªãå Žåãããã¯æããã«æ··ä¹±ã§ãã次åã®ã¢ãŒããã¯ãã£ã«è²¬ä»»ãæã€ããã«ããã¹ãŠãããŸããããããšãã倧ããªé¡æããããŸãã
ã©ããã£ãŠãããæ£ããããŸããïŒå³ãæããããã¥ã¡ã³ãã®æ©èœã説æããŠãããããããã¹ãŠãææ°ã®ç¶æ ã«ä¿ã€å¿ èŠããããŸãã次ã«ãã¢ãŒããã¯ãã£ã«ãªããŸããããããäœæ¥ã®ç¯å²ãæ瀺ããåŸãããã¯ãã¹ãŠæéãè²»ãã䟡å€ããªãããšãããã«ç解ãããŸãããããã³ãŒãã§ã-ãã¹ãŠãæ確ã§ãããããŠãå¥ã®ã¯ã©ã€ã¢ã³ããæ¥ãå Žåãããã«1æé以å ã«ãæ°ããå³ãæãããšãå¯èœã«ãªããŸãã
ãããŠãæ°å¹ŽåŸãããªãã¯å察ã®ç¶æ³ã«é¥ãå¯èœæ§ããããå¥ã®è£œåã®ã¢ãŒããã¯ãã£ã説æããããã¥ã¡ã³ãã¯ãã以äžè¯ããªãããšã¯ãããŸããããã¡ãããä»ã®äººãéåžžã«æªãã¢ãŒããã¯ãã£ãæã£ãŠããããšãç¥ã£ãŠãããšäŸ¿å©ã§ãããããããããžã§ã¯ãã®ãµã€ãºãæ°çŸäžè¡ã®ã³ãŒãã§æž¬å®ããå§ããéçºè ã®æ°ãæ°çŸè¡ã«ãªããšãã¢ãŒããã¯ãã£ã®å¿ èŠæ§ã®åé¡ã¯äŸç¶ãšããŠéèŠã«ãªããŸãã
ããã§ã¯ãã¯ãŒã¯ãããŒã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããŸããŸãªã¢ãŒããã¯ãã£å³ã衚瀺ããå§ããã¢ãŒããã¯ãã£ææ¡ãæ©èœã«ã€ããŠèšè¿°ãå§ããŸããããããã¹ãŠãè°è«ãã¬ãã¥ãŒãæ€èšŒãæ¿èªããããã¡ããããããã®ããã»ã¹ãçµäºããåã§ãæ代é ãã«ãªããŸãããã®ãããªææžãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å®éã®æ§é ãåæ ããŠãããšèšãå¿ èŠã¯ãããŸããããããŠãå®è£ ã«é¢ããŠã¯ãéçºè ããããã®ããã¥ã¡ã³ãããŸã£ããèªãã§ããªãããšããããŸãããŸãã¯ãæžããããã®ãšã¯ãŸã£ããç°ãªãäœããå®è£ ãããŠããŸãã誰ãã誰ãã誀解ãããããããããããšãæ¥åã§ãããè°è«ããæéããããŸããã§ããã
å€åãã¹ãŠãããããã¹ãã§ããããã¶ãã建ç¯ã¯ãçŸå®ããåãé¢ãããææ©çãªææžãåãå·»ãäºåå±ã§ããïŒããããçŽæã«ããã°ãçµå±ã®ãšãããéããŸããã§ã¯ãã建ç¯ããšã¯äœã§ããããã
ã¢ãŒããã¯ãã£ã¯...
ãã¢ãŒããã¯ãã£ãšã¯ããšãã質åããããšã©ããªããŸããïŒ10人ã®ããã®éçºè ïŒãŠã£ãããã£ã¢ãããéããªãå Žåã圌ãã¯åãçããåºããŸããïŒ
ã¢ãŒããã¯ãã£ã¯ãäžé£ã®éèŠãªæ±ºå®ã§ãããèŠçŽ ã®æ§é ãšãã®ã€ã³ã¿ãŒãã§ã€ã¹ãããã³èŠå®ãã«ãŒã«ãåæã®ã·ã¹ãã ã§ããã秩åºãç¶æããã¢ãããŒããã°ããŒãã«ãªåé¡ã®è§£æ±ºçãçžäºäœçšã«ããå解ãã·ã¹ãã ãšãã®ã©ã€ããµã€ã¯ã«ã®é«ã¬ãã«ã®èª¬æã®äž¡æ¹ã§ããããŒããæ§é ãšåäœã®ãã¿ãŒã³ãå€æŽãŸãã¯åé€ãå°é£ãŸãã¯è²»çšãããããã®ãåºæ¬çãªæ±ºå®ãšãã¬ãŒããªããªã©ã
ã¢ãŒããã¯ãã£ã¯ãã¢ããªã±ãŒã·ã§ã³ããã®ç®çãæããæ¹æ³ã§ããããŸãã
APIã¯ã¢ãŒããã¯ãã£ã§ãããããŒã¿ã¹ããŒããã¢ãŒããã¯ãã£ã§ãããã¢ãžã¥ãŒã«ãšãµãŒãã¹ã®æ§é ã§ããã¢ããªã±ãŒã·ã§ã³ã¹ã±ãŒãªã³ã°ã¢ãŒããã¯ãã£ãã¢ããªã±ãŒã·ã§ã³ä¿¡é Œæ§ã¢ãŒããã¯ãã£ãã³ã³ããŒãã³ãçžäºäœçšã¢ãŒããã¯ãã£ãããã³ã»ãã¥ãªãã£ã¢ãŒããã¯ãã£ããããŸãããããŠãã¡ãããåæ©èœã«ã¯ç¬èªã®ã¢ãŒããã¯ãã£ããããŸãããããŠãããããã¹ãŠãäžç·ã«ãªã£ãŠã¢ãŒããã¯ãã£ã§ããããŸãã
ããã¯ãã¹ãŠããã¢ãŒããã¯ãã£ãšã¯ããšãã質åã«å¯ŸããçããšèŠãªãããšãã§ããŸããïŒ -ããããããã§ãããã¹ãŠãæ£ããããã§ããã¹ãŠãæ確ã§ããããã§ãããããããã®åçã¯å®éã«åœ¹ç«ã¡ãŸããïŒå®éã®ã¯ãŒã¯ãããŒã§äœ¿çšã§ãããã®ã§ããïŒãããŸãã
決å®ãéèŠã§ãããåºæ¬çã§ããããã©ããã£ãŠç¥ãã®ã§ããïŒã°ããŒãã«ãªèª²é¡ã¯äœã§ããïŒé«ããŸãã¯å®ããšã¯ã©ãããæå³ã§ããïŒè€éããã©ã®ããã«æšå®ããŸããïŒé«ã¬ãã«ãšäœã¬ãã«ã®å¢çã¯ã©ãã«ãããŸããïŒæ³šæãšã¯äœã§ããïŒã·ã¹ãã ã®ç®çã¯äœã§ããïŒ
ãããã¯ãã¹ãŠãããªããçããããšãã§ãã質åã§ããå®çŸ©ãçå®ããäŸãæããŠèª¬æããææªã®å Žåãææ決å®ããã»ã¹ãæŽçããŸããããããããã§ããå人çãªèªèã«å¿ããŠãç©è°ãéžããã®ãçŽæçãªãã®ãæ®ãããã¹ãŠã®äººãç¬èªã®æ¹æ³ã§å°ãç解ããŸããããã¯ãç°ãªã人ã ãåãç¶æ³ãæ ¹æ¬çã«ç°ãªãæ¹æ³ã§è§£éãããšããäºå®ã«åºã¥ããŠãåžžã«å¯Ÿç«ãååšããããšãæå³ããŸããéçºè ã¯ãã¢ãŒããã¯ããå®è£ ã®è©³çŽ°ãæ¹ããããŠãããã¢ãŒããã¯ããéçºè ãã¢ãŒããã¯ãã£ãç Žã£ãŠãããšäžå¹³ãèšãã§ããããæ確ãªå¢çããªãå Žåãè¡çªã¯é¿ããããŸããã
ãããã誰ããã¢ãŒããã¯ãã£ãšã¯äœãã«ã€ããŠããçšåºŠã®äžè¬çãªç解ãæã£ãŠããŸããããããæ£åŒã«æ€èšŒãããæ°åŠçã«æ£ç¢ºãªåäžã®å®çŸ©ã«ååãä»ããããšã¯å°é£ã§ãã
äžæ¹ããå®çŸãšã¯ïŒããšèããš-çãã¯æçœã§ããå¯èœæ§ãé«ãã§ãïŒãããã«ã³ãŒããªããžããªãžã®ãªã³ã¯ããããŸãïŒããããŠãããªãã¯ããã«ã€ããŠè°è«ããããšã¯ã§ããŸããããããŠããã®çãã®è§£éã«ã¯çããææ§ãã¯ãããŸããã 1 + 1 = 2ãå®è£ ã¯ã³ãŒãã§ãã
ãŸããã³ãŒãã®æäœã¯éåžžã«ç°¡åã§ããå®è£ ãç解ãããå Žåã¯ãéçºç°å¢ã§ãããžã§ã¯ããéãããšãã§ããŸããã³ãŒãã®å€æŽã確èªããå¿ èŠãããå Žåã¯ããªããžããªã«ãã©ã³ãããããŸããã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ããªãªãŒã¹ãããšããæ¥ããããã¹ããéå§ãããŸãã
ãã¡ããããããžã§ã¯ãã®æ§é ã¯æ··ä¹±ãæãå¯èœæ§ããããã¬ãã¥ãŒã®è³ªã¯äœãããã¹ãã®å¯Ÿè±¡ç¯å²ã¯äžå®å šã§ããããããå°ãªããšãã³ãŒããæäœãããšãã¯ãäœããã€è¡ãããåžžã«æ確ã§ãã
ããããå®è£ ã®ããã«ãã¢ãŒããã¯ãã£ãã³ãŒãã§è¡šçŸãããå Žåã¯ã©ããªãã§ããããã
å€ãã®äž»æµã®ããã°ã©ãã³ã°èšèªãçŸä»£ã®éçºã§äœ¿çšãããŠããŸãããããã®ã»ãšãã©ã¯ãã£ãšåãŸãã¯éåžžã«ãã£ãšåã«çŸããŸããããããŠã圌ãã¯ãŸã è¯ãã§ããã圌ãã¯å°ãæ代é ãã«ãªã£ãŠããŸãããããã¯ã匱ãåä»ããããèšèªïŒJavaScriptãPythonãPHPãRubyãããã³åŒ·ãåä»ããããèšèªïŒJavaãC / Objective-C / C ++ãCïŒã§ãããããã¯ãåããã©ãããã©ãŒã ã®ãã¬ãŒã ã¯ãŒã¯å ã§ãæ§æäžã®ç ç³ããŸãæ£ãããŠãé·å¹Žã®åé¡ã解決ããããšããæ°ããèšèªã«çœ®ãæããããŠããŸãããã°ããŒãã«ã«èŠããšæ ¹æ¬çã«æ°ããæŠå¿µãå°å ¥ããããšã¯ãããŸããïŒSwiftãKotlinãTypeScriptãGoããããã¯ãã¹ãŠããªããžã§ã¯ãæåã®ãã©ãã€ã ã«åºã¥ããŠæ§ç¯ãããèšèªã§ãããŸããããã°ã©ãã³ã°ãžã®æ©èœçã¢ãããŒãã¯æçãã人æ°ãåŸãŠããããªã¹ããããèšèªã§å®è£ ãããç¹æ®ãªèšèªã§æ瀺ãããŠããŸãããããŸã人æ°ããããŸããïŒErlangãFïŒãå®è³ªçã«æ°ããæŠå¿µãå®è£ ããèšèªã人æ°ãéãå§ããŠããŸãïŒRustãHaskellã
ãã®å€æ§æ§ã«ã¯ãã¹ãŠå ±éç¹ã1ã€ãããŸããããã¯ããã¹ãŠå®è£ èšèªã§ãããšããããšã§ãããããã®ããã°ã©ãã³ã°èšèªã¯ã©ããã¢ãŒããã¯ãã£ã®è¡šçŸã§ã¯ãããŸããããã ããäŸå€ã1ã€ãããŸããããã¯SQLã§ãã
SQLã¯ã宣èšåã§ããå¯äžã®äž»æµã®ããã°ã©ãã³ã°èšèªã§ããããã¯ããªã¬ãŒã·ã§ãã«ä»£æ°ã¢ãã«ã«åºã¥ããŠæ§ç¯ãããŠãããä¿åãããããŒã¿ãåŠçãããšããçãå°éåéãæã£ãŠããŸããããããããã§ãããªãSQLãã¢ãŒããã¯ãã£ã®èšèªãšèŠãªãããšãã§ããã®ã§ããããã
ãŸããSQLã¯ããŒã¿ã¹ããŒãã«é¢ããã¡ã¿æ å ±ãžã®ã¢ã¯ã»ã¹ãæäŸããŸããããŒã¿ããŒã¹ãããããŒãã«ãåãé¢ä¿ãã€ã³ããã¯ã¹ããã¥ãŒãããŒã«ãªã©ã®ãªã¹ããç°¡åã«ååŸã§ããŸããã¹ãã¬ãŒãžã¹ããŒããææžåãããããèŠèŠåã§ããããšã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ§é ãç解ããäžã§éåžžã«åœ¹ç«ã¡ãŸããããŒã¿ã¹ããŒãèšè¿°ã¯ãé«ã¬ãã«ã®ã¢ãŒããã¯ãã£èšè¿°ã®äžçš®ã§ãã
次ã«ãSQLã¯ãã¯ã©ã€ã¢ã³ããã¹ããŒãã«èšè¿°ãããŠããããŒã¿ã®ä»»æã®çµã¿åãããç §äŒã§ããããã«ããããŒã¿ç §äŒèšèªãæäŸããŸããã¯ãšãªèšèªããªãå Žåã¯ãã¯ã©ã€ã¢ã³ããå¿ èŠãšããããŒã¿ã¢ãã«ããšã«ãåå¥ã®APIã¡ãœãããå®è£ ããããã¯ã©ã€ã¢ã³ããããŒã¿ã¹ããŒãã®ããŸããŸãªéšåã«å¯ŸããŠè€æ°ã®APIåŒã³åºããè¡ããå¿ èŠãªã¢ãã«ããã®åŽã§çµã¿åãããå¿ èŠããããŸããã¯ãšãªèšèªã®ååšã«ãããã¢ãŒããã¯ãã£ã®èª¬æãããäžè¬çãªã¹ããŒã ã«åŸã£ãŠç¹å®ã®ããŒã¿ã¢ãã«ãååŸããããã®APIã¡ãœããã®åæã«é¢é£ããå®è£ ã®è©³çŽ°ãé€å€ããããšãã§ããŸããã¯ãšãªèšèªã¯ãã¢ãŒããã¯ãã£ã®èª¬æããå®è£ ã®è©³çŽ°ãé€å€ããŸãã
SQLã¯ãã¢ãŒããã¯ãã£ã説æããããã«éèŠãª3ã€ã®äž»èŠãªããããã£ãæäŸããŸãã
- 宣èšæ§-SQLã䜿çšãããšãã¢ãŒããã¯ãã£ã®èª¬æããã®å®è£ ããåé¢ã§ããŸãã
- åæå¯èœæ§-SQLã¯ãããŒã¿ã¹ããŒãã®ã¡ã¿æ å ±ãžã®ã¢ã¯ã»ã¹ãæäŸããŸããããã«ããããã®è¡šçŸãèŠèŠåãææžåãããã³åæã§ããŸãã
- æ£ç¢ºæ§-SQLã䜿çšãããšãããŒã¿ã¢ãã«ã«å¶çŽãå®çŸ©ã§ããŸããããã«ãããå®è£ ã«ããããŸããŸãªããŒã¿æŽåæ§éåãé²ãããšãã§ããŸãã
ãããããSQLã¯ããŒã¿ã¹ãã¬ãŒãžã®èŠ³ç¹ããã¢ãŒããã¯ãã£ã説æããããã®ããŒã«ãšåŒã¶ããšãã§ããŸããã補åã®å®å šãªã¢ãŒããã¯ãã£ã説æããã«ã¯æããã«ååã§ã¯ãããŸããã
ã¢ãŒããã¯ãã£ã説æããä»ã®æ段
SQLã®çŽæ¥ã®é¡äŒŒç©ã¯GraphQLã§ããããã«ãããããŒã¿ã¹ããŒããå®çŸ©ããã¯ãšãªèšèªãä»ããŠããŒã¿ã¹ããŒãã«ã¢ã¯ã»ã¹ããããšãã§ããŸããåæã«ãGraphQLã¯ããªã¬ãŒã·ã§ãã«ä»£æ°ã¢ãã«ã§ã¯ãªããã°ã©ãçè«ã«åºã¥ããŠæ§ç¯ãããŠããŸããããã«ãããéå±€ã®æäœãå°é£ãªSQLãšã¯å¯Ÿç §çã«ãããèªç¶ãªæ¹æ³ã§éå±€ããŒã¿ã¢ãã«ãæäœã§ããŸãã
GraphQLã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éä¿¡ãœãªã¥ãŒã·ã§ã³ãšããŠå®£äŒãããããšããããããŸããããã®ã¢ããªã±ãŒã·ã§ã³ã®é åã¯ããã ãã§ã¯ãããŸãããåæ§ã«ãGraphQLãä»ããŠããµãŒããŒééä¿¡ãããã«ã¯ãµãŒããŒééä¿¡ãæäŸã§ããŸããææ°ã®ããŒã¿ããŒã¹ã¯SQLã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ãæäŸããŸãããéå±€ã¯ãšãªãæäœããããã®äŸ¿å©ãªAPIãæäŸããªããšããäºå®ã¯ãäžå¿«ãªçç¥ã§ãã
SQLãããŒã¿ã¹ãã¬ãŒãžã¹ããŒãã®ã¢ãŒããã¯ãã£ãèšè¿°ããæ段ã§ããå ŽåãGraphQLã䜿çšãããšãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³é åã®èŠ³ç¹ããããã§ã«ããžãã¹ã¬ãã«ã§ããŒã¿ã¹ããŒãã®ã¢ãŒããã¯ãã£ãèšè¿°ããããšãã§ããŸãããã®æå³ã§ãGraphQLã䜿çšãããšã補åã®å®éã®ã¢ããªã±ãŒã·ã§ã³é åã«è¿ããããé«ãã¬ãã«ã§ã¢ãŒããã¯ãã£ãå®çŸ©ã§ããŸãã
ã³ãŒãã¢ãžã¥ãŒã«ãšãã€ã¯ããµãŒãã¹ã¯ããããã®APIãšäŸåé¢ä¿ãšãšãã«ãæ§é ãšé¢ä¿ã®èŠ³ç¹ããã¢ãŒããã¯ãã£ãè¡šçŸããããã®æ段ã§ããããŸãã
ã¢ãŒããã¯ãã£ãšå®è£
æ°å人ã®éçºè ãåãçµãã§ããå°ããªãããžã§ã¯ãã®å Žåãã¢ãŒããã¯ãã£ã®åå¥ã®èª¬æã¯å¿ èŠãªãããšããããããŸãããããžã§ã¯ãã³ãŒãããã¡ããšæ§é åãããŠããã°ãå šäœåãšéçºã®æ¹åæ§ãç解ããã®ã«ååãããããŸããã
ãããžã§ã¯ããæé·ããã«ã€ããŠããã®äžè¬çãªã¢ãŒããã¯ãã£ãšæ°ããããŒãã®è©³çŽ°ããã³äž»èŠãªæ¹åã®äž¡æ¹ã説æããããŸããŸãªããã¥ã¡ã³ãã衚瀺ãããŸããããã¯ãæ°å人ããããžã§ã¯ãã«åãçµãã§ããå Žåãéåžžã«å®çšçãªã¢ãããŒãã§ãã
ããããããªã倧èŠæš¡ãªãããžã§ã¯ãã®å Žåãéçºè ãæ°çŸäººãããšããã®ã¢ãããŒãã¯å€±æãå§ããŸããããã¥ã¡ã³ããå€ãããŠããã®å 容ãå®è£ ãããŸããŸãåå²ãå§ããŠããŸãã誰ããåãããã«èããè¡šçŸããããšã¯ãŸããŸãé£ãããªã£ãŠããŸããäœå人ãã®äººã ã®ããã®éäŒã¯ãå€ãã®ãã©ã€ããŒããããã¯ãè°è«ããããã«çµç¹ãããŠããŸãããæ¬åœã«éèŠãªå€æŽã¯ããŸã£ããè°è«ããããšãªãå®è£ ã§ããŸããããã¯ãã¹ãŠãäœããæäŸããªããã°ãªããªãå Žåããã©ããŒããå Žåãã¬ãã¥ãŒããå Žåãããã«ã¯è¡ãå Žåã«ããŸããŸãå€ãã®ããã»ã¹ãç·šæããå¿ èŠæ§ã«ã€ãªãããŸããå®åããã®çµæãéçºè ã¯ããå€ãã®ããã¥ã¡ã³ããšããå°ãªãã³ãŒããæžãå§ããŠãããããã¯æãé倧ãªåé¡ã§ã¯ãããŸããã
ãã¡ããããã¥ãŒããŒã¯ã©ã·ãŒèªäœã«ã¯äœã®åé¡ããããŸãããã©ããªä»äºã§ãããã®çµç¹ã¯éèŠã§ããåé¡ã¯ãæçšãªä»äºã®åäœãããã®äºåå±ã®éã§ãã 1ã€ãè¡ãããã«ãããã«2ã€ã3ã€ã4ã€ã5ã€ã®ã©ãªãŒãéå¬ããå¿ èŠãããå Žåãããã¯ã©ãã§ãè¯ããããŸããã
ããã¯å®è£ ã§ãããããéçºè ãèªåã§ã©ã®ãããªå€æŽãå ããããšãã§ãããããŸããããã¯ã¢ãŒããã¯ãã£ã§ãããããã¬ãã¥ãŒãèŠæ±ããå¿ èŠããããã©ãããšããåçŽãªè³ªåã§ãããåé¡ãåŒãèµ·ããå§ããŸããããŸããŸãªã¢ãŒããã¯ãã£ã®ããªã¬ãŒãèãåºãå¿ èŠããããŸããããŒã¿ã¹ããŒããå€æŽããããæå·åãã»ãã¥ãªãã£ã®åé¡ã«è§Šãããããå Žåã¯ãã¢ãŒããã¯ãã£ã確èªããå¿ èŠããããä»ã®ãããã¯ã¯ããã§ã¯ãªãããã§ãããããã¯ç¢ºãã§ã¯ãããŸãããããã¯ãã¹ãŠãäœçŸäººãã®éçºè ã«çå®ããŠèª¬æããã ãã§ãªãã説æãããŠããã«ãŒã«ã«ç¢ºå®ã«åŸãå¿ èŠããããŸãããã®ãããªããã»ã¹ã¯åžžã«å€±æããŸãã
ãããã®åé¡ã¯ãã¹ãŠãã¢ãŒããã¯ãã£ã®æ確ãªå®çŸ©ã®æ¬ åŠã«é¢é£ããŠããŸãã
ãªããžããªå ã®ã.javaããã¡ã€ã«ãå€æŽãããšå®è£ ã®å€æŽãæ確ã«ç€ºãããã®ãšåæ§ã«ãããarchitectureããã¡ã€ã«ãå€æŽãããšã¢ãŒããã¯ãã£ã®å€æŽã瀺ãããšãã§ããŸãããã¡ãããããarchitectureããã¡ã€ã«ã¯èªç¶çã«ã¯ååšããŸããããã ãããããžã§ã¯ãããšã«ããããžã§ã¯ãã®ã©ã®ç¹å®ã®åŽé¢ããã®ã¢ãŒããã¯ãã£ã«é¢é£ããŠããããå®çŸ©ããæ瀺çã«ããããšãã§ããŸãã
ããŒã¿ã¹ããŒãã®å€æŽãã¢ãŒããã¯ãã£ã®å€æŽãšèŠãªãããå ŽåãSQL移è¡ãå«ããã¡ã€ã«ã¯ã¢ãŒããã¯ãã£ãåç §ããå¿ èŠããããŸãã APIãã¢ãŒããã¯ãã£ã®äžéšã§ããå Žåã¯ãåãã¹ã¯ãã¬ãŒãã¡ã€ã«ã®åœ¢åŒã§APIãå®çŸ©ãããããã«äŸåããããšãã§ããŸããã¢ãžã¥ãŒã«ã®æ§é ãã¢ãŒããã¯ãã£ã§ããå Žåãã¢ãžã¥ãŒã«ã®èª¬æã®å€æŽã¯ã¢ãŒããã¯ãã£ã®å€æŽã§ããçã
ã¢ãŒããã¯ãã£ã®ãã¹ãŠã®åŽé¢ãæšæºçãªæ¹æ³ã§è¡šçŸã§ããããã§ã¯ãããŸãããåãããžã§ã¯ãã«ã¯ç¬èªã®è©³çŽ°ããããŸããããšãã°ã補åãç¹å®ã®æš©å©ã圹å²ããµãã¹ã¯ãªãã·ã§ã³ã®çš®é¡ãã¢ããªã³ãªã©ã®ã¢ãã«ã䜿çšããŠããå Žåã¯ã補åã®ãã®åŽé¢ã®ã¢ãŒããã¯ãã£ãé©åãªå®£èšåœ¢åŒã§å®çŸ©ããå®è£ ã®è©³çŽ°ããã¢ãŒããã¯ãã£ã®æ¬è³ªã匷調ããããšãæ€èšããå¿ èŠããããŸãããã¡ããããã®ãããªå€æŽã«ã¯å€§å¹ ãªã³ãŒãã®ããçŽããå¿ èŠã«ãªãå ŽåããããŸããããããããã¯ãããã¥ã¡ã³ãã§ãã®æš©å©ã¢ãã«ã説æããããšãããããã補åã¢ãŒããã¯ãã£ãå®çŸ©ããäžã§å®è³ªçã«åªããæè³ã§ãã
ã³ãŒãã§ã¢ãŒããã¯ãã£ãæ£åŒã«è¡šçŸããããšã¯å¯èœã§ãããããã ããã¢ãŒããã¯ãã£ãšã¯äœããæ確ã«å®çŸ©ããŸãããã®ãã¥ãŒã䜿çšãããšãã¢ãŒããã¯ãã£ãåæããŠãåžžã«ææ°ã®ããã¥ã¡ã³ããèªåçã«çæã§ããŸããæ®ãã®ãã¹ãŠïŒæäœæ¥ã§ç·šéãããããã¥ã¡ã³ããå³ãå³-ãã¥ãŒããŒã¯ã©ã·ãŒã
ã¢ãŒããã¯ãã£ã¯ã³ãŒãå ã§æ£åŒãªè¡šçŸãæã€ããšãã§ããããã ããã¢ãŒããã¯ãã£ãšå®è£ ã®éã®æ確ãªå¢çãå®çŸ©ããŸãããããŠããã®ãããªå¢çç·ãå¿ èŠã§ãã
建ç¯ã«ãããå·¥åŠçããã³é²åçã¢ãããŒã
éå»åäžçŽã«ããã£ãŠãéçºæ¥çã¯æ»ã®ã¢ãã«ããå埩çãªéçºãžãšé·ãéã®ããæ©ãã§ããŸããããããŠä»ãæ¥çã¯ãã®åé¡ã§è¡ãéããŠããããã§ããããå Žæã§ã¯ã建ç¯å®¶ã®ä»äºã¯ãã¯ããšã³ãžãã¢ãåºåž«ã®ä»äºã«äŒŒãŠãããããããã®é€èã®ã¿ãç®çãšããŠéãããå£ç¯åŽåè ã®ä»äºã«ãŸããŸã䌌å§ããŠããŸãã
ãšã³ãžãã¢ãªã³ã°ãšã¯ã©ãããåºå¥ããã®ã¯ãèªç¶ã®æ³åãã€ãŸããå®éšã§ã¯ãªããèšç®ãšçµè«ãåºãã解決çãèšèšããããã®æ³åãç解ããããšã§ãã倧工ãªã誰ã§ãå®å šã«åãå ¥ããããã¹ããŒã«ãäœãããšãã§ããŸãããã¹ããŒã«ãæé©ã«ããããã«ã¯å·¥åŠçãªç¥èãå¿ èŠã§ãã軜ããä¿¡é Œæ§ãé«ããå®å®ããŠããŠãã·ã³ãã«ã§å®äŸ¡ã«è£œé ã§ããŸãããšã³ãžãã¢ãªã³ã°ã¢ãããŒãã«ãããæå°éã®åŽåã§è¿ éã«æé©ãªçµæãåŸãããšãã§ããŸããæ®å¿µãªããããœãããŠã§ã¢éçºã§ã¯ããšã³ãžãã¢ãªã³ã°ã¢ãããŒããåžžã«å¯èœã§ãããšã¯éããŸããã
å€ãã®å Žåãéæãããçµæã¯éåžžã«æŒ ç¶ãšå®çŸ©ãããŠããããœãªã¥ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã«å€§ããªåœ±é¿ãäžããå€ãã®èŠå ã¯äžæã§ãããããŸã£ããããã£ãŠããŸããããœãªã¥ãŒã·ã§ã³èªäœã®å®è£ ã«é¢ããäœæ¥ã¯ãã¢ãŒããã¯ãã£ã®è©³çŽ°ãªè©³çŽ°ãããé«éã§å®äŸ¡ã§ããããããéçºãžã®å埩çãªã¢ãããŒãããã®ãããªäººæ°ãç²åŸããçç±ã®1ã€ã§ããæã«ã¯èšãç¥ããªãã»ã©ã§ãã
ææªã®å Žåãã¢ãŒããã¯ãã£ã®éçºã¯ãåéçºããŒã ãåã«ã¢ãŒããã¯ãã«å®è£ ããããšããŠãããã®ã®èª¬æã®ã¬ãã¥ãŒãäžãããšããäºå®ã«èŠçŽã§ããŸãããã®ãããªç¶æ³ã§ã¯ã建ç¯å®¶ã®ä»äºã¯é€èã«éå ãããŸãããããŠãããã§ããªãã¯å¿ããŠããŸãããïŒãããèæ ®ã«å ¥ããŸãããïŒãããŠãããã§ã¯ããã¯ééã£ãŠããŸããããã«ã€ã³ããã¯ã¹ãè¿œå ããŸããïŒãããŠãç¹°ãè¿ãã®åŸã«ç¹°ãè¿ããŸãã
éèãåãé€ãå¿ èŠããããŸããããããããã ããè¡ããšãåºã¯ã©ã®ããã«ãªããŸããïŒè±å£ã¯ææš¹ã®æšé°ã§æ¯ããã€ããŽãšãã³ãžã³ã亀äºã«ãªããããããã¹ãŠãç¡æ°ã®å°éã暪åããå©çšå¯èœãªã¹ããŒã¹ãç¡é§ã«ããŸããããã§ã¢ãŒããã¯ãã£ã«ã€ããŠè©±ãã®ã¯é£ããã§ãã
建ç¯ãçŸããããã«ã¯ã建ç¯å®¶ã¯å°ãªããšãåºåž«ã®ä»äºãããªããã°ãªããŸãããããªãŒãšéèã¯å¥ã ã«æ œå¹ããå¿ èŠããããŸã-æ§é ããããŠäººã ãæãé »ç¹ã«è¡ãå Žæ-ãã¹ãæ·èšããå¿ èŠããããŸã-æ¥ç¶ãã¢ãŒããã¯ãã¯è©³çŽ°ã芳å¯ããå®çŸã®éçšã§çããç¹å®ã®æ©èœãåäžã®æ§é ã«ç·šæããã³äœç³»åããŠãç©æ¥µçã«è¡åããããšãã§ããŸããã©ã³ãã¹ã±ãŒããã¶ã€ã³ã®ããã«ãã¢ãŒããã¯ãã¯ã€ãã³ãã®èªç¶ãªæµãã圢äœããããžãã£ããªãã¬ã³ãã匷åãããã¬ãã£ããªãã¬ã³ããé²ãããšãã§ããŸãã
ãããŠããã§ã¯ãã³ãŒãå ã®ã¢ãŒããã¯ãã£ã®æ確ãªå®çŸ©ãå¿ èŠã§ããããŒã¿ã¹ããŒããã¢ãžã¥ãŒã«ãšãµãŒãã¹ã®æ§é ããããã®APIãšçžäºäœçšã«ãŒã«ããããã®ããŒã«ãå®çŸ©ããªããšãã¢ãŒããã¯ãã¯å®è£ ã¬ãã¥ãŒã«è¡ãè©°ãŸãããéçºè ãããã«ããããã€ãã®ããã¥ã¡ã³ãã«èšèŒãããŠããã«ãŒã«ã«å®éã«åŸãããšãçŽ æŽã«æãã§ããŸããããã¡ããããã¯èµ·ãããŸããã
ã¢ãŒããã¯ãã£ãšãã®å€æŽã®ã«ãŒã«ã®æ£åŒãªãã¬ãŒã³ããŒã·ã§ã³ãããå Žåãããã¯ãã§ã«ã¢ãŒããã¯ãã£ã®éçºãžã®é²åçã¢ãããŒããšåŒã¶ããšãã§ããŸãããããŠãããã¯æªããããŸãããããããããã«éå®ããå¿ èŠããããŸããïŒ
ã¯ããæåã¯èŠä»¶ããããŸãã«èŠããèŠå ããããŸãã«èŠããã·ã¹ãã èªäœãéåžžã«è€éã§ãããããèšèšãããå®è¡ãç°¡åã§ããããããæéãçµã€ã«ã€ããŠããããã®ããšãæããã«ãªãå§ããŸããã¢ãŒããã¯ãã£ã®éçºã«ãããå®éã®çµéšã«ããããã®ã¢ããªã±ãŒã·ã§ã³é åã®ç·šæã®è©³çŽ°ã¯ãŸããŸãæ確ã«ãªããŸãããã®äžè¬çãªãœãªã¥ãŒã·ã§ã³ã¯5ã€ã®ç°ãªãæ¹æ³ã§å®è£ ãããŠããããŠãŒã¶ãŒã¯ãã®ãããªå€æ§æ§ã«èŠããã§ããããšãæããã«ãªããŸããããã€ãã®ãã®ã¯å Žéãã§ç§»åããå¿ èŠããããŸãããä»ã®ãã®ã¯ãã§ã«å€ããæ°ãããœãªã¥ãŒã·ã§ã³ã«çœ®ãæããããŠãããããåé€ããå¿ èŠããããŸãããããŠãæ°ããéçºã¯ããã»ã©æ°ããèŠããã®ããããŸã-ãããŠç§ãã¡ã¯ãã§ã«ãããšãããå®è£ ããŸããããããäœã«ã€ãªãã£ãã®ãèŠããŠããŸããïŒåŸã§ããçŽãå¿ èŠããªãããã«ãããã«ãããŸããããçµå±ã®ãšãããäžåºŠã«æ£ããå®è¡ããããšã¯ãéåžžãå¿ èŠä»¥äžã«é«éã§ããããããããã¯ããªãããããæ£ããè¡ãæ¹æ³ãæ¬åœã«ç¥ã£ãŠããå Žåã«ã®ã¿ã§ãããããŠçµéšãç©ããšããã®ãããªç解ããã°ãã°ããããããŸãã
åªããã¢ãŒããã¯ãã£ã¯ãããèªäœãæé·ããŠå°ãçµç¹åããããã®ã§ã¯ãªããå šäœçã§å¯Ÿç§°çã§ææ©çãªãã®ã§ããã¢ãŒããã¯ãã£ã®éçºãžã®ãšã³ãžãã¢ãªã³ã°ã¢ãããŒãã¯å¯èœã§ãããã«ãŒã«ãšãã¿ãŒã³ãç解ããã ãã§ãæéããããå ŽåããããŸãã
ç¹å®ã®ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£ã®æ£åŒãªå®çŸ©ã¯ãéçã§ããå¿ èŠã¯ãããŸãããéæšå¥šã®APIã¡ãœããã¯éæšå¥šãšããŠå®£èšã§ããæ¬ èœããŠããAPIã¡ãœããã¯æªå®è£ ãšããŠå®£èšã§ããŸããã³ãŒãã®æå³ã®ããéšåã¯ãå¥ã ã®ã¢ãžã¥ãŒã«ã«é 眮ããããã«ããŒã¯ããããšãã§ããŸããããŒãã«ã2ã€ã«åå²ããããå¥ã®ããŒã¿ããŒã¹ã«ç§»åããããšãèšç»ã§ããŸããçãå®è£ ãå€æŽããã«ã¢ãŒããã¯ãã£ãå€æŽã§ããŸããå®è£ ã¯è¿œãã€ãã§ãããããŸããããæ©ãè¿œãã€ãããã«ãããŒã ãã£ããã§èªåãªãã€ã³ããŒãäœæããããšã«ãããããã»ã¹ããããã«èªååã§ããŸããåæ§ã«ãArchitecturalãã¡ã€ã«ã§éçºè ãè¡ã£ãå€æŽã¯ãèªåçã«ArchitectureããŒã ã®ãã£ããã«ç§»åã§ããŸãã
ã¢ãŒããã¯ãã£ã®éçºãžã®ãšã³ãžãã¢ãªã³ã°ã¢ãããŒããå¯èœã§ãã
åæã«ã建ç¯å®¶ã®ä»äºãéçºè ã®ä»äºãããæ ¹æ¬çã«è¯ããæªãããæ³å®ããã¹ãã§ã¯ãããŸããã圌女ã¯ãã éããéçºè ã¯ããŸã第äžã«ãImperativeã¹ã¿ã€ã«ã§äœæ¥ããŸãããã¢ãŒããã¯ãã®äœæ¥ã¯ãã宣èšçã§ããã¢ãŒããã¯ãã£ãç解ããã®ãé£ããå ŽåããããŸãããå®è£ ã¯æ¥åžžçãªãã®ã§ãããŸãããã®éãèµ·ãããŸãã
ã¢ãŒããã¯ãã£ãšãã¶ã€ã³
ã¢ãŒããã¯ãã£ãšãã¶ã€ã³ãšããçšèªã¯ããã°ãã°åãæå³ã§äœ¿çšãããŸããããªãã¯èšãããšãã§ããŸãïŒã·ã¹ãã ã¢ãŒããã¯ãã£ãŸãã¯ã·ã¹ãã èšèšãæŠããŠããããäœã§ãããã¯æããã§ãããã ãããããã®çšèªã«ã¯å€§ããªéãããããŸãã
ãã¶ã€ã³ãšã¯ããŸã第äžã«ãèŠèŠçãªãã®ãæ³åãŸãã¯èŠãããšãã§ãããã®ãæå³ããŸããã¹ããŒã ãå³ãã¢ãã«ããã¶ã€ã³ã䜿çšãããšããšã³ãã£ãã£éã®é¢ä¿ãçžäºäœçšã®ãã¬ãŒã¹ãã§ãŒã³ãèŠèŠçã«ç€ºããæ§é ã®éããé¡äŒŒæ§ã確èªã§ããŸãã
ãã ããã¢ãŒããã¯ãã£ã¯èŠèŠçãªã ãã§ãªããã«ãŒã«ãšå¶çŽãæšè«ãæ°åŠçãªèšç®ãå«ããããšãã§ããŸããèŠèŠåãäžååãªæŠå¿µã
ãã¡ãããäž¡æ¹ãšãéèŠã§ãã
ã¢ãŒããã¯ãã£ã®éèŠãªåŽé¢ãã³ãŒãã§æ瀺çã«å®çŸ©ãããŠãããšäŸ¿å©ã§ããããããããã ãã§ã¯ååã§ã¯ãããŸãããã¢ãŒããã¯ãã£ãèŠèŠåããããã«åºæã®ååãèªååããããšãéèŠã§ãã
ã¢ãŒããã¯ãã£ã«ããŒã¿ã¹ããŒããå«ãŸããŠããå Žåã¯ããããèŠèŠçã«è¡šçŸããå¿ èŠããããŸããã¢ãžã¥ãŒã«ã«ã¯äŸåé¢ä¿ããããŸã-ããããã¬ã³ããªã³ã°ããå¿ èŠããããŸãã APIãããå Žåã¯ããµãŒãã¹ã®æ§é ã«çŽæ¥é¢é£ããããã¥ã¡ã³ããå¿ èŠã§ããçããã¶ã€ã³ã¯ãã¢ãŒããã¯ãã£ãèŠèŠçã«è¡šçŸãããã®ã§ãã
ã¢ãŒããã¯ãã£ã«ç¹å®ã®ååãããå Žåãããšãã°ããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã¯ç¹å®ã®ã¿ã€ãã®ãã€ã¯ããµãŒãã¹ã«ã®ã¿ã¢ã¯ã»ã¹ã§ãããã¹ãŠã§ã¯ãªãããªã©ãéä¿¡ã¢ãã«ãããå Žåã¯ãããããèªåçã«ãã§ãã¯ã§ããŸããåæ§ã«ããã€ã¯ããµãŒãã¹ãšããŒã¿ããŒã¹éã®ãªã³ã¯ãå¶åŸ¡ã§ããŸããããŒã¿ã¢ãã«ã®èšèšã«ç¹å®ã®ã«ãŒã«ãããŒãã«ã®åœåã«åãã«ãŒã«ãããå Žåã¯ãããããèªåçã«ãã§ãã¯ããããšãã§ããŸããéçºã§ã¯ãèªåã³ãŒããã§ãã¯ã䜿çšãããŸããã¢ãŒããã¯ãã£ã«ã€ããŠãåãããšãã§ããŸããã¢ãŒããã¯ãã£ã§èªåãã¹ããäœæã§ããŸãã
çµè«
çŸä»£ã®éçºè ã¯ãä»äºãç°¡åã«ããããã«å©çšã§ããé©ãã¹ãããŒã«ãå¹ åºãæã£ãŠããŸããéçºç°å¢ããã«ãã·ã¹ãã ãããŸããŸãªã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãµãŒãã¹ãšã³ã³ãããéçºè ã¯ã¡ã¢åž³ã§ã³ãŒããèšè¿°ããŸããã
ã¢ãŒããã¯ãã£ãã³ãŒãã§ãããã¢ãŒããã¯ãã£ãæäœããããã«ãå®è£ ãæäœããå Žåãšåãããã匷åã§è±å¯ãªããŒã«ãããããããŸãã䜿çšã§ããã¢ãŒããã¯ãã£ããŒã«ã¯GoogleDocsã ãã§ã¯ãªããæé«ã®ãã®ãšã¯ã»ã©é ããã®ã§ãããã¡ãããã¢ãŒããã¯ããçŸåšå©çšã§ããæ¢è£œã®ããŒã«ã®ç¯å²ã¯ãéçºè ããŒã«ã®ç¯å²ã»ã©åºãã¯ãããŸããããããŠã建ç¯å®¶ãæœåšçã«äœ¿çšã§ãããã¹ãŠãç®±ããåºããŠæ©èœããããã§ã¯ãããŸãããããã§ããç©äºã¯ããã»ã©æªãã¯ãããŸããã
SQLã®ããã«ãå€ãã®ããŒã«ãäœå幎ãåããååšããŠããã®ã§ãããããæ£ãã䜿çšããæ¹æ³ãåŠã¶å¿ èŠããããŸãã GraphQLãªã©ã®æ°ãããã¯ãããžãŒã泚ç®ãéãå§ããŠãããããžãã¹ãã¡ã€ã³ãèšè¿°ããã¿ã¹ã¯ããã¹ãã¬ãŒãžãã¡ã€ã³ãèšè¿°ããã®ãšåããããæ¥åžžçã«ãªãããšãæåŸ ããŠããŸãã Swaggerãå«ããã¢ããªã±ãŒã·ã§ã³æ§é ãšAPIã®ææžåãšèŠèŠåã®ããã®ããŒã«ãå©çšå¯èœã§ããå®è£ ããã¹ãããå Žåãšåããã¬ãŒã ã¯ãŒã¯ãšçµ±åããŒã«ã䜿çšããŠãã¢ãŒããã¯ãã£ããã¹ãã§ããŸãã
ã¢ãŒããã¯ãã£-宣èšçããããããææžãæ±ãäºåå±ã建ç¯å®¶ã®ä»äºããå®å šã«æ¶ããããšã¯æ±ºããŠãªãã§ããããããã§ã«ãã®éãå€§å¹ ã«æžããããšãã§ããŸããã¢ãŒããã¯ãã£ãã³ãŒãã§ãããæéã®çµéãšãšãã«ãã¢ãŒããã¯ãã£ã§äœæ¥ããããã«äœ¿çšã§ããããŒã«ã¯ãå®è£ ã§äœæ¥ããããã®ããŒã«ãšåããããé«åºŠã«ãªãå¯èœæ§ããããŸããæ§åãèŠããã
-
ããããªãŒMamonovã
Wrike
PSç§ã¯ãç§ã¯é¡ã£ãŠãç§ã¯ããªãå ·äœçãªçããäžããããšãã§ããå ã®å²åŠçãªè³ªåã®ãªã¹ããšèšäºãéå§ããŸãããå°ãªããšããããç§ã®èŠè§£ã§ããèšäºã®äžã§äœã圹ã«ç«ã€ãã®ãæ°ãããã®ãèŠã€ããŸãããïŒããªãèªèº«ã¯ãããã®è³ªåã«ã©ã®ããã«çããŸããïŒã³ã¡ã³ããæžããŠãã ããã