ãæ¸ããã®ã¯ç¹å¥ãªéå ·
This is why you shouldn't interrupt a programmer (ãªãããã°ã©ãã®ä½æ¥ã«å²ãè¾¼ãã¹ãã§ã¯ãªãã) ã¨ãã4ã³ã漫ç»ã話é¡ã«ãªã£ã¦ãããããã¯å¥ã«ããã°ã©ãã§ã¯ãªãã¦ãããããããããã¨ããæãã®è©±ã
ã³ã¡ã³ããè¦ãã¨ãã ãã使¥ã䏿ãã¦ãããåéã§ããããã«èªåã®èãããã¨ããªãã¹ãæ¸ãåºãããã«ãã¦ããã¨ãã人ãçµæ§å¤ãã£ãããªãã»ã©ã
仿¥ã¯é¨ãéã£ãããã§äºå®ãä¸ã¤ãã£ã³ã»ã«ã«ãªã£ããã¨ã ããã¡ããã©ããæ©ä¼ãªã®ã§ãæç« ã§ä½ããæ¸ãã¨ãããã¨ã«ã¤ãã¦èªåãæã£ã¦ãããã¨ãæ¸ãã¦ã¿ããã¨ãããã以å Software Design ã®ããã¥ã¡ã³ãã®æ¸ãæ¹ç¹éã¿ãããªå·ã«ä¼¼ããããªè¶£æ¨ã®è©±ãå¯ç¨¿ããã®ã ãã©ããæ¸ããã¨ããã®ã¯åã«ç©äºãå¿ããªãããã«ããããã®è¡çºã«çã¾ããã®ã§ã¯ãªãã¦ãèªåã®èããæ´çããããã®éå ·ãªã®ã ãã¨ãããã¨ãå ¨ä½ãéãã¦è¨ããããã¨ã§ãã
ãæ¸ãè¨èãã¯èªåã®å¿ã®ä¸ã«éãã¦ããããã®éå ·
ã¾ã忬éæããå¼ç¨ããã
ãæ¸ãè¨èãã¯èªåã®å¿ã®ä¸ã«éãã¦ããããã®éå ·
ãµã ãã¯ã¾ã£ããæèãã¦ãªãã¨æãããã©ãæ¸ããã¨ã¨ã話ãã¦ç¸æã«ãããéãããããã¨ãããã¨ã¯ã¾ã£ããå¥ã®ãã¨ãªãã§ããããæ¸ãè¨èãã£ã¦ããã®ã¯ãä½ãå¾ä½ã®ç¥ããªãã¨ããããããæ¸ãã¦ã¿ãã¨ãèªåã§ãæ°ãã¤ãã¦ããªãã£ãèªåèªèº«ã®æ°æã¡ãããããã¨ãããããããããã£ã¨æ·±ãæãä¸ãã¦ãããã¨ãã§ãããã話ãè¨èããç¸æã«ä½ããä¼ããããã®éå ·ã ã¨ãããããæ¸ãè¨èãã¯èªåã®å¿ã®ä¸ã«éãã¦ããããã®éå ·ã ã¨ãã£ã¦ãããã
ãã²ã¨ã 15æ³ã®å¯ºåå±ãããã
ããããã ãã§èªåã®è¨ããããã¨ãè¨ãåã£ãæããããããã©ãããã®æã®ãã¨ãè¨ã£ã¦ããã®ã¯ä½ã御大ã ãã§ã¯ãªãããããªä½å®¶ã®ã¨ãã»ã¤ããããã¯ç¥çç·¨éãã©ãããã¨ããæ¬ã§ãä¼¼ããããªè¨è¿°ãè¯ãè¦ãã
ããèªåãä½ãããªããã°ãããªãããæ´çããã®ã«ãã¨ã«ããèªåã®ããã¹ããã¨ãæç« ã«ãã¦æ¸ãåºãã¿ãããªè©±ãããããã©ããã®æã® How To ã®æå¹æ§ããããã«éããã®ã ã¨æãã
ãªãæ¸ãã¨ãããã¨ãããããæ§è³ªãæã£ã¦ããã®ããã¨ããã®ã¯ãããããªè¦å ãããã¨æãããã©ããã²ã¨ã¤ã«ã¯ãæ¸ãè¡çºã«ã¯ä»èªåã§èãããã¨ãæç« ã¨ããå½¢ã§å¤é¨åãããããè¶³ãããã«æ¬¡ã®æèã®ã¹ãããã¸é²ãã¨ãããã¨ãå¼·å¶ããå´é¢ãããããã大ããã¨æã£ã¦ãããã¤ã¾ããæ¸ãè¡çºã¯æèéç¨ã®ä¸ç¢ºå®æ§ã¿ãããªãã®ãæå°éã«çããªããç©äºãèãããã¬ã¼ã ã¯ã¼ã¯ã«ãªã£ã¦ããã
ã³ã¼ããæ¸ãã¦ããæä¸ã«è§£æ±ºçãæãæµ®ãã¶
ããã°ã©ãã³ã°ããã¦ããã¨ãã³ã¼ããæ¸ãã¾ã§ã¯å ¨ãæãã¤ããªãã£ããããªã¢ã¤ãã¢ã解決çãæ¬¡ã ã¨æãæµ®ãã¶ããªãã¦ãã¨ãæ¬å½ã«é »ç¹ã«ãããããã¯ããã°ã©ããªã誰ããããããä½é¨ããããã¨ãããã¯ãã ã
ã³ã¼ããæ¸ããªããèããã¨ãããã¨ãåµé çãªã½ããã¦ã§ã¢ãä½ãã¨ãããã¨ã¨ã©ãããé¢ä¿ãããããªãã¦ã®ã¯ãã®ãããã«ã¼ã¨ç»å®¶ãã«ãæ¸ããã¦ãã¦ãããã«æåããã¦èªåãæ http://d.hatena.ne.jp/naoya/20050518/1116425594 ãªãã¦ã¨ã³ããªãæ¸ããã(ããã¦è¥æ°ã®è³ãã§ dis ãå ããããã«ã¡ãã£ã¨çä¸ãã)
ãã®ãã³ã¼ããæ¸ããªããåãã¦è§£æ±ºçãæãæµ®ãã¶ï½¥ï½¥ï½¥ã¿ãããªãã¨ã¨ãå ã®æç« ãæ¸ããã¨ã§æ°ããçºè¦ãããã¨ãããã¨ã¯è¯ãã«ã¦ãã â ã¨æã£ã¦ãããããã°ã©ãã³ã°ã«ããã¦ã¯ã³ã¼ãã¨ããå½¢ã§æèãå¤é¨åããæç« ã®å ´åã¯èªç¶è¨èªã¨ããããã¡ã§å¤é¨åãããããã°ã©ãã³ã°ã«ãã¦ãèªç¶è¨èªã«ãã¦ããè¨èªãã«ã¯æ¬æ¥çã«ããããæ©è½ããããã¨ãããã¨ãªã®ãããããªãã
ã¡ã¢é
åé ã®è©±ã«æ»ãã¨ããããªãã¨ããèªåããå°ãæéã®ããããããªä½æ¥ã ã¨ãæéã®ãããåé¡è§£æ±ºãããã¨ãã¯ã¨ãã£ã¿ãç«ã¡ä¸ãã¦ãããã«èªåã®æèéç¨ã¿ãããªã®ãã¡ã¢ããªããé²ãã¦ãããããããèªåã®å ´åã¯å²ãè¾¼ã¾ããã¨ãã«ä½æ¥ãåéãããããã¨ããããã¯ãèªåèªèº«ã®æèã®æ´çã®ããã«ããããã¦ããã¨ããå´é¢ãå¼·ãã
ä¾ãã°ã¡ããã©æè¿ã¾ã Docker ã触ã£ã¦ããã®ã ãã©ããã®ã¨ãã®ã¡ã¢ã®ä¸é¨ã¯ãããªæãã«ãªã£ã¦ããã
% docker export cbe3fe76c418 > files.tar % cat files.tar | docker import - naoya:test ã ã»ãããã commit ã§ã¯ãã¡ã¤ã«ã·ã¹ãã ã ãã commit ããããã ã£ã? ã- ããã»ã¹ã®å®è¡ç¶æ ãå«ã㦠commit ã§ããã¨æã£ããã ã・・・ ã ã»ãããã«ããã¯æãè¾¼ã¿ã£ã½ãã ã- http://d.hatena.ne.jp/naoya/20130620/1371729625 ã- Dockerfile ã§ CMD ["/usr/sbin/sshd", "-D"] ã¨ããã¦ãã ã ã»Q. Docker ã®ä¸ã®ã³ã³ããã£ã¦æä½éã®ãµã¼ãã¹ãåãã¦ãªããã ãã©ããã§ ã- é·æééç¨ã§ããã®ã? ã ã»ã¨ãããããã¡ã¤ã«ã·ã¹ãã ã export ã㦠import ããã° virtualbox <=> AWS ã®äº¤æã¯å¯è½ãªã®ã¯åãã£ã ã- OS éã£ã¦ã¦ããã®ããã¯è¬ ...
å¾ããèªã¿è¿ãã¨ãã«ã¿ãããªã®ã ããã©ããæèã®ãéç¨ããªã®ã§ãããã§ããã®ã§ããã
ã¡ãªã¿ã«èªåã¯ä¼è°ã®éããèªåããã¡ã·ãªãã¼ã¿ã¼å½¹ã«ãªããããªã¨ãã¯ã¢ãã¿ã«ã¨ãã£ã¿ãæ ãåºãã¦çºè¨ãæ¸ãã¦æ´çããªãããã¼ãã£ã³ã°ãé²ããããããã¦ããã°ãå¾ã è°äºé²ãæ¸ãèµ·ããæéãå¿ è¦ãªããããªã«ããä¼è°ã®è©±é¡ãçºæ£ããªãã¦ãããè¨ã£ã¦ã¿ãã°ãæ®æ®µèªåããã¹ã¯ãããä¸ã§ãã£ã¦ãããã¨ããä¼è°ã¨ããå ´ã§å®è·µãã¦ããã ãã§ãããã
Google ã® DesignDoc
æè¿ãã¾ã話é¡ã«ãªããªããªã£ãããã©ããGoogle ã«ã¯ãã¨ã³ã¸ãã¢ãä½ãã®è¨è¨ãå®è£ ã«åãæããã«ããã£ã¦æ¸ãã¹ã DesignDoc ã¨å¼ã°ããããã¥ã¡ã³ããã©ã¼ãããããã (ãã£ã?) ããã ã詳ãã㯠Google の Design Doc について - フリーフォーム フリークアウト ã®ã¨ã³ããªãªã©ã«æ¸ããã¦ããã
ã½ããã¦ã§ã¢ã®å¤æ´ã®èæ¯ã ã¨ãè¨è¨ã夿´ã®æ¦è¦ãã»ãã¥ãªãã£çãªæ¸å¿µç¹ãªã©ããã©ã¤ãã®ããã¥ã¡ã³ãã«ã¾ã¨ãã¾ãããã¿ãããªè©±ãªã®ã ããã©ããé¢ç½ãã®ã¯ãã®ææ¸ã¯ä»äººã¨å ±æããã®ããã¡ãããã®ç®çã®ä¸ã¤ã ããã©ãããã大ããªç®çã¨ãã¦ã使¥ããã¨ã³ã¸ãã¢ã®æèæ´çã®ããã®éå ·ã¨ãã¦æ´»ç¨ããã¦ãã (ãã?) ã¨ãããã¨ã ã
æ¸ãã¦ã¿ã¦åãã¦ããããã¨ãããããããªãã³ã¼ããæ¸ãããããªãã¦ããããäºåã«æç« ã¨ãã¦æ¸ãã¦æ´çãããã¨ã§ãèªåã§ãæ°ã¥ãã¦ããªãã£ãæ¸å¿µç¹ã課é¡ã解決çãæ´çãã¦ãã使¥ã«åãæããã¾ããã・・・ ãã®ããã®ããã¥ã¡ã³ãã§ãããã¨ãããã¨ãããã
DesignDoc ã®ä»çµã¿ã¯å¿ ãããä¸è½è¬ã§ã¯ãªãã¨ãããããã¾ãåã£ã¦ãªãç®æããã£ãã¨ãã話ãèãããã¨ãããã®ã ããã©ããå°ãªãã¨ãéå»ã«èªåãä¼ã£ã Googler ã®äººã¯ DesignDoc ã¯é常ã«éè¦ã ã¨èªã£ã¦ãã¦ãã¨ã³ã¸ãã¢ãããã¥ã¡ã³ããæ¸ãããã¦ããã©ãã¿ãããªè©±ã§ã¯ãªããèªåã®ä»äºãå©ããããã®ãã¼ã«ã¨ã㦠DesignDoc ã¨ããä»çµã¿ã¯ã¨ã¦ãè¯ãã¨æãã¨è©ä¾¡ãã¦ããããã ããã®è¯ããã©ãããè¯ããªã®ãã¯ãªããªãå¤ã®ä¸çã«ã¯ä¼ãããªãã¿ããã§ãWebKit ããã¸ã§ã¯ãã§ Googler ã DesignDoc ãæ¸ããã¨ãããå½ç¶ã®ããã«ãã¦ãããä»é£å¶ããããã³ããå ¥ã£ãã¨ããããªè©±ããã£ãããããã
éå»ã«èªåã®ä»äºã§ã DesignDoc ãçä¼¼ã¦ããã¸ã§ã¯ãéå§æã«å¿ ãä¼¼ããããªããã¥ã¡ã³ããæ¸ãããã«ãã¦ã¿ããããã®ä»çµã¿ã¯ã¨ã¦ããã¾ãåã£ã¦ãããããã¸ã§ã¯ãå å®¹ãæ¬äººãæ´çããããã«ãè¯ãã£ãããããã¸ã§ã¯ãã®ã¬ãã¥ã¼ãä¾é ¼ãããå´ã¨ãã¦ããããããã£ãããä»ãã¼ã ã«åããã¸ã§ã¯ãã®æ¦è¦ãä¼ããã®ã«ãè¯ãã£ããè¯ãã¢ã¤ãã¢ã¨ã¯è¤æ°ã®åé¡ãä¸åº¦ã«è§£æ±ºããã¢ã¤ãã¢ã ããªãã¦ãã話ãæããã¨ããã§ããã
ãã¹ãããæ¸ããã¨ããè¡çº
èªåã®æèãå ã«ã¢ã¦ãããããããã¨ãã観ç¹ã§ããã¨ãã¹ãé§åéçºãªããããã®æèã§èå¯ã§ããã¨ãããããã¨æãã
ãã¹ããå ã«æ¸ããæ¹ãã¤ã³ã¿ãã§ã¼ã¹ã綺éºã«ãªãã¨ããã¢ã¸ã¥ã¼ã©ããªãã£ãé«ã¾ãã¨ãããããããæè¿ãã½ããã¦ã§ã¢ã®èªåãã¹ãã¨ããã° BDD ã¹ã¿ã¤ã« (RSpec ã¿ãããªã®) ã主æµã ããã©ããå ã«èªåãã¨ãã£ã¿ã«ã¡ã¢ãã¦ãã・・・ã¿ãããªè¡çºãããããã spec ãã¡ã¤ã«ã«æ¸ããã¨ãããã«ç¸å½ãã¦ãããªãã¦ããããã°ã©ããçµæ§ãããã ã
èªåã¯ããã¾ã§ãã¹ãã¨ã³ã¸ãã¢åããªãã®ã§ããããªããã¹ãã§ãããããã¨ã表ç¾ããã¨ããã¬ãã«ã«ã¯ãªããªãå°éã§ãããã«ãªãã
ä½ã«ãã¦ããã¹ããæ¸ãã¨ããã®ãã¾ããæèãæ´çããããã®ãã¬ã¼ã ã¯ã¼ã¯ã«ãªã£ã¦ããã¨ãããããã¨æãããã
ãã¼ã ã§ã®å ±æ
使¥è¨é²ãDesignDocããã¹ãããªãã§ããããªã®ã ããããã£ã¦æèã®æ´çã®ããã«æ¸ããææ¸ãããã®ã¾ã¾èªåã®å¼ãåºãã«ãã¾ã£ã¦ããã ãã¨ããã®ã¯ã¡ãã£ã¨å¿ä½ãªãã
Youããã£ããæ¸ããã®ã ããå ±æãã¡ãããªããã¨ããããã ã
å æ¥ Webサービス開発現場から / 近頃の開発のやり方 ・・・ Github と Pull Request とコードレビュー - naoyaのはてなダイアリー ã®ä¸ã§ã触ããã®ã ããèªåã¯ããããææ¸ããªãã¹ããã¼ã ãçµç¹ã§å ±æããã¨ãããã¨ããçµç¹ãéå¶ãã¦ããä¸ã§é·æçã«ã¨ã¦ãéè¦ãªãã¨ã ã¨æã£ã¦ããããã®ããã®éå ·ã¨ãã¦ãèªåãã¯ã¦ãªã«ããã¨ãã¯ã¯ã¦ãªã°ã«ã¼ãããã£ãããæè¿ã¯(ã¾ãããããä¸è¶³ãã¦ãã¨ãããããã®ã ãä»å¾ã®æå¾ ãè¾¼ãã¦) Qiita Team ã使ã£ã¦ãããã¯ãã¯ããã社ã«ã¯å æè¡é¨é·ãä½ã£ãã°ã«ã¼ãããã¨ããã®ããããã¨ããã®ã¯ä»æã® Web+DB PRESS ã«æ¸ããã¦ããã
å¾ããã®æ¤ç´¢æ§ããã¬ãã¸ã·ã§ã¢ãéææ§ã®ç¢ºä¿ãªã©ãããããªå¹æãããããã©ãããããå½ããåã«ããã¦ããçµç¹ã¨ããã§ãªãçµç¹ã¨ããã®ãå¹¾ã¤ãè¦ã¦ãã¦ããã£ã±ããå½ããåã«ããã¦ãããã¼ã ã»ã©ãã¼ã å ã®æé»ç¥ã¯å°ãªãããã§ãã¦ã¹ããã³ã°ã«ã«ãã£ã¼ãæã£ã¦ãããããªãå¥åº·ç¶æ ã®è¯ããã¼ã ãç¶æã§ãã¦ããããã«æããã
ãããªããã§ãèªåãçæ³ã¨ãããã¼ã ã§ã¯ãã¿ããªãèªåã®æèã®æ´çã®ããã«ããã¥ã¡ã³ããæ¯ãèããã¼ã¹ã®ãã¹ããæ¸ãã¦ãã¦ããããå ±æããã¦ãã¦ãå ±æããã¦ããã¨ãã£ã¦ãåã« Wiki ã«ç½®ããã¦ããã¨ãã§ã¯ãªããã£ã¼ãã®ãããªå½¢ã§èªåã®æå ã«é ä¿¡ããã¦ããããããããã¨ãå½ããåã«è¡ããã¦ãã¦æ¬²ããã¨æã£ã¦ãããããããã£ã¦ã¿ãã¨ãããã®ã ããå½ããåã®ç¶æ ã«ããã¾ã§ã«ã¯çµæ§è¦å´ãè¦ãã®ã§ãã¼ã ãå°ããªãã¡ããå®è·µãã¦ããã¨ãããã¨ãé常ã«éè¦ã ãã¨ãæã£ã¦ããã
以ä¸ããããã¨ãã¨ãã®ãªã話ã«ãªã£ã¦ããããä½ã«ãã¦ãããå¿ããªãããã«æ¸ããã§ã¯ãªããèããããã«æ¸ããã¨ãããã¨ãããã¦æ¸ããããã«ã¯ã§ããã°å ±æããããããããã¨ãç¶ãã¦ç¿æ £åãã¦ããã¨è¯ãã ãã・・・ã¨å¸¸ã æã£ã¦ãã¦ãããã¾ã§é·ã ã¨æ¸ãã¦ããã¨ãããããã¯ã¡ãã£ã¨ããã°ããããããªãããªç¨åº¦ã®ãã®ã§ã¯ãªããèªåã¯ãããããã¨ã«å¼·ããã ãããæã£ã¦ããæ´¾ã§ããã¾ãããªããªãå£é ã§ãããä¼ããã®ã¯é£ããã®ã§ãããããå ã«ä¸ç·ã«ä»äºããã人ãéè¯ããããèªãã§ããããã¨ãæå¾ ãã¤ã¤ãããã«æ¸ãæ®ãã¦ããã
ããã¦ãã®ã¨ã³ããªãæ¸ããã¨ãããã¨ãéãã¦ãèªåã®ä¸ã§ããããªé¢¨ã«èãã¦ããã®ã ãªã¨æ´çãããã¨ãããªããã¤ãã¦ããã®ã§ããã