This commit improves the clarity and readability of the Japanese translation in README.ja.md. It addresses issues with indirectness and cognitive load, making the content easier to understand.
45 KiB
èªç¥è² è·ãããéèŠ
èªã¿ãããç | äžåœèªç¿»èš³ | éåœèªç¿»èš³ | ãã«ã³èªç¿»èš³ | æ¥æ¬èªç¿»èš³
ããã¯çããææžã§ãããæçµæŽæ°ã¯2025幎8æã§ããããªãã®è²¢ç®ãæè¿ããŸãïŒ
ã¯ããã«
äžã®äžã«ã¯å€ãã®ããºã¯ãŒãããã¹ããã©ã¯ãã£ã¹ããããŸããããã®ã»ãšãã©ãããŸããã£ãŠããŸãããç§ãã¡ã«ã¯ãã£ãšæ ¹æ¬çãªã誀ãããã®ãªããã®ãå¿ èŠã§ãã
ã³ãŒããèªãã§ããŠæ··ä¹±ãæããããšããããŸããæ··ä¹±ã¯æéãšãéãæ¶è²»ããŸããæ··ä¹±ã®åå ã¯é«ãèªç¥è² è·ã«ãããŸããããã¯æ±ºããŠæœè±¡è«ã§ã¯ãªãã人éã®æ ¹æ¬çå¶çŽãªã®ã§ããç§ãã¡ã¯ããã宿ã§ããŸãã
ã³ãŒããæžããããã³ãŒããèªãã§çè§£ããããšã«è²»ããæéã®ã»ããã¯ããã«é·ããããç§ãã¡ã¯åžžã«ãé床ã®èªç¥è² è·ãã³ãŒãã«åã蟌ãã§ããªãããèªåãã¹ãã§ãã
èªç¥è² è·
èªç¥è² è·ãšã¯ãéçºè ãã¿ã¹ã¯ãå®äºããããã«èããå¿ èŠãããéã®ããšã§ãã
ã³ãŒããèªããšãã倿°ã®å€ãå¶åŸ¡ãããŒããžãã¯ãåŒã³åºãã·ãŒã±ã³ã¹ãªã©ãé ã«ä¿æããŸããå¹³åçãªäººã¯ã¯ãŒãã³ã°ã¡ã¢ãªã«çŽ4ã€ã®ãã£ã³ã¯ãä¿æã§ããŸããèªç¥è² è·ããã®éŸå€ãè¶ ãããšãçè§£ãäžæ°ã«é£ãããªããŸãã
å®å šã«éŠŽæã¿ã®ãªããããžã§ã¯ãã«ãã°ä¿®æ£ãäŸé ŒããããšããŸãããããšãŠãè³¢ãéçºè ãè²¢ç®ããŠãããšèããããŸãããå€ãã®æŽç·Žãããã¢ãŒããã¯ãã£ããããããªã©ã€ãã©ãªãææ°ã®ãã¯ãããžãŒã䜿ãããŠããŸãããã€ãŸããèè ã¯ç§ãã¡ã«é«ãèªç¥è² è·ãäœãåºããŠããã®ã§ãã
ç§ãã¡ã¯ãããžã§ã¯ãã®èªç¥è² è·ãå¯èœãªéãæžããã¹ãã§ãã
èªç¥è² è·ã®çš®é¡
å åšç - ã¿ã¹ã¯ã®æ¬æ¥ã®é£æåºŠã«ãã£ãŠåŒãèµ·ããããŸããããã¯åæžã§ããããœãããŠã§ã¢éçºã®æ žå¿ã«ãããã®ã§ãã
å€åšç - æ å ±ã®æç€ºæ¹æ³ã«ãã£ãŠäœãåºãããŸããã¿ã¹ã¯ã«çŽæ¥é¢ä¿ããªãèŠå ãäŸãã°è³¢ãéçºè ã®ã¯ã»ã®ãããªãã®ã§åŒãèµ·ããããŸããå€§å¹ ã«åæžå¯èœã§ããç§ãã¡ã¯ãã®çš®ã®èªç¥è² è·ã«çŠç¹ãåœãŠãŸãã
å€åšçèªç¥è² è·ã®å ·äœçã§å®è·µçãªäŸã«ããã«é£ã³èŸŒã¿ãŸãããã
èªç¥è² è·ã®ã¬ãã«ã以äžã®ããã«è¡šèšããŸãïŒ
ð§ : æ°é®®ãªã¯ãŒãã³ã°ã¡ã¢ãªãèªç¥è² è·ãŒã
ð§ ++: ã¯ãŒãã³ã°ã¡ã¢ãªã«2ã€ã®äºå®ãèªç¥è² è·å¢å
ð€¯: èªç¥éè² è·ã4ã€ä»¥äžã®äºå®
ç§ãã¡ã®è³ã¯ã¯ããã«è€éã§æªæ¢çŽ¢ã§ããããã®åçŽåãããã¢ãã«ã§é²ããããšãã§ããŸãã
è€éãªæ¡ä»¶æ
if val > someConstant // ð§ +
&& (condition2 || condition3) // ð§ +++ãåã®æ¡ä»¶ãçã§ãc2ãc3ã®ãããããçã§ããå¿
èŠæ§
&& (condition4 && !condition5) { // ð€¯ããã®æç¹ã§çè§£ãç Žç¶»ããã¡
...
}
æå³ã®ããååãæã€äžé倿°ãå°å ¥ããŸãïŒ
isValid = val > someConstant
isAllowed = condition2 || condition3
isSecure = condition4 && !condition5
// ð§ ãèšè¿°çãªå€æ°ãããã®ã§ãæ¡ä»¶ãèŠããå¿
èŠããããŸãã
if isValid && isAllowed && isSecure {
...
}
ãã¹ãããifæ
if isValid { // ð§ +ããã¹ãããã³ãŒãã¯æå¹ãªå
¥åã«ã®ã¿é©çš
if isSecure { // ð§ ++ãæå¹ã§å®å
šãªå
¥åã«ã®ã¿åŠç
stuff // ð§ +++
}
}
æ©æãªã¿ãŒã³ãšæ¯èŒããŠã¿ãŸãããïŒ
if !isValid
return
if !isSecure
return
// ð§ ã以åã®ãªã¿ãŒã³ã¯æ°ã«ããŸãããããã«å°éãããšããããšã¯ããã¹ãŠãOK
stuff // ð§ +
ããããŒãã¹ïŒæ£åžžç³»ïŒã ãã«éäžã§ããã¯ãŒãã³ã°ã¡ã¢ãªãããããåææ¡ä»¶ããè§£æŸããŸãã
ç¶æ¿ã®æªå€¢
管çè
ãŠãŒã¶ãŒã®ããã«ããã€ãã®å€æŽãäŸé ŒãããŸããïŒð§
AdminController extends UserController extends GuestController extends BaseController
ãããæ©èœã®äžéšã¯BaseControllerã«ãããŸããèŠãŠã¿ãŸãããïŒð§ +
åºæ¬çãªåœ¹å²ã¡ã«ãã¯ã¹ãGuestControllerã§å°å
¥ãããŸããïŒð§ ++
UserControllerã§éšåçã«å€æŽãããŸããïŒð§ +++
ã€ãã«ããã«æ¥ãŸãããAdminControllerãã³ãŒãã£ã³ã°ããŸãããïŒð§ ++++
ãããåŸ
ã£ãŠãAdminControllerãç¶æ¿ããSuperuserControllerããããŸããAdminControllerã倿Žããããšã§ç¶æ¿ã¯ã©ã¹ã§åé¡ãèµ·ããå¯èœæ§ãããã®ã§ããŸãSuperuserControllerã調ã¹ãŸãããïŒð€¯
ç¶æ¿ããã³ã³ããžã·ã§ã³ïŒå§è²ïŒã奜ã¿ãŸãããã詳现ã¯å²æããŸãã - åèè³æã¯ãã¡ããå å®ããŠããŸãã
å°ããªã¡ãœãããã¯ã©ã¹ãã¢ãžã¥ãŒã«ãå€ããã
ãã®æèã§ã¯ãã¡ãœãããã¯ã©ã¹ãã¢ãžã¥ãŒã«ã¯äº€æå¯èœã§ã
ãã¡ãœããã¯15è¡æªæºã§ããã¹ããããã¯ã©ã¹ã¯å°ããããã¹ãããšãã£ãæ Œèšã¯ãããééã£ãŠããããšã倿ããŸããã
æ·±ãã¢ãžã¥ãŒã« - ã·ã³ãã«ãªã€ã³ã¿ãŒãã§ãŒã¹ãè€éãªæ©èœ æµ ãã¢ãžã¥ãŒã« - ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããå°ããªæ©èœã«å¯ŸããŠçžå¯Ÿçã«è€é
æµ ãã¢ãžã¥ãŒã«ãå€ããããšããããžã§ã¯ããçè§£ããã®ãå°é£ã«ãªãå¯èœæ§ããããŸããåã¢ãžã¥ãŒã«ã®è²¬ä»»ãé ã«çœ®ãã ãã§ãªããããããã¹ãŠã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãææ¡ããå¿ èŠããããŸããæµ ãã¢ãžã¥ãŒã«ã®ç®çãçè§£ããããã«ããŸããã¹ãŠã®é¢é£ã¢ãžã¥ãŒã«ã®æ©èœã調ã¹ãå¿ èŠããããŸãããã®ãããªæµ ãã³ã³ããŒãã³ãéããžã£ã³ãããã®ã¯ç²Ÿç¥çã«ç²ããŸãã人éã¯ç·åœ¢ã«èªãã®ãèªç¶ã§ãã
æ å ±é èœã¯æéèŠã§ãããæµ ãã¢ãžã¥ãŒã«ã§ã¯è€éæ§ãããã»ã©é ããŸããã
ç§ã«ã¯2ã€ã®ããããããžã§ã¯ãããããã©ã¡ããçŽ5,000è¡ã®ã³ãŒãã§ããæåã®ãããžã§ã¯ãã«ã¯80ã®æµ ãã¯ã©ã¹ãããã2çªç®ã®ãããžã§ã¯ãã«ã¯7ã€ã®æ·±ãã¯ã©ã¹ãããããŸããã§ããããããã®ãããžã§ã¯ãã®ã¡ã³ããã³ã¹ã1幎åããŠããŸããã§ããã
æ»ã£ãŠãããšããæåã®ãããžã§ã¯ãã®80ã®ã¯ã©ã¹éã®ãã¹ãŠã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãè§£ãã»ããã®ãéåžžã«å°é£ã§ããããšã«æ°ã¥ããŸãããã³ãŒãã£ã³ã°ãå§ããåã«ãèšå€§ãªèªç¥è² è·ãåæ§ç¯ããå¿ èŠããããŸãããäžæ¹ã2çªç®ã®ãããžã§ã¯ãã¯ãã·ã³ãã«ãªã€ã³ã¿ãŒãã§ãŒã¹ãæã€å°æ°ã®æ·±ãã¯ã©ã¹ãããªãã£ããããããã«ææ¡ã§ããŸããã
æé«ã®ã³ã³ããŒãã³ãã¯ã匷åãªæ©èœãæäŸããªããã·ã³ãã«ãªã€ã³ã¿ãŒãã§ãŒã¹ãæã€ãã®ã§ãã John K. Ousterhout
UNIX I/Oã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯éåžžã«ã·ã³ãã«ã§ããåºæ¬çãªåŒã³åºãã¯5ã€ã ãã§ãïŒ
open(path, flags, permissions)
read(fd, buffer, count)
write(fd, buffer, count)
lseek(fd, offset, referencePosition)
close(fd)
ãã®ã€ã³ã¿ãŒãã§ãŒã¹ã®çŸä»£çãªå®è£ ã¯æ°åäžè¡ã®ã³ãŒããæã¡ãŸããå€ãã®è€éæ§ãå éšã«é èœãããŠããŸããããããã·ã³ãã«ãªã€ã³ã¿ãŒãã§ãŒã¹ã®ãããã§äœ¿ããããã®ã§ãã
ãã®æ·±ãã¢ãžã¥ãŒã«ã®äŸã¯ãJohn K. Ousterhoutã®A Philosophy of Software DesignããåãããŸããããã®æ¬ã¯ãœãããŠã§ã¢éçºã«ãããè€éæ§ã®æ¬è³ªãã«ããŒããã ãã§ãªããParnasã®åœ±é¿åã®ããè«æOn the Criteria To Be Used in Decomposing Systems into Modulesã®æé«ã®è§£éãæäŸããŸããã©ã¡ããå¿ èªã§ããé¢é£èªã¿ç©ïŒA Philosophy of Software Design vs Clean CodeãIt's probably time to stop recommending Clean CodeãSmall Functions considered Harmfulã
P.S. 責任ãå€ãããè¥å€§åããGodãªããžã§ã¯ãïŒç¥ãªããžã§ã¯ãïŒãæ¯æããŠãããšæããããªããããã¯ééãã§ãã
äžã€ã®ããšã«è²¬ä»»ãæã€
ããŸãã«ããã°ãã°ãææ§ãªãã¢ãžã¥ãŒã«ã¯äžã€ã®ããããŠå¯äžã®äžã€ã®ããšã«è²¬ä»»ãæã€ã¹ããååã«åŸã£ãŠãå€ãã®æµ ãã¢ãžã¥ãŒã«ãäœãããšã«ãªããŸãããã®ãŒããããšãããäžã€ã®ããšããšã¯äœã§ããããïŒãªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹åããããšã¯äžã€ã®ããšã§ããããïŒã ããMetricsProviderFactoryFactoryã¯åé¡ãªãããã«èŠããŸãããã®ãããªã¯ã©ã¹ã®ååãšã€ã³ã¿ãŒãã§ãŒã¹ã¯ãå®è£ å šäœããã粟ç¥çã«è² è·ã倧ãããªãåŸåããããŸããããã¯ã©ã®ãããªæœè±¡åã§ããããïŒ äœããééã£ãŠããŸãã
ç§ãã¡ã¯ãŠãŒã¶ãŒãå©å®³é¢ä¿è ãæºè¶³ãããããã«ã·ã¹ãã ã倿ŽããŸããç§ãã¡ã¯åœŒãã«å¯ŸããŠè²¬ä»»ããããŸãã
ã¢ãžã¥ãŒã«ã¯äžã€ã®ããããŠå¯äžã®äžã€ã®ãŠãŒã¶ãŒãŸãã¯å©å®³é¢ä¿è ã«è²¬ä»»ãæã€ã¹ãã§ãã
ãããåäžè²¬ä»»ååã®æ¬è³ªã§ããç°¡åã«èšãã°ãäžç®æã«ãã°ãå°å ¥ããŠã2人ã®ç°ãªãããžãã¹é¢ä¿è ãèŠæ ãèšãã«æ¥ãå Žåãååã«éåããŠããŸããã¢ãžã¥ãŒã«ã§è¡ãããšã®æ°ãšã¯é¢ä¿ãããŸããã
ãããä»ã§ãããã®èŠåã¯å®³ãäžããå¯èœæ§ããããŸãããã®ååã¯åäººã®æ°ã ãç°ãªãæ¹æ³ã§çè§£ãããå¯èœæ§ããããŸããããè¯ãã¢ãããŒãã¯ããããã©ã®ãããã®èªç¥è² è·ãäœãåºãããèŠãããšã§ããäžç®æã§ã®å€æŽãç°ãªãããžãã¹é åéã§é£éåå¿ãåŒãèµ·ããå¯èœæ§ãããããšãèŠããŠããã®ã¯ã粟ç¥çã«è² è·ã倧ããã§ããããã ãã®ããšã§ãåŠã¶ã¹ãé£ããçšèªã¯ãããŸããã
æµ ããã€ã¯ããµãŒãã¹ãå€ããã
ãã®æµ ã-æ·±ãã¢ãžã¥ãŒã«ååã¯ã¹ã±ãŒã«ã«äŸåããããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãé©çšã§ããŸããæµ ããã€ã¯ããµãŒãã¹ãå€ãããã®ã¯è¯ããããŸãã - æ¥çã¯å€å°ããã¯ããµãŒãã¹ããã€ãŸãããã»ã©æµ ããªãïŒ=æ·±ãïŒãµãŒãã¹ã«åãã£ãŠããŸããææªã§ä¿®æ£ãå°é£ãªçŸè±¡ã®äžã€ã¯ããããã忣ã¢ããªã¹ã§ãããã¯ãã°ãã°ãã®é床ã«ç²åºŠã®çްããæµ ãåé¢ã®çµæã§ãã
ãã€ãŠã5人ã®éçºè
ããŒã ã17åïŒïŒïŒã®ãã€ã¯ããµãŒãã¹ãå°å
¥ããã¹ã¿ãŒãã¢ãããã³ã³ãµã«ãã£ã³ã°ããŸããã圌ãã¯10ã¶æã¹ã±ãžã¥ãŒã«ãé
ããŠããŠããããªãã¯ãªãªãŒã¹ã«ã¯çšé ãç¶æ
ã§ãããæ°ããèŠä»¶ã®ãã³ã«4ã€ä»¥äžã®ãã€ã¯ããµãŒãã¹ã§ã®å€æŽãå¿
èŠã§ããããã®ãããªåæ£ã·ã¹ãã ã§åé¡ãåçŸããããã°ããã«ã¯èšå€§ãªæéãããããŸãããåžå Žæå
¥æéãšèªç¥è² è·ã®äž¡æ¹ã蚱容ã§ããªãã»ã©é«ãã£ãã®ã§ããð€¯
ããã¯æ°ããã·ã¹ãã ã®äžç¢ºå®æ§ã«å¯Ÿããæ£ããã¢ãããŒãã§ããããïŒæåã«æ£ããè«ççå¢çãåŒãåºãããšã¯éåžžã«å°é£ã§ããéèŠãªã®ã¯ãæ å ±ãæãå€ãæç¹ãŸã§è²¬ä»»ãæã£ãŠåŸ ãŠãã ãæ±ºå®ãé ãããããšã§ããæåã«ãããã¯ãŒã¯å±€ãå°å ¥ããããšã§ãæåããèšèšæ±ºå®ãå ã«æ»ãã®ãå°é£ã«ããŠããŸããããŒã ã®å¯äžã®æ£åœåã¯ïŒãFAANGäŒæ¥ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã广çã§ããããšã蚌æãããã§ãããçŸå®ã«ç«ã¡è¿ããŸãããã
Tanenbaum-Torvaldsèšè«ã§ã¯ãLinuxã®ã¢ããªã·ãã¯èšèšãæ¬ é¥ãããæä»£é ãã§ããã代ããã«ãã€ã¯ãã«ãŒãã«ã¢ãŒããã¯ãã£ã䜿ãã¹ãã ãšäž»åŒµãããŸããã確ãã«ããã€ã¯ãã«ãŒãã«èšèšã¯ãçè«çã§çŸçãªã芳ç¹ããåªããŠããããã«èŠããŸãããå®çšçãªåŽé¢ã§ã¯ââ30幎çµã£ãä»ããã€ã¯ãã«ãŒãã«ããŒã¹ã®GNU Hurdã¯ãŸã éçºäžã§ãã¢ããªã·ãã¯ãªLinuxãè³ãæã§äœ¿ãããŠããŸãããã®ããŒãžã¯Linuxã§åããŠãããããªãã®ã¹ããŒããã£ãŒããããLinuxã§åããŠããŸããã¢ããªã·ãã¯ãªLinuxã§ã
æ¬åœã«åé¢ãããã¢ãžã¥ãŒã«ãæã€è¯ãäœãããã¢ããªã¹ã¯ãå€ãã®ãã€ã¯ããµãŒãã¹ãããã¯ããã«æè»ã§ããããšãå€ãã§ãããŸããç¶æããã®ã«å¿ èŠãªèªç¥çåªåãã¯ããã«å°ãªããªããŸããéçºããŒã ã®ã¹ã±ãŒãªã³ã°ãªã©ãå¥ã ã®ãããã€ã¡ã³ãã®å¿ èŠæ§ãéèŠã«ãªã£ãå Žåã«ã®ã¿ãã¢ãžã¥ãŒã«éãå°æ¥ã®ãã€ã¯ããµãŒãã¹éã«ãããã¯ãŒã¯å±€ã远å ããããšãæ€èšãã¹ãã§ãã
æ©èœè±å¯ãªèšèª
ãæ°ã«å ¥ãã®èšèªã§æ°æ©èœããªãªãŒã¹ããããšã¯ã¯ã¯ã¯ããŸãããããã®æ©èœãåŠã¶ã®ã«æéãè²»ããããã®äžã«ã³ãŒããæ§ç¯ããŸãã
å€ãã®æ©èœãããå Žåãæ°è¡ã®ã³ãŒããæžãã®ã«30åãè²»ãããŠãããæ©èœã䜿ããå¥ã®æ©èœã䜿ãããèãããããããŸãããããã¯æéã®ç¡é§ã§ãããããããã£ãšæªãããšã«ãåŸã§æ»ã£ãŠãããšãã«ããã®æèããã»ã¹ãåçŸããå¿ èŠããããŸãïŒ
ãã®è€éãªããã°ã©ã ãçè§£ããã ãã§ãªããå©çšå¯èœãªæ©èœããåé¡ã«ã¢ãããŒããããã®æ¹æ³ãããã°ã©ããŒããªã決å®ããã®ããçè§£ããå¿
èŠããããŸãã ð€¯
ãããã®çºèšã¯ä»ãªãã¬Rob Pikeã«ãããã®ã§ãã
éžæè¢ã®æ°ãå¶éããŠèªç¥è² è·ãæžããã
èšèªæ©èœã¯ããäºãã«çŽäº€ããŠããéãåé¡ãããŸããã
20幎ã®C++çµéšãæã€ãšã³ãžãã¢ããã®èã âïž
å æ¥RSSãªãŒããŒãèŠãŠãããšããC++ãã¿ã°ã®äžã«æªèªèšäºãçŽ300åããããšã«æ°ã¥ããŸãããæšå¹Žã®å€ä»¥éããã®èšèªã«ã€ããŠã®èšäºãäžã€ãèªãã§ããããæ°åã¯è¯å¥œã§ãïŒ
ç§ã¯20幎éC++ã䜿ã£ãŠãããããã¯äººçã®çŽ3åã®2ã§ããç§ã®çµéšã®å€§éšåã¯ãèšèªã®æãæãéšåïŒããããçš®é¡ã®æªå®çŸ©åäœãªã©ïŒãæ±ãããšã«ãããŸããããã¯åå©çšå¯èœãªçµéšã§ã¯ãªããä»ããããã¹ãŠæšãŠãã®ã¯ã¡ãã£ãšäžæ°å³ã§ãã
äŸãã°ãããŒã¯ã³
||ãrequires ((!P<T> || !Q<T>))ãšrequires (!(P<T> || Q<T>))ã§ç°ãªãæå³ãæã€ããšãæ³åã§ããŸãããæåã¯å¶çŽåé¢ã2çªç®ã¯æãªããã®è«çORæŒç®åã§ããããã¯ç°ãªãåäœãããŸããèªæãªåã®ããã®ã¹ããŒã¹ãå²ãåœãŠãããã«äžé£ã®ãã€ãã
memcpyããã ãã§ã¯ã远å ã®åªåãªãã«ã¯ãªããžã§ã¯ãã®çåæéãéå§ã§ããŸãããããã¯C++20以åã®å Žåã§ãããC++20ã§ä¿®æ£ãããŸããããèšèªã®èªç¥è² è·ã¯å¢å ããã ãã§ããç©äºãä¿®æ£ãããŠãèªç¥è² è·ã¯åžžã«å¢å ããŠããŸããç§ã¯ãããšããŠãäœãä¿®æ£ããããããã€ä¿®æ£ããããã以åã¯ã©ãã ã£ãããç¥ã£ãŠããå¿ èŠããããŸãã確ãã«ãC++ã¯ã¬ã¬ã·ãŒãµããŒããåŸæã§ãããã¯ããªãããã®ã¬ã¬ã·ãŒã«çŽé¢ããããšãæå³ããŸããäŸãã°ãå æååãC++03ã§ã®ããåäœã«ã€ããŠå°ããŸããã
ð€¯åæåã®æ¹æ³ã¯20éããããŸãããçµ±äžåæåæ§æã远å ãããŸãããä»ã¯21éãã®åæåæ¹æ³ããããŸãããšããã§ãåæåãªã¹ãããã³ã³ã¹ãã©ã¯ã¿ãéžæããèŠåãèŠããŠããŸããïŒæ å ±ã®æå€±ãæå°ã®æé»å€æã«ã€ããŠã®ãã®ã§ããããå€ãéçã«åãã£ãŠããå Žåã¯ããããã...
ð€¯ãã®å¢å ããèªç¥è² è·ã¯ãæå ã®ããžãã¹ã¿ã¹ã¯ã«ãããã®ã§ã¯ãããŸãããããã¯ãã¡ã€ã³ã®æ¬è³ªçãªè€éæ§ã§ã¯ãããŸãããæŽå²çãªçç±ã§ååšããŠããã ãã§ãïŒå€åšçèªç¥è² è·ïŒã
ç§ã¯ããã€ãã®ã«ãŒã«ã決ããå¿ èŠããããŸãããäŸãã°ããã®ã³ãŒãè¡ãæããã§ãªããæšæºãèŠããªããã°ãªããªãå Žåã¯ããã®ããã«æžããªãã»ããè¯ãã§ããã¡ãªã¿ã«ãæšæºã¯çŽ1500ããŒãžã®é·ãã§ãã
決ããŠC++ãéé£ããããšããŠããã®ã§ã¯ãããŸãããç§ã¯ãã®èšèªãæããŠããŸãããã ãä»ã¯ç²ããŠããã®ã§ãã
0xd34df00dã«å·çããŠããã ããããããšãããããŸãã
ããžãã¹ããžãã¯ãšHTTPã¹ããŒã¿ã¹ã³ãŒã
ããã¯ãšã³ãã§ä»¥äžãè¿ããŸãïŒ
401 æéåãJWTããŒã¯ã³ã®å Žå
403 ã¢ã¯ã»ã¹æš©éäžè¶³ã®å Žå
418 å©çšåæ¢äžã®ãŠãŒã¶ãŒã®å Žå
ããã³ããšã³ãã®ãšã³ãžãã¢ã¯ãããã¯ãšã³ãAPIã䜿çšããŠãã°ã€ã³æ©èœãå®è£
ããŸãã圌ãã¯äžæçã«ä»¥äžã®èªç¥è² è·ãé ã®äžã«ä¿æããªããã°ãªããŸããïŒ
401ã¯æéåãJWTããŒã¯ã³ã®å Žå // ð§ +ãäžæçã«èŠããŠãã
403ã¯ã¢ã¯ã»ã¹æš©éäžè¶³ã®å Žå // ð§ ++
418ã¯å©çšåæ¢äžã®ãŠãŒã¶ãŒã®å Žå // ð§ +++
ããã³ããšã³ãéçºè
ã¯ïŒé¡ããã°ïŒåœŒãã®åŽã§äœããã®æ°å€ã¹ããŒã¿ã¹ â æå³èŸæžãå°å
¥ããåŸç¶ã®è²¢ç®è
äžä»£ããã®ãããã³ã°ãé ã®äžã§åæ§ç¯ããå¿
èŠããªãããã«ããã§ãããã
ããããQAãšã³ãžãã¢ãç»å ŽããŸãïŒ
ãããã403ã¹ããŒã¿ã¹ãåãåã£ããã©ãããã¯æéåãããŒã¯ã³ãªã®ããããšãã¢ã¯ã»ã¹æš©éäžè¶³ãªã®ïŒã
QAãšã³ãžãã¢ã¯ãããã¯ãšã³ãã®ãšã³ãžãã¢ããã€ãŠäœæããèªç¥è² è·ãåæ§ç¯ããªããã°ãªããªãã®ã§ãããã«ãã¹ãã«é£ã³èŸŒãããšãã§ããŸããã
ãªããã®ã«ã¹ã¿ã ãããã³ã°ãã¯ãŒãã³ã°ã¡ã¢ãªã«ä¿æããã®ã§ããããïŒããžãã¹è©³çްãHTTP転éãããã³ã«ããæœè±¡åããã¬ã¹ãã³ã¹ããã£ã«èªå·±èšè¿°çãªã³ãŒããçŽæ¥è¿ãã»ããè¯ãã§ãïŒ
{
"code": "jwt_has_expired"
}
ããã³ããšã³ãåŽã®èªç¥è² è·ïŒð§ ïŒæ°é®®ãé ã«ä¿æãããäºå®ãªãïŒ
QAåŽã®èªç¥è² è·ïŒð§
åãèŠåãããããæ°å€ã¹ããŒã¿ã¹ïŒããŒã¿ããŒã¹ããã®ä»ã®å ŽæïŒã«é©çšãããŸã - èªå·±èšè¿°çãªæååã奜ã¿ãŸããããã¡ã¢ãªãæé©åããããã®640Kã³ã³ãã¥ãŒã¿ãŒã®æä»£ã§ã¯ãããŸããã
人ã ã¯
401ãš403ã®éã§è°è«ããèªåã®å¿çã¢ãã«ã«åºã¥ããŠæ±ºå®ãäžãã®ã«æéãè²»ãããŸããæ°ããéçºè ãå ¥ã£ãŠããŠããã®æèããã»ã¹ãåæ§ç¯ããå¿ èŠããããŸããã³ãŒãã®ããªããïŒADRïŒãææžåããŠãæ°åè ãäžãããæ±ºå®ãçè§£ã§ããããã«ããŠãããããããŸããããããçµå±ã®ãšãããããã¯å šãæå³ããªããŸããããšã©ãŒããŠãŒã¶ãŒé¢é£ãŸãã¯ãµãŒããŒé¢é£ã«åé¢ããããšã¯ã§ããŸããããã以å€ã¯ç©äºããŒãããŠããŸãã
P.S. ãèªèšŒããšãèªå¯ããåºå¥ããã®ã¯ãã°ãã°ç²Ÿç¥çã«è² è·ã倧ããã§ããèªç¥è² è·ãæžããããã«ãããã°ã€ã³ããšãæš©éãã®ãããªããç°¡åãªçšèªã䜿ãããšãã§ããŸãã
DRYååã®ä¹±çš
Don't repeat yourselfïŒèªåãç¹°ãè¿ããªïŒ - ããã¯ãœãããŠã§ã¢ãšã³ãžãã¢ãšããŠæããæåã®ååã®äžã€ã§ããããã¯ç§ãã¡èªèº«ã«æ·±ãåã蟌ãŸããŠãããæ°è¡ã®äœåãªã³ãŒãã®ååšã«èããããŸãããäžè¬çã«ã¯è¯ãåºæ¬çãªèŠåã§ããã䜿ãããããšç§ãã¡ãåŠçã§ããªãèªç¥è² è·ã«ã€ãªãããŸãã
仿¥ã§ã¯ã誰ããè«ççã«åé¢ãããã³ã³ããŒãã³ãã«åºã¥ããŠãœãããŠã§ã¢ãæ§ç¯ããŠããŸããå€ãã®å Žåããããã¯å¥ã
ã®ãµãŒãã¹ã衚ãè€æ°ã®ã³ãŒãããŒã¹ã«åæ£ãããŠããŸããããããç¹°ãè¿ããæé€ããããšåªåãããšãé¢é£ã®ãªãã³ã³ããŒãã³ãéã§å¯çµåãäœãåºãããšã«ãªããããããŸãããçµæãšããŠãäžéšã®å€æŽã¯ä»ã®äžèŠé¢ä¿ã®ãªãé åã§äºæããªãçµæãããããå¯èœæ§ããããŸãããŸããã·ã¹ãã å
šäœã«åœ±é¿ãäžããããšãªãåã
ã®ã³ã³ããŒãã³ãã眮ãæããã倿Žãããããèœåã劚ããããšããããŸããð€¯
å®éãåãåé¡ã¯åäžã®ã¢ãžã¥ãŒã«å ã§ãçºçããŸããé·æçã«å®éã«ã¯ååšããªããããããªãèªèãããé¡äŒŒæ§ã«åºã¥ããŠãå ±éæ©èœãæ©ãããæ®µéã§æœåºãããããããŸãããããã¯å€æŽãæ¡åŒµãå°é£ãªäžèŠãªæœè±¡åãããããå¯èœæ§ããããŸãã
Rob Pikeã¯ãã€ãŠèšããŸããïŒ
å°ãã®äŸåãããå°ãã®ã³ããŒã®ã»ããè¯ãã
è»èŒªãåçºæããªãããšã«åŒ·ãæããããç§ãã¡èªèº«ã§ç°¡åã«æžãããããªå°ããªé¢æ°ã䜿ãããã«å€§ãããŠéãã©ã€ãã©ãªãã€ã³ããŒãããã¡ã§ãã
ãã¹ãŠã®äŸåé¢ä¿ã¯å®è³ªçã«ãããªãã®ã³ãŒããã§ãã ã€ã³ããŒããããã©ã€ãã©ãªã®10以äžã®ã¬ãã«ã®ã¹ã¿ãã¯ãã¬ãŒã¹ãéããŠäœãæªãã£ãããææ¡ããïŒç©äºã¯æªåããããïŒã®ã¯èŠçã§ãã
ãã¬ãŒã ã¯ãŒã¯ãšã®å¯çµå
ãã¬ãŒã ã¯ãŒã¯ã«ã¯å€ãã®ãéæ³ãããããŸãããã¬ãŒã ã¯ãŒã¯ã«é床ã«äŸåããããšã§ããã¹ãŠã®ä»åŸã®éçºè ã«ãã®ãéæ³ããæåã«åŠã°ããããšã匷å¶ããŸããããã«ã¯æ°ã¶æãããããšããããŸãããã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠæ°æ¥ã§MVPãèµ·åã§ããŸãããé·æçã«ã¯ãããã¯äžèŠãªè€éæ§ãšèªç¥è² è·ã远å ããåŸåããããŸãã
ããã«æªãããšã«ãããæç¹ã§ãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ãŒããã¯ãã£ã«åããªãæ°ããèŠä»¶ã«çŽé¢ãããšãã«é倧ãªå¶çŽãšãªãå¯èœæ§ããããŸãããããã人ã
ã¯ãã¬ãŒã ã¯ãŒã¯ããã©ãŒã¯ããŠç¬èªã®ã«ã¹ã¿ã çãç¶æããããšã«ãªããŸããæ°åè
ã䟡å€ãæäŸããããã«ã©ã®ãããã®èªç¥è² è·ãæ§ç¯ïŒã€ãŸãããã®ã«ã¹ã¿ã ãã¬ãŒã ã¯ãŒã¯ãåŠç¿ïŒããå¿
èŠããããæ³åããŠã¿ãŠãã ãããð€¯
決ããŠãã¹ãŠããŒãããçºæããããšãæå±ããŠããã®ã§ã¯ãããŸããïŒ
ç§ãã¡ã¯å€å°ãã¬ãŒã ã¯ãŒã¯ã«äŸåããªãæ¹æ³ã§ã³ãŒããæžãããšãã§ããŸããããžãã¹ããžãã¯ã¯ãã¬ãŒã ã¯ãŒã¯å ã«ååšãã¹ãã§ã¯ãããŸããããããããã¬ãŒã ã¯ãŒã¯ã®ã³ã³ããŒãã³ãã䜿çšãã¹ãã§ãããã¬ãŒã ã¯ãŒã¯ãã³ã¢ããžãã¯ã®å€åŽã«çœ®ããŸãããã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã®ãããªæ¹æ³ã§äœ¿çšããŸããããã«ãããæ°ããè²¢ç®è ã¯ãŸããã¬ãŒã ã¯ãŒã¯é¢é£ã®è€éæ§ã®å±€ããããããå¿ èŠãªãã«ã忥ãã䟡å€ã远å ã§ããããã«ãªããŸãã
ã¬ã€ã€ãŒãã¢ãŒããã¯ãã£
ãããããšã³ãžãã¢ãªã³ã°ã®ãã¹ãŠã«ãããçš®ã®è奮ããããŸãã
ç§èªèº«ãäœå¹ŽããããµãŽãã«/ãªããªã³ã¢ãŒããã¯ãã£ã®æ
ç±çãªæå±è
ã§ããããã¡ãã¡ã§äœ¿çšããä»ã®ããŒã ã«ãå§ããŸããããããžã§ã¯ãã®è€éæ§ãäžããããã¡ã€ã«æ°ã ãã§ãåå¢ããŸãããå€ãã®ã°ã«ãŒã³ãŒããæžããŠããããã«æããŸãããçµ¶ãéãªãå€åããèŠä»¶ã«å¯ŸããŠãè€æ°ã®æœè±¡åã¬ã€ã€ãŒã«ããã£ãŠå€æŽãè¡ãå¿
èŠããããçµå±ããã¯ãã¹ãŠé¢åã«ãªããŸãããð€¯
æœè±¡åã¯è€éæ§ãé ãããšã«ãªã£ãŠããŸãããããã§ã¯ãã 鿥æ§ã远å ããŠããã ãã§ããäœãæªããŠäœãæ¬ ããŠããããææ¡ããããã«ãåŒã³åºãããåŒã³åºããžãšãžã£ã³ãããªããã°ãªããªãã®ã¯ãåé¡ãè¿
éã«è§£æ±ºããäžã§éèŠã§ãããªãããè² æ
ã倧ããã§ãããã®ã¢ãŒããã¯ãã£ã®ã¬ã€ã€ãŒåé¢ã§ã¯ãé害ãçºçãããã€ã³ãã«ãã©ãçãããã«äœèšãªæéãææ°é¢æ°çã«å¢ãããã¬ãŒã¹ãæççã«ãªããã¡ã§ãããã®ãããªãã¬ãŒã¹ã¯ãããããç§ãã¡ã®éãããã¯ãŒãã³ã°ã¡ã¢ãªã®ã¹ããŒã¹ãå æããŸããð€¯
ãã®ã¢ãŒããã¯ãã£ã¯æåã¯çŽæçã«çã«ããªã£ãŠããããã«èŠããŸãããããããžã§ã¯ãã«é©çšããããšãããã³ã«ãè¯ãããšãããã¯ããã«å®³ããªããŸãããæçµçã«ãå€ãè¯ãäŸåé¢ä¿é転åå(DIP)ãæ¯æããŠããã¹ãŠã諊ããŸãããåŠã¶ã¹ãããŒããã¢ããã¿ãŒãäžèŠãªæ°Žå¹³æœè±¡åãå€åšçèªç¥è² è·ããããã¯å¿ èŠãããŸãã
ãã®ãããªéå±€åã«ãã£ãŠããŒã¿ããŒã¹ãä»ã®äŸåé¢ä¿ãè¿ éã«çœ®ãæããããšãã§ãããšæããªããããã¯ééãã§ããã¹ãã¬ãŒãžã倿Žãããšå€ãã®åé¡ãçºçããä¿¡ããŠãã ãããããŒã¿ã¢ã¯ã»ã¹å±€ã«ããã€ãã®æœè±¡åãæã€ããšã¯æå°ã®å¿é äºã§ãããããããæœè±¡åã¯ç§»è¡æéã®çŽ10ïŒ ïŒããããã°ïŒãç¯çŽã§ããŸãããå®éã®çã¿ã¯ããŒã¿ã¢ãã«ã®éäºææ§ãéä¿¡ãããã³ã«ã忣ã·ã¹ãã ã®èª²é¡ããããŠæé»ã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ãããŸãã
APIã®ååãªãŠãŒã¶ãŒæ°ãããã°ã å¥çŽã§äœãçŽæããããšé¢ä¿ãããŸããïŒ ã·ã¹ãã ã®ãã¹ãŠã®èгå¯å¯èœãªåäœã 誰ãã«ãã£ãŠäŸåãããŸãã
ç§ãã¡ã¯ã¹ãã¬ãŒãžç§»è¡ãè¡ããçŽ10ã¶æããããŸãããå€ãã·ã¹ãã ã¯ã·ã³ã°ã«ã¹ã¬ããã ã£ãã®ã§ãå ¬éãããã€ãã³ãã¯é 次ã§ãããç§ãã¡ã®ãã¹ãŠã®ã·ã¹ãã ããã®èгå¯ãããåäœã«äŸåããŠããŸããããã®åäœã¯APIã³ã³ãã©ã¯ãã®äžéšã§ã¯ãªããã³ãŒãã«åæ ãããŠããŸããã§ãããæ°ãã忣ã¹ãã¬ãŒãžã«ã¯ãã®ä¿èšŒããããŸããã§ãã - ã€ãã³ãã¯é äžåã§æ¥ãŸãããæœè±¡åã®ãããã§ãæ°ããã¹ãã¬ãŒãžã¢ããã¿ãŒã®ã³ãŒãã£ã³ã°ã«ã¯æ°æéããããããŸããã§ãããé äžåã€ãã³ãããã®ä»ã®èª²é¡ãžã®å¯ŸåŠã«æ¬¡ã®10ã¶æãè²»ãããŸããã æœè±¡åãã³ã³ããŒãã³ããè¿ éã«çœ®ãæããå©ãã«ãªããšããã®ã¯ä»ã§ã¯é¢çœãããšã§ãã
ã§ã¯ããã®ãããªã¬ã€ã€ãŒãã¢ãŒããã¯ãã£ã®é«ãèªç¥è² è·ã®ä»£äŸ¡ãæ¯æãã®ã¯ãªãã§ããããããããå°æ¥å ±ãããªãã®ã§ããã°ïŒ ããã«ãã»ãšãã©ã®å Žåãããã€ãã®ã³ã¢ã³ã³ããŒãã³ãã眮ãæãããã®æªæ¥ã¯æ±ºããŠèµ·ãããŸããã
ãããã®ã¢ãŒããã¯ãã£ã¯åºæ¬çã§ã¯ãªããããåºæ¬çãªååã®äž»èгçã§åã£ãçµæã«ãããŸããããªããããã®äž»èгçãªè§£éã«äŸåããã®ã§ããããïŒä»£ããã«åºæ¬çãªèŠåã«åŸããŸãããïŒäŸåé¢ä¿é転ååãåäžã®çå®ã®æºãèªç¥è² è·ãæ å ±é èœãç§ãã¡ã®ããžãã¹ããžãã¯ã¯ãããŒã¿ããŒã¹ãUIããã¬ãŒã ã¯ãŒã¯ãªã©ã®äœã¬ãã«ã¢ãžã¥ãŒã«ã«äŸåãã¹ãã§ã¯ãããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ãå¿é ããããšãªãã³ã¢ããžãã¯ã®ãã¹ããæžããã¹ãã§ãããã ãã§ããè°è«ã
ã¢ãŒããã¯ãã£ã®ããã«æœè±¡åã¬ã€ã€ãŒã远å ããŠã¯ãããŸãããå®çšçãªçç±ã§æ£åœåãããæ¡åŒµãã€ã³ããå¿ èŠãªãšãã«ãããã远å ããŸãããã
æœè±¡åã¬ã€ã€ãŒã¯ç¡æã§ã¯ãããŸããããããã¯ç§ãã¡ã®éãããã¯ãŒãã³ã°ã¡ã¢ãªã«ä¿æãããå¿ èŠããããŸãã
ãã¡ã€ã³é§åèšèš
ãã¡ã€ã³é§åèšèšã«ã¯ããã€ãã®çŽ æŽããããã€ã³ãããããŸããããã°ãã°èª€è§£ãããŠããŸãã人ã ã¯ãç§ãã¡ã¯DDDã§ã³ãŒããæžãããšèšããŸãããããã¯å°ãå¥åŠã§ãããªããªãDDDã¯ãœãªã¥ãŒã·ã§ã³ç©ºéãããåé¡ç©ºéã«é¢ãããã®ã ããã§ãã
ãŠããã¿ã¹èšèªããã¡ã€ã³ãå¢çã¥ããããã³ã³ããã¹ããéçŽãã€ãã³ãã¹ããŒãã³ã°ã¯ãã¹ãŠåé¡ç©ºéã«é¢ãããã®ã§ãããããã¯ãã¡ã€ã³ã«ã€ããŠã®æŽå¯ãåŠã³ãå¢çãæœåºããã®ãå©ããããšãæå³ããŠããŸããDDDã¯éçºè ããã¡ã€ã³ãšãã¹ããŒããããžãã¹é¢ä¿è ãåäžã®çµ±äžãããèšèªã䜿ã£ãŠå¹æçã«ã³ãã¥ãã±ãŒã·ã§ã³ãåãããšãå¯èœã«ããŸããDDDã®ãããã®åé¡ç©ºéã®åŽé¢ã«çŠç¹ãåœãŠã代ããã«ãç§ãã¡ã¯ç¹å®ã®ãã©ã«ãæ§é ããµãŒãã¹ããªããžããªããã®ä»ã®ãœãªã¥ãŒã·ã§ã³ç©ºéæè¡ã匷調ããåŸåããããŸãã
ç§ãã¡ãDDDãè§£éããæ¹æ³ãç¬ç¹ã§äž»èгçã§ããå¯èœæ§ããããŸãããããŠããã®çè§£ã®äžã«ã³ãŒããæ§ç¯ããå Žåãã€ãŸããå€ãã®å€åšçèªç¥è² è·ãäœãåºãå Žå - å°æ¥ã®éçºè
ã¯éåœã¥ããããŠããŸããð€¯
Team Topologiesã¯ãèªç¥è² è·ãããŒã éã§åå²ããã®ã«åœ¹ç«ã€ã¯ããã«è¯ããçè§£ãããããã¬ãŒã ã¯ãŒã¯ãæäŸããŸãããšã³ãžãã¢ã¯Team Topologiesã«ã€ããŠåŠãã åŸãå€å°äŒŒããããªå¿çã¢ãã«ãéçºããåŸåããããŸããäžæ¹ãDDDã¯10人ã®ç°ãªãèªè ã«å¯ŸããŠ10ã®ç°ãªãå¿çã¢ãã«ãäœãåºãããã«èŠããŸããå ±éã®åºç€ã«ãªã代ããã«ãäžèŠãªè°è«ã®æŠå Žã«ãªããŸãã
銎æã¿ã®ãããããžã§ã¯ãã§ã®èªç¥è² è·
åé¡ã¯ã銎æã¿ããããåçŽããšåãã§ã¯ãªãããšã§ãããããã¯åãããã«æããŸã - åããããªç²Ÿç¥çåªåãªãã«ç©ºéãç§»åãããã®åã容æã - ãããéåžžã«ç°ãªãçç±ã«ãããã®ã§ããããªãã䜿çšãããã¹ãŠã®ãè³¢ããïŒèªãïŒãèªå·±æºè¶³çãªãïŒã§éæ £çšçãªããªãã¯ã¯ãä»ã®ãã¹ãŠã®äººã«åŠç¿ããã«ãã£ã課ããŸãã圌ãããã®åŠç¿ãè¡ããšãã³ãŒããæ±ãã®ãå°é£ã§ãªããªããŸããã ããããã§ã«éŠŽæã¿ã®ããã³ãŒããç°¡æœã«ããæ¹æ³ãèªèããã®ã¯å°é£ã§ãããããç§ããæ°äººãã«ããŸãã«ãå¶åºŠåãããåã«ã³ãŒããæ¹è©ããŠãããããã«ããçç±ã§ãïŒ
åã®èè ããã®å·šå€§ãªæ··ä¹±ãäžåºŠã«ã§ã¯ãªããäžã€ã®å°ããªå¢åãã€äœãåºããå¯èœæ§ããããŸããã ãããããªããäžåºŠã«ãã¹ãŠãçè§£ããããšããæåã®äººãªã®ã§ãã
ç§ã®ã¯ã©ã¹ã§ã¯ãããæ¥èŠãŠããåºããã®ããSQLæ ŒçŽããã·ãŒãžã£ã説æããŸãã巚倧ãªWHEREå¥ã«äœçŸè¡ã®æ¡ä»¶æããããŸããã誰ããã©ãããŠãããªã«ã²ã©ããªãã®ãèš±ããã®ããšå°ããŸãããç§ã¯åœŒãã«èšããŸããïŒã2ã€ã3ã€ã®æ¡ä»¶ãããªããšãã«ãããäžã€è¿œå ããŠãã©ããªéããçã¿ãŸããã20ã30ã®æ¡ä»¶ããããšãã«ãããäžã€è¿œå ããŠãã©ããªéããçã¿ãŸããïŒã
ããªããè¡ãæå³çãªéžæä»¥å€ã«ãã³ãŒãããŒã¹ã«äœçšãããç°¡çŽ ååãã¯ãããŸãããç°¡çŽ åã«ã¯åªåãå¿ èŠã§ã人ã ã¯ããŸãã«ããã°ãã°æ¥ãã§ããŸãã
Dan Northã®ã³ã¡ã³ãã«æè¬ã
ãããžã§ã¯ãã®å¿çã¢ãã«ãé·æèšæ¶ã«å åšåããŠããã°ãé«ãèªç¥è² è·ãçµéšããããšã¯ãªãã§ãããã
åŠã¶ã¹ãå¿çã¢ãã«ãå€ãã»ã©ãæ°ããéçºè ã䟡å€ãæäŸããã®ã«æéãããããŸãã
ãããžã§ã¯ãã«æ°ãã人ããªã³ããŒããããšãã¯ã圌ããæã€æ··ä¹±ã®éãæž¬å®ããŠã¿ãŠãã ããïŒãã¢ããã°ã©ãã³ã°ã圹ç«ã€ãããããŸããïŒã40å以äžé£ç¶ããŠæ··ä¹±ããŠããå Žå - ã³ãŒãã§æ¹åãã¹ãããšããããŸãã
èªç¥è² è·ãäœãä¿ãŠã°ã人ã ã¯äŒç€Ÿã«åå ããŠããæåã®æ°æé以å ã«ã³ãŒãããŒã¹ã«è²¢ç®ã§ããŸãã
äŸ
- ç§ãã¡ã®ã¢ãŒããã¯ãã£ã¯æšæºçãªCRUDã¢ããªã¢ãŒããã¯ãã£ãPostgreSQLã®äžã®Pythonã¢ããªã¹
- Instagramãããã3人ã®ãšã³ãžãã¢ã§1400äžãŠãŒã¶ãŒãŸã§ã¹ã±ãŒã«ããæ¹æ³
- ç§ãã¡ãããããããã®äººãã¡ã¯ãã¡ããã¡ãè³¢ãããšæã£ãäŒæ¥ã®å€§éšåã¯å€±æãã
- ã·ã¹ãã å šäœãé ç·ããäžã€ã®é¢æ°ãã·ã¹ãã ãã©ã®ããã«åäœããããç¥ããããªã - ãããèªã¿ã«è¡ã
ãããã®ã¢ãŒããã¯ãã£ã¯éåžžã«éå±ã§çè§£ããããã§ãã誰ã§ã倧ããªç²Ÿç¥çåªåãªãã«ããããææ¡ã§ããŸãã
ã¢ãŒããã¯ãã£ã¬ãã¥ãŒã«ãžã¥ãã¢éçºè ãé¢äžãããŸãããã圌ãã¯ç²Ÿç¥çã«è² è·ã®å€§ããé åãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
ãœãããŠã§ã¢ã®ç¶æã¯å°é£ã§ããç©äºã¯å£ããç¯çŽã§ãããã¹ãŠã®ç²Ÿç¥çåªåãå¿ èŠã«ãªããŸãã
çµè«
ã¡ãã£ãšæ³åããŠã¿ãŠãã ããããã第2ç« ã§æšè«ããããšãå®ã¯æ£ãããªãã£ããšãããã©ããªãã§ãããïŒ ãã®å ŽåãããŸåŠå®ããçµè«ã ãã§ãªãããããŸã§æ£ãããšåãå ¥ããŠããåç« ã®çµè«ãŸã§ããæ£ãããªããããããŸãããð€¯
宿ã§ããŸããïŒ æå³ãçè§£ããããã«èšäºã®ãã¡ãã¡ãè¡ãæ¥ããªããã°ãªããïŒïŒæµ ãã¢ãžã¥ãŒã«ïŒïŒãããããå šäœãšããŠãšãŠãåããã«ããæ®µèœã«ãªã£ãŠããŸããç§ãã¡ã¯ãããªãã®é ã«äœèšãªèªç¥è² è·ãã€ããåºããŠããŸã£ãã®ã§ããååã«ãã®ãããªããšãããŠã¯ãããŸããã
ç§ãã¡ãè¡ãä»äºã®æ¬è³ªçãªãã®ãè¶ ããããããèªç¥è² è·ãæžããã¹ãã§ãã
ã³ã¡ã³ã
Rob Pike
è¯ãèšäºã§ãã
Andrej Karpathy (ChatGPTãTesla)
ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã«é¢ããè¯ãæçš¿ãããããæãçå®ã§ãæãå®è·µãããŠããªã芳ç¹ã
Elon Musk
çå®ã ã
Addy Osmani (Chromeãäžçã§æãè€éãªãœãããŠã§ã¢ã·ã¹ãã )
è³¢ãéçºè
ãææ°ã®èšèšãã¿ãŒã³ãšãã€ã¯ããµãŒãã¹ã䜿ã£ãŠå°è±¡çãªã¢ãŒããã¯ãã£ãäœæããç¡æ°ã®ãããžã§ã¯ããèŠãŠããŸãããããããæ°ããããŒã ã¡ã³ããŒã倿Žãå ããããšãããšãããã¹ãŠãã©ã®ããã«çµã¿åãããããçè§£ããã®ã«äœé±éãè²»ãããŸãããèªç¥è² è·ããšãŠãé«ããçç£æ§ãæ¥èœãããã°ãåå¢ããŸããã
ç®èãªããšã«ïŒãããã®è€éæ§ãèªçºãããã¿ãŒã³ã®å€ãã¯ãã¯ãªãŒã³ã³ãŒããã®åã®äžã«å®è£ ãããŠããŸããã
æ¬åœã«éèŠãªã®ã¯ãäžèŠãªèªç¥è² è·ãæžããããšã§ããæã«ã¯å€ãã®æµ ãã¢ãžã¥ãŒã«ã§ã¯ãªããããå°ãªãæ·±ãã¢ãžã¥ãŒã«ãæå³ããããšããããŸããæã«ã¯å°ããªé¢æ°ã«åå²ããã®ã§ã¯ãªããé¢é£ããããžãã¯ãäžç·ã«ä¿ã€ããšãæå³ããããšããããŸãã
ãããŠæã«ã¯è³¢ããã®ãããéå±ã§çŽ çŽãªè§£æ±ºçãéžã¶ããšãæå³ããŸããæé«ã®ã³ãŒãã¯æããšã¬ã¬ã³ãã§æŽç·Žããããã®ã§ã¯ãããŸãã - å°æ¥ã®éçºè ïŒããªãèªèº«ãå«ãïŒãè¿ éã«çè§£ã§ããã³ãŒãã§ãã
ããªãã®èšäºã¯ããã©ãŠã¶éçºã§ç§ãã¡ãçŽé¢ãã課é¡ãšæ¬åœã«å ±é³ŽããŸããèªç¥è² è·ã«ã€ããŠèšã£ãå€ãã®ãã€ã³ããšå®ç§ã«äžèŽãããçŸä»£ã®ãã©ãŠã¶ãæãè€éãªãœãããŠã§ã¢ã·ã¹ãã ã®äžã€ã§ããããšã«ã€ããŠãããªãã¯çµ¶å¯Ÿã«æ£ããã§ãã
Chromiumã§ãããåŠçããããšããäžã€ã®æ¹æ³ã¯ãæ éãªã³ã³ããŒãã³ãåé¢ãšãµãã·ã¹ãã éïŒã¬ã³ããªã³ã°ããããã¯ãŒãã³ã°ãJavaScriptå®è¡ãªã©ïŒã®æç¢ºã«å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ã§ããUnix I/Oã§ã®æ·±ãã¢ãžã¥ãŒã«ã®äŸãšäŒŒãŠããŸã - æ¯èŒçã·ã³ãã«ãªã€ã³ã¿ãŒãã§ãŒã¹ã®èåŸã«ãã匷åãªæ©èœãç®æããŠããŸããäŸãã°ãç§ãã¡ã®ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ã¯ä¿¡ããããªãã»ã©ã®è€éæ§ïŒã¬ã€ã¢ãŠããåæãGPUã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ïŒãåŠçããŸãããéçºè ã¯æç¢ºãªæœè±¡åã¬ã€ã€ãŒãéããŠãããšçžäºäœçšã§ããŸãã
äžèŠãªæœè±¡åãé¿ããããšã«ã€ããŠã®ããªãã®ãã€ã³ããæ¬åœã«å¿ã«é¿ããŸãããã©ãŠã¶éçºã§ã¯ãæ°ããè²¢ç®è ã«ãšã£ãŠã³ãŒãããŒã¹ãã¢ãããŒãããããããããšãšãŠã§ãæšæºãšäºææ§ã®æ¬è³ªçãªè€éæ§ãåŠçããããšã®éã§åžžã«ãã©ã³ã¹ãåã£ãŠããŸãã
æã«ã¯ãè€éãªã·ã¹ãã ã§ãã£ãŠããæãåçŽãªè§£æ±ºçãæè¯ã®è§£æ±ºçã§ãã
antirez (Redis)
ããã«ã€ããŠå®å
šã«åæããŸã :) ãŸããç§ãä¿¡ããŠããã®ã¯ãèšåããããA Philosophy of Software Designãããæ¬ ããŠããã®ã¯ãèšèšç ç²ãã®æŠå¿µã§ããã€ãŸããæã«ã¯äœããç ç²ã«ããŠãã·ã³ãã«ãããŸãã¯ããã©ãŒãã³ã¹ããŸãã¯ãã®äž¡æ¹ãåãæ»ãã®ã§ããç§ã¯ãã®ã¢ã€ãã¢ãç¶ç¶çã«é©çšããŠããŸããããã°ãã°çè§£ãããŸããã
è¯ãäŸã¯ãç§ãããã·ã¥ã¢ã€ãã ã®æéåããæã€ããšãåžžã«æåŠããããšã§ããããã¯èšèšç ç²ã§ãããªããªããç¹å®ã®å±æ§ããããã¬ãã«ã¢ã€ãã ïŒããŒèªäœïŒã«ã®ã¿æã€å Žåãèšèšã¯ããã·ã³ãã«ã«ãªããå€ã¯åãªããªããžã§ã¯ãã«ãªããŸããRedisãããã·ã¥æéåããåŸããšããããã¯è¯ãæ©èœã§ããããå®éã«å€ãã®éšåã«å€ãã®å€æŽãå¿ èŠãšããè€éæ§ãé«ããŸããã
å¥ã®äŸã¯ãç§ãä»ãã£ãŠããããšãVector Setsãæ°ããRedisããŒã¿ã¿ã€ãã§ããç§ã¯Redisããã¯ãã«ã«ã€ããŠã®çå®ã®æºã§ã¯ãªãããããã®è¿äŒŒçãåãããšãã§ããã ãã§ãããšæ±ºå®ããã®ã§ããã£ã¹ã¯äžã®å€§ããªãããŒããã¯ãã«ãä¿æããããšããããšãªããæ¿å ¥æã®æ£èŠåãéååãè¡ãããšãã§ããŸãããå€ãã®ãã¯ãã«DBã¯ããŠãŒã¶ãŒãå ¥ãããã®ïŒå®å šç²ŸåºŠãã¯ãã«ïŒãèŠããŠãããšããäºå®ãç ç²ã«ããŸããã
ãããã¯åãªã2ã€ã®ã©ã³ãã ãªäŸã§ããããã®ã¢ã€ãã¢ãã©ãã§ãé©çšããŠããŸããä»ã®ããšã¯ïŒãã¡ããæ£ãããã®ãç ç²ã«ããªããã°ãªããŸããããã°ãã°ãéåžžã«å€§ããªè€éæ§ãå ãã5ïŒ ã®æ©èœããããŸãïŒãããæ®ºãã®ã¯è¯ãããšã§ã :D
ã€ã³ã¿ãŒãããããã®éçºè
ããªãã¯ç§ãéããªãã§ããã... ç§ã¯ãªãªãŒã¹ããããšã³ã¿ãŒãã©ã€ãºãããžã§ã¯ãã®å®çžŸã§èªåã売ã蟌ã¿ãŸãã
èšèšãã¿ãŒã³ã話ãããšãã§ãã人ãšåããããšããããŸããç§ã¯ãã®ããã«è©±ãããšã¯æ±ºããŠã§ããŸããã§ãããã圌ãçè§£ã§ããæ°å°ãªã人ã®äžäººã§ããããããŒãžã£ãŒã¯åœŒãæãã圌ã¯ããããéçºäŒè©±ãæ¯é ããããšãã§ããŸããã圌ã®åšãã§åã人ã ã¯ã圌ãåŸãã«ç Žå£ã®è·¡ãæ®ããŠãããšèšããŸãããç§ã¯åœŒã®ãããžã§ã¯ããçè§£ã§ããæåã®äººã ãšèšãããŸãããã¡ã³ããããªãã£ã¯éèŠã§ããç§ã¯æãTCOãæ°ã«ããŸããããã€ãã®äŒæ¥ã«ãšã£ãŠããããéèŠãªããšã§ãã
ãã°ããGithubã«è¡ã£ãŠããªãã£ãåŸã«ãã°ã€ã³ãããªããç¡äœçºã«èŠãã誰ãã«ãããªããžããªå ã®èšäºã«é£ããŠè¡ãããŸããããããã¯äœã ããšæã£ãŠãããŒã ããŒãžã«ãã©ãçãã®ã«å°ãåé¡ããã£ãã®ã§ããããèªã¿ãŸããããã®æã¯å®éã«ã¯ç»é²ããŠããŸããã§ããããããã¯çŽ æŽããããã®ã§ããããã¹ãŠã®éçºè ãèªãã¹ãã§ããããã¯åºæ¬çã«ãããã°ã©ãã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠç§ãã¡ãèšãããŠããããšã®ã»ãŒãã¹ãŠãé床ã®ãèªç¥è² è·ãã«ã€ãªãããšèšã£ãŠããŸãããã€ãŸããç§ãã¡ã®å¿ãç¥çèŠæ±ã«ãã£ãŠè¹ŽãããŠãããšããããšã§ããç§ã¯ãã°ããã®éãããç¥ã£ãŠããŸãããç¹ã«ã¯ã©ãŠããã»ãã¥ãªãã£ãDevOpsã®èŠæ±ã§ã
ãŸãããããäœå幎ããã£ãŠããå®è·µã«ã€ããŠèª¬æããŠããã®ã§æ°ã«å ¥ããŸãããããã人æ°ããªãããã«ããŸãèªããããšã¯ãããŸãã... ç§ã¯æ¬åœã«è€éãªãã®ãæžãããã¹ãŠã®ãã«ããåŸãããå¿ èŠããããŸãã
èããŠã¿ããšãç§ãæ£ãããã°ãããã¯Githubã®äººã ãéåžžã«è³¢ã人ã ãéçºè ããããèŠãã¹ãã ãšæã£ãããã«çŸããŸãããç§ãåæããŸãã






