ã¢ã¼ããã¯ããããã°ã©ãã³ã°ããã¹ããï¼
プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
ã§ä»¥ä¸ã®ãããªã³ã¡ã³ããããã ãã¾ããã
ã¢ããªã±ã¼ã·ã§ã³ã®ã¢ã¼ããã¯ãã¨ããå½¹å²ã«ã¤ãã¦ã¡ãã£ã¨ç解ãææ§ã ã£ãã®ããã®ã¨ã³ããªèªãã§ã ãã¶ã¹ãããªãããä»åº¦ã®éçºç³»ã®åå¼·ä¼ã®ãã¿ã«ã¨ãããããããª
ã¢ã¼ããã¯ãã®åãæ¹ã®åèã«ã
ãããããªãã¸ã§ã¯ãæåãæ¬å½ã«ç解ãã¦ãã¦ããã°ã©ãã³ã°ãå¾æãªã¢ã¼ããã¯ããã©ããããå± ãã®ããã å ¨ä½ã®è¨è¨ãã¡ããã¨æ¨æ²ããã¦ãã¦ããã¡ãã¨ççµåãéæããã¦ãããªããå¾ã®ä¿®æ£ã«ãèããããã
ã¢ã¼ããã¯ããä½ãã©ãã¾ã§è²¬ä»»æã¤ã®ããã¨ããèªèãæ´åããã¦ãªãããããªãã®
ç¾ä»£çã¢ã¼ããã¯ãã®ä»äº
ãã®ãããªã³ã¡ã³ãããããã¢ã¼ããã¯ããã¨ããä»äºã®å
容ã«ã¤ãã¦ã¯ãå®ã¯ããããããªãã¨èãã¦ããæ¹ãå¤ãããã«æãããã¾ããå®ã¯ãç§èªèº«ããã¢ã¼ããã¯ãã¨ããå½¹å²ã§ä»äºããã*1ããªã©ã¨æ¸ããã®ã§ãããã¢ã¼ããã¯ãã®å½¹å²ãä»äºã®ç¯å²ã«ã¤ãã¦æ±ºå®çãªã¤ã¡ã¼ã¸ãæã£ã¦ããããã§ã¯ããã¾ãããå°ãªãã¨ããITSSã®ITã¢ã¼ããã¯ãã®å®ç¾©ITSSの次期版「V2」公表へ,専門分野の分類や記述を改良 | 日経 xTECH(クロステック)ãåèã«ããã¨ãå®è£
æè¡ããããä¸æµã®ã½ãªã¥ã¼ã·ã§ã³ããã®å¾åãå¼·ãæ°ããã¾ããããæ®æ®µã®èªåã®ä»äºã¨ã¯ããé¢ãã¦ããã¨æãã¾ããä¸æ¹ã§ãã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã£âã½ããã¦ã§ã¢éçºã®ããã®ãã¿ã¼ã³ä½ç³»ãã¨ã³ã¿ã¼ãã©ã¤ãº ã¢ããªã±ã¼ã·ã§ã³ã¢ã¼ããã¯ãã£ãã¿ã¼ã³ (Object Oriented SELECTION)ã®ãããªæ¬ã§åºã¦ããã¢ã¼ããã¯ãã£ã¼ãã¿ã¼ã³ã¨ããç¨èªãèããã¨ãè¨è¨ã¬ãã«ããã¯è¦ç¹ãåºãã¨ã¯è¨ããããªãå®è£
ãããªè¦ç¹ããããã°ã©ã ã®å
¨ä½æ§é ãè¨è¨ãã人ã¨ãã解éãèªç¶ãªããã«ãæããã¾ãã
å®ã¯ã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã¨ããè¨èã®æå³ãããã®ãä½ãªã®ãã¨ãããã¨ã¯ãæ¥æ¬ã®ITæ¥çã ãã§ãªãã¦ãæµ·å¤ã§ããã¾ãã¾ãªè§£éãããããã§ããç¹ã«ãã¢ã¼ããã¯ããã³ã¼ããæ¸ãã¹ããã©ããã¨ããç¹ã«ã¤ãã¦ã¯è°è«ãåãããã¨ããã®ããã§ãããã¢ã¼ããã¯ãã¯å»ºç¯å®¶ã¨ãããã¨ãªã®ã§ã建ç©ã®ã¡ã¿ãã¡ã¼ã§èããã¨ãã¢ã¼ããã¯ããã³ã¼ããæ¸ãã¨ãããã¨ã¯ã建ç¯å®¶ãéæ§ãéã使ã£ã¦ä½æ¥ãã¦ããããã§ããã«ãä¸èªç¶ã«æããã¾ããã§ããããã½ããã¦ã§ã¢ã®ä¸çã§ã¢ã¼ããã¯ããããã°ã©ã ãæ¸ããªã©ã¨ãããã¨ã¯ãã¢ã¼ããã¯ãã®å価ã«è¦åããªãããéã®ç¡é§ä½¿ãã®ããã«èãã¦ãã人ãå¤ãããã§ãã
ããããç¾å®åé¡ã¨ãã¦ã¯ãプログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指してã§æ¸ããã¨ãããè¨èªããã¬ã¼ã ã¯ã¼ã¯ããã¼ã«ãªã©å®è£
ã¬ãã«ã®è©³ç´°ãç解ãã¦ããªãã¨ãæå¹ãªè¨è¨ãèãããã¨ã¯é£ããã¨ããäºå®ãããã¾ãã*2建ç¯ã®ã¡ã¿ãã¡ã¼ããããã¨ä¸èªç¶ã§ãããã¢ã¸ã£ã¤ã«éçºã®ãã¼ã ãªã©ããã£ã¦ãæè¿ã¯ã¢ã¼ããã¯ããããã°ã©ãã³ã°ã§ããªãã¦ã¯ãªããªãã¨ããäºå®ãé¡å¨åãã¦ããã¿ããã§ããããã§ãæµ·å¤ã§ã¯ããã°ã©ã ãæ¸ããªãã¢ã¼ããã¯ããhands-offã¢ã¼ããã¯ããããã°ã©ã ãæ¸ãã¢ã¼ããã¯ããhands-onã¢ã¼ããã¯ãã¨èªãã§åºå¥ããããã«ãªã£ã¦ããã¿ããã§ãã*3è±èªã§ãããæ¤ç´¢ããã¨ã¢ã¼ããã¯ãã®ä»äºã®åéãããããã§åºã¦ããã®ã§ããããhands-on Javaã¢ã¼ããã¯ããåéããªã©ã¨ãã使ããæ¹ãããã¿ããã§ãã
Spring Frameworkã®ä½è
ã§ããRod Johnsonã®èããExpert One-on-One J2EE Development without EJBã®74ãã¼ã¸ã§ä»¥ä¸ã®ãããªèª¬æãããã¾ãã
I believe that there is an important role for architects but that architects must retain hands-on contact with code. There is a real danger in architects who never work at the coal-face â and hence lack awareness of the myriad of practical issues that dictate the success or failure of projects â defining and dictating architecture in glorious isolation. This is a recipe for failure, and nearly always results in enormous complexity. Unfortunately, the notion that successful career progression involves a complete move away from coding dies hard, and does immense harm.
ã¢ã¼ããã¯ãã«ã¯å¤§åãªåããããã¾ãããã¢ã¼ããã¯ãã¯ã³ã¼ãã«ç´æ¥æã§è§¦ããç«å ´ã«ããªãã¦ã¯ãªããªãã¨ä¿¡ãã¾ããéçºç¾å ´ã§ã®å®å´åãçµé¨ãããã¨ã®ãªãã¢ã¼ããã¯ãï¼ãããã£ã¦ãããã¸ã§ã¯ãã®æå¦ãå·¦å³ããããããã®å®åä¸ã®åé¡ãç¥ããªãï¼ãã天ä¸ãçã«ã¢ã¼ããã¯ãã£ã¼ãå®ç¾©ãã¦æ¼ãä»ããã¨ãããã¨ã¯æ¬å½ã«å±éºãªãã¨ã§ããããã¯å¤±æã«è³ããããå¦æ¹ç®ãªã®ã§ãã£ã¦ãã»ã¼ééããªããéæ¹ããªãè¤éãªè¨è¨ã«å¸°çµãã¾ãã*4æ®å¿µãªããããã£ãªã¢ãã¹ä¸ã§æé²ããã¨å®å ¨ã«ã³ã¼ãã£ã³ã°ããæãå¼ãã¨ããèãæ¹ãæã¿ä»ãã¦ãããã¨ãããããããç大ãªè¢«å®³ãããããã¦ãã¾ãã
Software architecture can be defined only with detailed knowledge of the issues that implementing them will pose. Architects who spend all their time writing documents and working with models seldom produce realistic architectures.
ã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã£ã¼ã¯ããããå®è£ ããã®ã«å¿ è¦ãªäºé ã«é¢ããæ·±ãç¥èãéãã¦ã®ã¿å®ç¾©ãããã¨ãå¯è½ã§ãããã¹ã¦ã®ä½æ¥æéãææ¸ä½æãã¢ãã«ã®ä½æã«è²»ããã¦ãããããªã¢ã¼ããã¯ãããç¾å®çãªã¢ã¼ããã¯ãã£ã¼ãåµãåºããã¨ã¯ã»ã¨ãã©ããã¾ããã
hands-onã¨hands-offã®ã¢ã¼ããã¯ãã¯ãå¥ã
ã®å ´é¢ã§ãããããå½¹å²ãããã®ã ã¨æãã¾ãããå°ãªãã¨ã1ããã¸ã§ã¯ãã®ã¬ãã«ã§Java EEã®ãããªãã©ãããã©ã¼ã ä¸ã§ã·ã¹ãã ã®éçºãè¡ãå ´åã¯ãã¹ãã«ã®é«ãhands-onã¢ã¼ããã¯ãã®åç»ãããã¸ã§ã¯ãæåã®éµãæ¡ã£ã¦ããã¨ããã®ã¯ç´ãããªãäºå®ã§ããã¨æãã¾ãããã®ãã¨ãæ¥æ¬ã§ã¯ãã¾ã ã«åºãç¥ããã¦ããªãã®ãåé¡ã§ãããç§ãæ¯è¼çæè¿ãéä¸ããã®ç«ã¦ç´ãã®ãããã«ãã§åå ãããã¨ã®ããããã¸ã§ã¯ãã§ã¯ãhands-offã¢ã¼ããã¯ãã®å¤æã§JSFã¨JPAã¨ããJava EEã®æ¨æºä»æ§ãå°å
¥ããå°ãªãã¨ãè¨è¨ä¸ã¯DDDãåãå
¥ããæ¬æ°ãªè¨è¨ãæ§æ³ãã¦ãããããªã®ã§ãããæ§è½ãã¾ã£ããåºããäºç®ã大å¹
ã«è¶
éãã¦1å¹´ããªãªã¼ã¹ã延æããä¸ã«ã大é¨åã®è¨è¨è¦ç´ããè¡ã£ãã¨ããã¨ãããããã¾ããããã®å¤±æã®ä¸»è¦ãªåå ã¯ãJPAã®è©³ç´°ãªä»æ§ãéçºãå¼ãç¶ãã ããã¸ã§ã¯ãã¡ã³ãã¼ã誰ãç解ãã¦ããããlazyãã¼ãã£ã³ã°ããSQLã¨O/Rãããã³ã°ã®ä½¿ãåããªã©ç´°ããã¨ããã§é©åãªè¨è¨å¤æãã§ãã¦ããªãã£ããã¨ã大ããã£ãã§ãã
æå¾ã«ãä¸ç´ããã°ã©ãã¼ã¨hands-onã¢ã¼ããã¯ãã¨ã®å½¹å²ã®éãã«ã¤ãã¦ç§ã®èãæ¹ãè¿°ã¹ã¾ããã¢ã¼ããã¯ãã§ãã以ä¸ãè¦ä»¶ã¯ãã¡ãããã¹ã±ã¸ã¥ã¼ã«ãã¡ã³ãã¼ã®çµé¨ãªã©ãã¾ãã¾ãªè¦³ç¹ãããå
¨ä½ã¨ãã¦æé©ãªæ¹æ³ãèããã¨ããã®ããã¤ã³ãã«ãªãã¨æã£ã¦ãã¾ããè¨è¨ã§ã¯ã©ããã¦ããã£ã¡ãç«ã¦ãã¨ãã£ã¡ãç«ããã¨ãããã¬ã¼ããªãã®é¢ä¿ã«é¥ããã¨ãå¤ãã®ã§ãããå
¨ä½ã®ãã©ã³ã¹ãèãã¦ä¸é¨ã¯å¦¥åãããããªãã©ã³ã¹æè¦ãéè¦ãªã®ã§ã¯ã¨æãã¾ããã¾ããå®è£
ä¸ã¡ãã£ã¨ä»æ§ãå¤ããã ãã§ã使ãåæãåä¸ããã ãã§ãªãã大å¹
ã«å·¥æ°ãåæ¸ã§ãããããªæå¹ãªæ段ããããããªå ´åã¯ãå¯è½ãªç¯å²ã§ä¸æµã«ãã£ã¼ãããã¯ããã¨ãã£ããããªå½¹å²ãhands-onã¢ã¼ããã¯ãã«ã¯ããã¨æãã¾ããè¦ããã«ãã¦ã¼ã¶ã¼ãããã¸ã§ã¯ãå
¨ä½ã«å¯¾ããè¦ç¹ãå°ãã¯å¿
è¦ããªã¨æãã¾ããããããã¨ãããç¹å®ã®ã¢ã¸ã¥ã¼ã«ã®å®è£
ãæ
å½ããä¸è¬ã®ããã°ã©ãã¼ã¨ã®éããã¨æãã¾ãã
*1:ããã¾ã§ãä¼ç¤¾ã®å¶æ¥çã«ã¢ã¼ããã¯ãå価ã§ä»äºãããã¨ããæå³ã§ããã¨ã¯ãã£ã¦ãå®éã¯é常ã®SEå価ã¨å¤§å·®ããªãã§ããPMããã¯éé¡çã«ã¯ã¯ããã«ä¸ãä¸è¬ã®PGå価ããã¯æ°å²ç¨åº¦ã¯é«ãã¨æãã¾ããã
*2:ãã®ã¢ã¼ããã¯ãã£ã¼ã®è¨è¨ã¨ã³ã¼ãã£ã³ã°ã®é¢ä¿ã«ã¤ãã¦ã¯ããã¡ã¦ã©ã¼ã®æåãªè«æã§ãè«ãããã¦ãã¾ããã- 設計の終焉?
*3:æ¥æ¬èªã«ããã¦è¨³ãã¨ä¸æµã¢ã¼ããã¯ããä¸æµã¢ã¼ããã¯ãã¨ãã£ããããªæå³ã«ãªãããããã¾ããã
*4:ãããªãã²ã¨ã¤ã®åå ã¨ãã¦ãhands-offã¢ã¼ããã¯ããããã°ã©ãã¼ã®è¦å´ãèããããããã¨è¤éãªååãæ¡ç¨ããããã¨ããå¾åãèããããã¨æãã¾ããåæ£ãªãã¸ã§ã¯ããWebãµã¼ãã¹ãESBãããã¦ãæè¿ã¯ã¯ã©ã¦ããªã©ããããã¦å¤§è¦æ¨¡ã§è¤éãªè¨è¨ã«ããæ¹ãä¼ç¤¾ãå²ãã£ã¦hands-offã¢ã¼ããã¯ãèªèº«ã®è©ä¾¡ãé«ããªãã¨ããã¨ãããããã®ã§ããããããããã¢ã¼ããã¯ãã£ã¼ããã¼ããã¯ãã£ã¼ã¨å¼ã¶ããã§ããMarchitecture - Wikipedia