ãã¹ãŠã® Java ããã°ã©ããŒã¯ããœãããŠã§ã¢éçºã®åºæ¬ãç解ããŠããå¿ èŠããããŸããããã§ã¯ãäœããåºæ¬ãã§ããããèŠãŠã¿ãŸãããã
1. åºæ¬çãªã¢ã«ãŽãªãºã
Java ã«éãããããã°ã©ãã³ã°ãåŠã³å§ãããšãã«æåã«åãçµãã¹ãããšã¯ãåºæ¬ãç解ããããšã§ããããšãã°ãã¢ã«ãŽãªãºã ã
ãããã®ã¢ã«ãŽãªãºã ã¯ç¡éã«ãããŸããã§ããã ãå€ãã®ã¢ã«ãŽãªãºã ãåŠãŒããšããŠäººçã®äœå¹Žãè²»ããã¹ãã§ã¯ãããŸããããããã®ã»ãšãã©ã¯åœ¹ã«ç«ã¡ãŸãããå¿ èŠæäœéââã®ç¥èã¯ãGrokking Algorithmsããšããæ¬ããåŸãããšãã§ããŸããå§ããã«ã¯ããã§ååã§ãããå¿ èŠã«å¿ããŠãRobert Sedgewick ãš Kevin Wayne ã®èæžãStructures and AlgorithmsããŸãã¯ãAlgorithms in JavaãããåŠã¶ããšãã§ããŸãã
2. Java æ§æ
ã¢ã«ãŽãªãºã ã®åºç€ãåŠãã åŸãJava æ§æãåŠã¶å¿ èŠããããŸããçµå±ã®ãšãããããªã㯠Java ããã°ã©ããŒã«ãªãããã«å匷ããŠããã®ã§ããã? CodeGym ã³ãŒã¹ã¯ããã«æé©ã§ãã
æ°ããããªãã»ã©ã®ã¿ã¹ã¯ãå®è¡ãããã¡ã«ãJava æ§æãç¿åŸããããããããšãªãããŸãã§æ¯åœèªã§ãããã®ããã« Java ã³ãŒããæžãããèªãã ãã§ããããã«ãªããŸãã
å®è·µã ãã§ãªããèªåãäœãããŠããã®ããç解ããããã«çè«ãèŠãå¿ èŠããããŸãããããè¡ãã«ã¯ãæ¬ãèªãããšãã§ããŸããããšãã°ã次ã®ããããã§ãã
- ãããããã¡ãŒã¹ãJavaãã
- ãJava for DummiesãããªãŒã»ããŒãèã
- ããŒããŒãã»ã·ã«ãèãJava: åå¿è ã¬ã€ããã
ãããã®æ¬ãèªãã åŸã¯ãããé£ããæ¬ã«åãçµãããšãã§ããŸãã
- ãJava ã§èããããã«ãŒã¹ã»ãšãã±ã«ã
- ãEffective JavaãJoshua Blochè;
- Herbert SchildtèãJava: The Complete Referenceãã
æåŸã® 3 åã¯åå¿è ã«ãšã£ãŠèªã¿ããããã®ã§ã¯ãããŸããããJava çè«ã®åŒ·åºãªåºç€ãæäŸããŸãã
3. ãã¶ã€ã³ãã¿ãŒã³
ãã¶ã€ã³ ãã¿ãŒã³ã¯ãé »ç¹ã«ééããç¶æ³ã§åé¡ã解決ãããç¹å®ã®å埩å¯èœãªãã¿ãŒã³ã§ãããããã«ã¯ãèªå°å¿ã®ãããã¹ãŠã®ããã°ã©ããŒãç¥ã£ãŠããã¹ãåºæ¬çã§åçŽãªãã¿ãŒã³ãå«ãŸããŠããŸãããã®ãããã¯ãç解ããã«ã¯ããHead First Design Patternsããšããæ¬ãèªãã§ãã ããã
åºæ¬çãªãã¶ã€ã³ãã¿ãŒã³ããããããã解説ããŠããŸãããã ãããã®æ¬ã§ã¯ Java ã«ã€ããŠå€ãã®ããšãè¿°ã¹ãããŠããããããã®æ¬ãèªããšãã«ã¯ãã®ããã°ã©ãã³ã°èšèªã«å ªèœã§ããããšãå¿ èŠã«ãªããŸãã
ãã¿ãŒã³ã«ã€ããŠããã«è©³ããç¥ãããå Žåã¯ãGang of Four ( Erich GammaãRichard HelmãRalph JohnsonãJohn Vlissides ) ã®ãDesign Patterns: Elements of Reusable Object-Oriented Softwareããèªãããšãã§ããŸãããã®ãããã¯ãåŠç¿ãããšãã³ãŒãå ã®ã»ãŒããããå Žæã«ãã¿ãŒã³ãèŠãããããã«ãªããŸãã
ããã¯é¢æ¥ã§äººæ°ã®è³ªåã§ãããããç¹ã« Spring ã§äœ¿çšããããã¿ãŒã³ã«æ³šæããŠãã ããã
4. ããã°ã©ãã³ã°ãã©ãã€ã ãã³ãŒãã®ã¯ãªãŒã³ã
æšæºçãªãã¶ã€ã³ ãã¿ãŒã³ä»¥å€ã«ãã泚æãã¹ãããŸããŸãªååãšãã©ãã€ã (SOLIDãGRASP) ããããŸãã
ã³ãŒããã¯ãªãŒã³ã§èªã¿ãããç¶æ ã«ä¿ã€å¿ èŠããããŸãããã¹ãŠã«ã€ããŠã¯ããã®ãããã¯ã«ã€ããŠç¥ã£ãŠããå¿ èŠããããŸããRobert Martin ã® Clean Code ãåç §ããããSteve McConnell ã®ãCode Completeããåç §ããŠãã ããã
5. SQL
次ã®ã¹ãããã¯ããªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹çšã®èšèªã§ãã SQL ãåŠç¿ããããšã§ãã
ããŒã¿ããŒã¹ã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããæ å ± (ããŒã¿) ãä¿åãããå Žæã§ããããŒã¿ããŒã¹ã¯è€æ°ã®ããŒãã«ã§æ§æãããŸã (æºåž¯é»è©±ã®ã¢ãã¬ã¹åž³ãç°¡åãªäŸã§ã)ã
Java éçºè ã¯ãJava ã¢ããªã±ãŒã·ã§ã³ã ãã§ãªããJava ã¢ããªã±ãŒã·ã§ã³ã察話ããããŒã¿ããŒã¹ããã®ããŒã¿ã®ä¿åå Žæã«ã責任ãè² ããŸãã
ãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ (æãäžè¬çãªã¿ã€ã) ã§ã¯ããã¹ãŠã®å¯Ÿè©±ã¯æ§é åç §äŒèšèª (SQL) ãšåŒã°ããç¹å¥ãªèšèªãéããŠè¡ãããŸãã
ãã®ãããã¯ãç解ããã«ã¯ã次ã®æ¬ã®ãããããèªãã ãã§æžã¿ãŸãã
- ãLearning SQLãã¢ã©ã³ã»ãã¥ãŒãªã¥ãŒè;
- ã¯ãªã¹ã»ãã§ããªãŒèãSQLãã
- ãªã³ã»ãã€ãªãŒèãHead First SQLãã
ã§ããçè«ãªãã§å®è·µããŠãå¹æã¯ãããŸããããïŒãŸããé¢æ¥ã§ã¯ SQL ã®ç¥èããã¹ããããããšãäºæ³ãããŸããé¢æ¥å®ã¯å€ãã®å Žå (ã»ãŒåžžã«)ãSQL ã¯ãšãªã®äœæã䌎ã 1 ã€ãŸã㯠2 ã€ã®ã¿ã¹ã¯ãäžããŸãã
ãããã£ãŠãèªåèªèº«ãããèŠããããã«ã¯ãå®è·µç㪠SQL ã¹ãã«ã磚ãããšãéåžžã«éèŠã§ãã
6.MySQL/PostgreSQL
SQL èšèªãåŠç¿ããåŸã¯ãç¹å®ã®ããŒã¿ããŒã¹å®è£ ã«æ £ããå¿ èŠããããŸããããŒã¿ããŒã¹ã«ãã£ãŠã¯ãäžéšã®ã³ãã³ããå€§å¹ ã«ç°ãªãå ŽåããããŸãããããŠãããŒã¿ããŒã¹ã®æ©èœã«ã¯ããªãé¡èãªéãããããŸãã
æãäžè¬çãªãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã¯ MySQL ãš PostgreSQL ã§ããMySQL ã¯ã¯ããã«ã·ã³ãã«ã§ãããPostgreSQL ã¯ããå¹ åºãæ©èœãåããŠããŸããå°ãªããšã 1 ã€ãç解ããŠããã°ãå§ããã®ã«ååã§ãã
ã°ãŒã°ã«ã®ã¹ãã«ã掻çšããã°ãããŒã¿ããŒã¹ã®å®è£ ãåŠã¶ããšãã§ããŸããYouTube ã§é¢é£ããèšäºããã¥ãŒããªã¢ã«ãèŠã€ããŠãã ãããçããå¿ èŠãªè³ªåã«å¯ŸããŠé©åãªæ€çŽ¢ã¯ãšãªãäœæããèœåãé€ãå¿ èŠããããŸããçµå±ã®ãšãããããã°ã©ããŒãšã¯ãã°ãŒã°ã«ã®é»åž¯ãæã£ãŠãã人ã®ããšã§ãã
7.Maven/Gradle
Gradle ãŸã㯠Maven ãã¬ãŒã ã¯ãŒã¯ã®ãããããåŠç¿ããå¿ èŠããããŸãããããã¯ãããžã§ã¯ããæ§ç¯ããããã®ãã®ã§ãããããªãã«ãšã£ãŠ Java ã¯ãããã€ãã®ã¯ã©ã¹ãå«ãã¿ã¹ã¯ã®ããã ãã§ãªããæ¬æ Œçãªã¢ããªã±ãŒã·ã§ã³ãäœæããããã®èšèªã§ããããŸãã
ãããžã§ã¯ãã®ãã«ãæ¹æ³ããã«ã ã¹ããŒãžãšã¯äœããå¿ èŠãªå€éšã©ã€ãã©ãªãšãµãŒãããŒã㣠ã³ãŒããããŒãããæ¹æ³ãªã©ãç解ããå¿ èŠããããŸãã
Gradle ã®æ¹ãæ°ãããããç°¡æœã§ããã«ãããããããã»ãšãã©ã®å ŽåãMaven ã䜿çšãããŸãããããã£ãŠãMaven ã®ãã«ã ã©ã€ããµã€ã¯ã«ã«ã¯ç¹ã«æ³šæããŠãã ããã
8.Git
Git ã¯åæ£ããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãããã®ãã¯ãããžãŒã«ãããéçºè ã¯äºãã«å¹²æžããããšãªãåäžã®ã¢ããªã±ãŒã·ã§ã³ã§å ±åäœæ¥ããããšãã§ããŸãã
ãã¡ãããä»ã®ããŒãžã§ã³ç®¡çã·ã¹ãã ããããŸããããšãã°ãSubversionããã ããGit ã¯æãåºã䜿çšãããŠãããGit ãæäœã§ããå¿ èŠããããŸãããªã³ã©ã€ã³ã§èŠã€ããããšãã§ãã Git ã«é¢ããå€ãã®èšäºã«å ããŠãYouTube ã«ã¯ããã®ãã¯ãããžãŒã段éçã«ç¿åŸããã®ã«åœ¹ç«ã€ååãªãããªããããŸãã
æåã¯ãäœããã® GUI å®è£ ã§ã¯ãªããã³ãã³ã ã©ã€ã³ãã Git ã䜿çšããããšããå§ãããŸããããã¯ããã¹ãŠãã³ãã³ãã䜿çšããŠå®è¡ããå¿ èŠãããããã§ããé¢æ¥ã§ã¯ãããã€ãã® Git ã³ãã³ãã«ã€ããŠè³ªåãããããšãå€ããããããããæžãçããŠè¿ãã®å Žæã«ä¿ç®¡ããŠããããšããå§ãããŸãã
9.JDBC
ãã®ãã¯ãããžãŒã¯ãJava ã¢ããªã±ãŒã·ã§ã³ãšãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ãæ¥ç¶ããŸããåºæ¬ã«ã€ããŠã¯ãJDBC ãã¥ãŒããªã¢ã«ãèªãã§ãã ããã
ãã€ããã JDBC ãçŽæ¥äœ¿çšãã人ã¯ãã誰ãããŸããããJDBC ã説æããåºæ¬çãªäŸãæäŸããèšäºã¯ãããããããŸãã
10.JPAãäŒæ¢ç¶æ
JPA ã¯ãJDBC ãšåæ§ã«ãJava ã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ããŒã¹éã®æ¥ç¶ã確ç«ããæ¹æ³ã§ãããããåæã«ãJPA ã¯ããé«ãã¬ãã«ã®ãã¯ãããžãŒã§ããããããã䜿ãããããªããŸãã
ãã ããJPA ã¯åãªãä»æ§ã§ãããå®è£ ã§ã¯ãããŸãããå ·äœçãªå®è£ ãå¿ èŠã§ãããããã¯æ°å€ãååšããŸãããJPA ã®çæ³ã«æãè¿ããæã人æ°ããããæãéçºãããŠããã®ã¯ Hibernate ã§ãã
ãœãããŠã§ã¢éçºã®ãã£ãªã¢ã®äžã§ããã®ãã¯ãããžãŒã«äœåºŠãééããããšã«ãªãã§ãããããããã£ãŠãèšäºãèªãã§ãã®ãã¯ãããžãŒã«æ £ããããšã«å ããŠãããšãã°ãJava Persistence APIããªã©ã®æžç±ãèªãããšãæ€èšãã䟡å€ããããããããŸããã
11. æ¥
Java éçºè ã«ãªããšãSpring ã¯åãªãèšèã§ã¯ãªããªããŸãããã®ãã¬ãŒã ã¯ãŒã¯ãç¥ãããšã¯ãJava æ§æãç¥ãããšãšåããããéèŠã«ãªããŸãããSpring ã«ã¯å åŒãã€ãŸã Java EE ããããšèšããŸããããããJava EE ã¯æ代é ãã§ãããæ°ãããããžã§ã¯ãã§ã¯äœ¿çšãããªããªããŸããã
çŸåšãå§åçå€æ°ã® Java éçºè 㯠Java-Spring éçºè ã§ãããããããã€ãã®åºæ¬ç㪠Spring ãã¯ãããžãç¥ã£ãŠããããšãå¿ é ã§ãã
Spring ã¯åãªããã¬ãŒã ã¯ãŒã¯ã§ã¯ãªãããã¬ãŒã ã¯ãŒã¯ã®ãã¬ãŒã ã¯ãŒã¯å šäœã§ãã
ãã㯠Spring ãæäŸãããã¬ãŒã ã¯ãŒã¯ã®ãµãã»ããã«ãããŸãããåå¿è ã®å Žåã¯ããã®ãã¡ã®ããã€ããç¥ã£ãŠããã°ååã§ãã
ã¹ããªã³ã°ã³ã¢
Spring ãšã¯äœããã€ãŸã Spring ã³ã³ãããŒãBeanãDIãIoC ãªã©ã«ã€ããŠãã¹ãŠç解ã§ããããã«ããããæåã«çœ®ãå¿ èŠããããŸããããã°ãSpring ã䜿çšããå²åŠãã®ãã®ãç解ããããã§ããSpring ãã¬ãŒã ã¯ãŒã¯ã®ãããªãç 究ã¯ããã®ããŒã¹ã®äžã«æ§ç¯ãããŸãããããããæ°ããåŠãã ãã¹ãŠã®ãã¯ãããžãåŸã ã«çµã¿èŸŒãããšãã§ããç¬èªã®å°ããªã¢ããªã±ãŒã·ã§ã³ãäœæããå¿ èŠããããŸãã
æ¥ã®JDBC
å ã»ã©ãããŒã¿ããŒã¹æ¥ç¶ãäœæããããã®ãã¯ãããžãšã㊠JDBC ã«ã€ããŠèª¬æããŸãããäžè¬ã«ããããžã§ã¯ãã§ã¯ãã®ãã¯ãããžãã裞ã§ã䜿çšããããšã¯ããèŠãããªããããJDBC ãåŠç¿ããå¿ èŠã¯ãªããšçµè«ä»ããããšãã§ããŸããããã¯ãŸã£ããæ£ããæ 床ã§ã¯ãããŸããã
JDBC ãçŽæ¥ (çŽæ¥) 䜿çšããããšãæ€èšããããšã§ããã¯ãããžãŒãããäœãã¬ãã«ã§ç¢ºèªãããã®åé¡ãšæ¬ ç¹ãç解ããããšãã§ããŸããSpring JDBC ã®åŠç¿ãå§ãããšããã®ãã¬ãŒã ã¯ãŒã¯ãæ£ç¢ºã«äœãæ¹åããæé©åããé ããŠããã®ãããããã§ãããã
æ¥ã®äŒæ¢ç¶æ
ãã€ããã JDBC ã®ç¶æ³ãšåæ§ã«ããã®ãã¬ãŒã ã¯ãŒã¯ã¯æ¢åã®ãã¯ãããžãŒ (ãã®å Žå㯠Hibernate) ãå©çšããŸããSpring ãªã㧠Hibernate ã®äœ¿çšãæ€èšãããšãSpring Hibernate ãæäŸããå©ç¹ã確å®ã«å®æã§ããã§ãããã
æ¥JPA
å ã»ã© JPA ã«ã€ããŠèª¬æããããŸããŸãªå®è£ ããããã®ã®ãããã¯åãªãä»æ§ã§ãããšè¿°ã¹ãŸããããããã®å®è£ ã®äžã§ãHibernate ãæãçæ³ã«è¿ãå®è£ ã§ãã
Spring ã«ã¯ãå éšã§ Hibernate ã䜿çšããç¬èªã®çæ³ç㪠JPA å®è£ ããããŸãããã㯠JPA ä»æ§ã®çæ³ã«å¯èœãªéãè¿ããã®ã§ãã
Spring JPAãšåŒã°ããŸããäžèšã§èšãã°ãããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ãå€§å¹ ã«ç°¡çŽ åãããŸãã
JDBCãHibernateãSpring JDBCããŸã㯠Spring Hibernate ãåŠç¿ããã« JPA ã®ã¿ãåŠç¿ããããšã¯ã§ããŸãããã ãããã®ã¢ãããŒããæ¡çšããå ŽåãããŒã¿ããŒã¹ãžã®æ¥ç¶æ¹æ³ã«é¢ããç¥èã¯éåžžã«è¡šé¢çãªãã®ã«ãªããŸãã
æ¥ã®MVC
ãã®ãã¯ãããžãŒã«ãããã¢ããªã±ãŒã·ã§ã³ã® Web ã€ã³ã¿ãŒãã§ã€ã¹ããŠãŒã¶ãŒã«è¡šç€ºããã€ã³ã¿ãŒãã§ã€ã¹ãšã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®éšåã®éã®éä¿¡ã容æã«ããããšãã§ããŸãããã£ã¹ãã¬ã€ã®åŠçãæ åœããã¢ããªã±ãŒã·ã§ã³ããããRESTful ãã¯ãããžãŒã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿè©±ããŠããå Žåããã®ãã¯ãããžãŒã¯ãã£ã¹ãã¬ã€ãªãã§äœ¿çšããããšãã§ããŸãã
æ¥ã«é¢ããæ å ±ãããããåžåããã«ã¯ãèšäºã YouTube ã¬ã¯ãã£ãŒã«å ããŠãæ°åã®æ¬ãèªããšããã§ããããããšãã°ãã¯ã¬ã€ã°ã»ãŠã©ãŒã«ãºã®ãSpring in ActionããSpring ã«é¢ãããã 1 ã€ã®åªããæ¬ã¯ããSpring 5 for the Professionalsãã§ããããæ¿åã§ããæåããæåŸãŸã§èªãããããæå ã«çœ®ããŠããæ¹ã䟡å€ã®ããåèè³æã®ãããªãã®ã§ãã
ã¹ããªã³ã°ããŒã
ãã®ãã¯ãããžãŒã«ãããSpring ã®äœ¿çšãå€§å¹ ã«ç°¡çŽ åãããŸããæ°ãŸããã§ãªã¹ãã®æåŸã«å ¥ããã®ã§ã¯ãããŸããã確ãã«ãå éšã«ã¯å€ãã®ããšãé ãããŠãããããã© ã¹ããªã³ã°ã«æ £ããŠããªã人ã«ãšã£ãŠã¯ãå€ãã®ç¹ãäžæ確ãŸãã¯ç解ã§ããªããããããŸããã
ãŸããSpring ãã¬ãŒã ã¯ãŒã¯ãã©ã®ããã«æ©èœããããããæ·±ãç解ããã«ã¯ãéåžžã® Spring ã䜿çšããŠãããSpring Boot ã䜿çšããããšã«ããåªããå©ç¹ããã¹ãŠç解ããå¿ èŠããããŸãã
Spring Security ãš Spring AOP ã«ã€ããŠãããç解ããŠããå¿ èŠããããŸãããã ããäžèšã®ãã¯ãããžãŒãšã¯ç°ãªããããã 2 ã€ã«é¢ããæ·±ãç¥èã¯ãŸã å¿ èŠãããŸããã
ãã®ãã¯ãããžãŒã¯åå¿è åãã§ã¯ãããŸãããé¢æ¥ã§ã¯ãè¥æéçºè ã¯ãããã«ã€ããŠè³ªåãããŸãã (ãããã 1 ã€ã®è¡šé¢çãªè³ªåãé€ããŠ)ããããã®ãã¯ãããžãŒã®æŠèŠãšããã®èåŸã«ããååã«ã€ããŠèª¬æããŸãã
ç¥èãå€ããã°å€ãã»ã©ãæåã®ä»äºãæ©ãèŠã€ããããšãã§ããŸãã
GO TO FULL VERSION