åçŽãªå®è£
ãè¶
ããŠ
ããè¯ãã³ãŒããäœããããã¹ãŠã®éçºè
ã«ð
ãªãã¡ã¯ã¿ãªã³ã°
ã³ãŒãã®æ©èœã¯ç¶æããªãããã¯ã©ã¹ã颿°ããã£ãŒã«ããªã©ãè€æ°ã®ããã°ã©ãã³ã°èŠçŽ ã倿Žããããšã§ããè¯ã
ã³ãŒãã§æ¹åããããã»ã¹ãŸãã¯ãã®ãããªæè¡ãæããŸãã
åãããã«åäœããã³ãŒãããããçè§£ããããæè»ã«ããããšãã§ããŸãã
ãããªã³ãŒã
ããã«ãããããå°ãèªã¿ãããã³ãŒããäœæã§ããŸãã
ç§ãã¡ã¯ãªãã¡ã¯ã¿ãªã³ã°
åŠã¶ã¹ãçç±
æåã¯å€ãããªãããã ã£ãå®¶åºãšæåã ãšæã£ãŠããã³ãŒããæéãçµã¡ãç°å¢ãå€ãããæè¡ãçºå±ããŠã¿ããšãã³ãŒããäžäœãªããããªã«ç·šãã ã®ïŒããšãã話ãããŸãããã
ãªãã¡ã¯ã¿ãªã³ã°ã§ã«ããŒãããŠããåèš24ã®ã³ãŒãã®åãã§ããã®ãããªã³ãŒããèŠã€ããæ¹æ³ãš43ãè¶
ãããªãã¡ã¯ã¿ãªã³ã°æè¡ã䜿çšããŠã³ãŒããæ¹åããæ¹æ³ãåŠã¶ããšãã§ããŸãã
倧äžå€«ã§ããããã®ã¬ãã¹ã³ã®åŸã«ããªãã®ã³ãŒããããäžåºŠèŠãŠãããªãããã£ãšããè¯ãã³ãŒãã§ä¿®æ£ããããšãã§ããŸãã
ã³ãŒãçç£æ§
å¢ããããå Žå
IntelliJ
ã€ã³ããªãžã§ã€ã®ãããªçµ±åéçºç°å¢ïŒIDEïŒã¯ãåçŽãªãšãã£ã¿ãšã¯ç°ãªããé«åºŠãªæŒç®ãšåææ©èœã§ãã
ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã«åœ¹ç«ã€ããã€ãã®æ©èœãæäŸããŠããŸãã
ãã®ã¬ãã¹ã³ã§ç޹ä»ããæ©èœã掻çšããããšã§ãã³ãŒãã®çç£æ§ãåäžãããããšãã§ããŸãã
ãªãã¡ã¯ã¿ãªã³ã°
å¿
èŠãªäººã¯ïŒ
åºç€ææ³ã¯åŠã³ãŸããã
ä»äœããã¹ãã§ããïŒ
ä»ãã
ããè¯ãéçºè
ãšããŠ
æé·ãããã§ããïŒ
ããè¯ãã³ãŒãã§
æ¹åãããã®ã§ããâŠ
èãã®ã³ãŒã
ã©ã®ããã«æ¹åããã
ç¥ããããªãïŒ
ã€ã³ããªãžã§ã€
ãã£ãšããæžãããã®ã§ããâŠ
ãªãã¡ã¯ã¿ãªã³ã°æ©èœã100ïŒ
掻çšãããã§ããïŒ
ãªãã¡ã¯ã¿ãªã³ã°ïŒ
å®éã«èŠããã®ã§ããâŠ
ã°ããŒãªãŒãã£ã³ã°ãªãã¡ã¯ã¿ãªã³ã°
èŠãªãã§
åŠã³ãããªãïŒ
ð¢ãç¥ããããŸã
- åæ»ãªè¬çŸ©ã®åè¬ã«ã¯Javaããã°ã©ãã³ã°èšèªã®çè§£ãå¿
èŠã§ãã
- JavaãšIntelyã䜿çšããŠãªãã¡ã¯ã¿ãªã³ã°ã玹ä»ããŠããŸãããç¹å®ã®èšèªãIDEã«äŸåãããã®ã§ã¯ãããŸããã
ã³ãŒãã£ã³ã°ã§åŠã¶
ãªãã¡ã¯ã¿ãªã³ã°
ãã®ã¬ãã¹ã³ã§ã¯ãåèš24ã®ã³ãŒãã®åããšååãã解決ããããã®ããã€ãã®ãªãã¡ã¯ã¿ãªã³ã°æè¡ãåãäžããŠããŸãã
åãªãã¡ã¯ã¿ãªã³ã°æè¡ã¯IntelliJãæäŸããæ©èœãç©æ¥µçã«æŽ»çšããããªããçŽæ¥ç·Žç¿ããããã®ãµã³ãã«ã³ãŒããæäŸããŠããŸãã
- å¥åŠãªåå (Mysterious Name)
- åé·ã³ãŒã (Duplicated Code)
- é·ã颿° (Long Function)
- é·ããã©ã¡ãŒã¿ãªã¹ãïŒLong Parameer ListïŒ
- ã°ããŒãã«ããŒã¿(Global Data)
- å¯å€ããŒã¿ (Mutable Data)
- æ··ä¹±ã®å€æŽ (Divergent Change)
- æ£åŒŸéæè¡ (Shotgun Surgery)
- æ©èœåæ(Feature Envy)
- ããŒã¿ã®æ (Data Clumps)
- åºæ¬åãã ããïŒPrimitive ObsessionïŒ
- ç¹°ãè¿ããã swtich ã¹ããŒãã¡ã³ã (Repleated Swtiches)
- ç¹°ãè¿ãæ (Loops)
- å§ã®ãªãèŠçŽ (Lazy Element)
- æšæž¬æ§äžè¬å (Speculative Generality)
- äžæãã£ãŒã«ã(Temporary Field)
- ã¡ãã»ãŒãžãã§ãŒã³(Message Chains)
- ã¢ãã¬ãŒã¿ãŒ(ããã«ãã³)
- ã€ã³ãµã€ããŒååŒ (Insider Trading)
- 巚倧ãªã¯ã©ã¹ (Large Class)
- ç°ãªãã€ã³ã¿ãŒãã§ã€ã¹ã®ä»£æ¿ã¯ã©ã¹ (Alternative Classes with Different Interfaces)
- ããŒã¿ã¯ã©ã¹(Data Class)
- ç¶æ¿ã®æŸæ£ (Refused Beques)
- ã³ã¡ã³ã(ã³ã¡ã³ã)
ãã¹ãŠã®éçºè
ã®å¿
èªæž
ãªãã¡ã¯ã¿ãªã³ã°
ãªãã¡ã¯ã¿ãªã³ã°â 1999幎ã«1çãåºçãã2018幎ã«2çãåºãŠãããGoFã®èæžããã¶ã€ã³ãã¿ãŒã³ããšãšãã«
ãã¹ãŠã®éçºè
ã«æšå¥šãããå¿
èªæžã®1ã€ã§ãã
éå»ãšä»ããããŠä»åŸãæ¥åã§ãã€ã§ã圹ã«ç«ã€æè¡ãªã®ã§ããã²åŠç¿ããŠãã ããã
ð¢åèã«ããŠãã ãã
- ãã®è¬çŸ©ã¯ããŒãã£ã³ã»ãã¡ãŠã©ãŒã®èæžããªãã¡ã¯ã¿ãªã³ã°ããåèã«ããŠäœæããŸããã
ãã®è¬çŸ©ããªãã¡ã¯ã¿ãªã³ã°æ¬ãšéãç¹
- ãªãã¡ã¯ã¿ãªã³ã°æ¬ã¯ãåã³ãŒãã®åããç°¡åã«æ±ã£ãåŸãã«ã¿ãã°ããšã«ãªãã¡ã¯ã¿ãªã³ã°æè¡ã詳ãã説æããŸãã
ãããããã®ã¬ãã¹ã³ã§ã¯ãåé¡ã®èªèãšè§£æ±ºçãç¶ãããã«ãã³ãŒãã®åããšååãã解決ããã®ã«åœ¹ç«ã€ãªãã¡ã¯ã¿ãªã³ã°æè¡ã詳ãã説æããåŸããªãã¡ã¯ã¿ãªã³ã°ã«ã¿ãã°ã調ã¹ãŠåŸ©ç¿ããæ¹æ³ã䜿çšããŠããŸãã - ãŸãããªãã¡ã¯ã¿ãªã³ã°ã®ç¬¬2çã§ã¯ããµã³ãã«ã³ãŒããJavaScriptã§æžãããŠãããå®å
šãªãµã³ãã«ã³ãŒããæäŸããŠããŸãããããã®ã¬ãã¹ã³ã§ã¯Javaã§æžããããµã³ãã«ã³ãŒããæäŸããŠãããªããèªåã§ç·Žç¿ã§ããããã«æºåããŸããã
- æåŸã«ãæ¬ã§ã¯IDEã䜿çšããªããšããä»®å®ã®ããšã§ãªãã¡ã¯ã¿ãªã³ã°æ¹æ³ã説æããŸãããçŸå®çã«Javaéçºè
ã®90ïŒ
ã«è¿ãéçºè
ãIDEã䜿çšããŠããããããã®è¬çŸ©ã§ã¯ã€ã³ããªJã®æ©èœãç©æ¥µçã«æŽ»çšããããå®çšçãªãªãã¡ã¯ã¿ãªã³ã°ã玹ä»ããŠããŸãã
äºæ³ããã質å Q&A
Q. éçºè
ãªããªãã¡ã¯ã¿ãªã³ã°ãå¿
ãåŠã°ãªããã°ãªããŸãããïŒ
A. ãã©ãããã°åäœããã°ããã®ããã§ã¯ãªãããã©ãããã°ããè¯ãã³ãŒãã§åäœãããããšãã§ããã®ãïŒããæ©ãéçºè
ã§ããã°ããªãã¡ã¯ã¿ãªã³ã°ãå¿
ãåŠç¿ããªããã°ãªããŸããã
Q. ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã€ãã¹ãã§ããïŒ å®åã§ãªãã¡ã¯ã¿ãªã³ã°ãããæéããããŸããã
A. ãªãã¡ã¯ã¿ãªã³ã°ã¯æéãæ±ºããŠãããŠãè¯ãããæ°ããã³ãŒããäœæããæãæ¢åã®ã³ãŒããä¿®æ£ããŠæ©èœãæ¹åããã倿Žãããšãã®ããã«é²ããããšãã§ããŸãããã©ã¡ãŒã¿åãã䜿çšãããšãããªãã®æ°ã®éè€ã³ãŒããåé€ããããå°ãèªã¿ãããã³ãŒããäœæããŠéä¿¡ããã³ãŒãã¬ãã¥ãŒãåŸ
ã£ãŠããŸãã
Q. Javaåºç€ã ãå匷ããç¶æ
ãªã®ã«ãã®è¬çŸ©ãåè¬ããŠãããã§ããïŒ
A. ã¯ããJavaã®åºç€ãåŠãã ããæ¬è¬çŸ©ãåè¬ããããšãã§ããŸãã
Q. è¬çŸ©ã®é£æåºŠãããæ¹ãç§ã«åãã®ãæ°ã«ãªããŸãã
A. ãã®è¬çŸ©ã§ãã¬ãã¥ãŒã§ãçè§£ãã«ããååããã颿°å®£èšã倿Žããããã倿°åã倿Žãããã®ææ¥ãå
¬éããŠãããŸããã
ãã€ã¯ããœããã®ã·ãã¢éçºè
ã«åŠã¶ãªãã¡ã¯ã¿ãªã³ã°ïŒ
ãéçºè
ãšããŠä»äºãããŠã¿ããšãäžåºŠã¯ã³ãŒãããããããšãã«äŸããèšèãèããããšãããã§ãããããããã®ã³ãŒãã¯æ¥ååŠçãé
ãããèŠæ±ã®å€æŽã«å¯ŸåŠããã®ãé£ãããªããŸãã
ãã®ãããªã³ãŒãããããã§å®å
šã«æŽçããæ¹æ³ããªãã¡ã¯ã¿ãªã³ã°ã§ãããããã«ãããããèªã¿ããããå€åã«æè»ã«å¯ŸåŠå¯èœãªæ§é ã§ã³ãŒã倿Žãå¯èœã§ãã