æ ªå¼ä¼ç¤¾ã¨ã¹ãã©ãã³ã°ãéè·ãã¾ãã
7æ31æ¥ä»ã§2å¹´åã»ã©å¨ç±ããæ ªå¼ä¼ç¤¾ã¨ã¹ãã©ãã³ã°ãéè·ãã¾ãããéè·ç³»ã®ã¨ã³ããªã¼ã¯ãã¯ãã稼ããã¨èãã¦ãç¶æ³å ±åãæ¸ããããªã¨æãã¾ãã
åè·ã§ãã£ã¦ãããã¨
åè·ã¯ä¸»ã«Javaã«ããã¢ããªã±ã¼ã·ã§ã³éçºã主æ¥åã§ããããçããWebç³»ã¨ããããã§ãããã¾ãããå
¥ç¤¾ããé ã¯ãSwingã§ã®ãã¹ã¯ãããã¢ããªã±ã¼ã·ã§ã³ã主ãããã¯ãã§ãããæè¿ã¯Webã¢ããªã±ã¼ã·ã§ã³ãã¹ããã©ç³»ããã£ã¦ãã¾ãããããªä¼ç¤¾ã§èªåãè¡ã£ã¦ãããã¨ã¯ãéçºç°å¢ã®æ´åãã³ã¼ãå質ã®åä¸ãããã¸ã§ã¯ãå
¨ä½ã®é²ãæ¹ã®æ¹åãªã©ã§ãã
å
·ä½çã«ã¯ãã¦ããããã¹ããèªã¿ãããã³ã¼ãããªãã¡ã¯ã¿ãªã³ã°ãã¬ãã¥ã¼ãKPTãã«ã³ãã³ãTrac/Redmineããã¼ã¸ã§ã³ç®¡çãç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ãã¦ã¼ã¹ã±ã¼ã¹é§åéçºãªã©ãªã©ã§ãã
ã¶ã£ã¡ããè¨ãã°ãå
¥ç¤¾ãã彿ã¯ãä¸è¾ã«ãæè¡ã¬ãã«ã¯é«ãã¨è¨ãã¾ããã§ããããã¼ã¸ã§ã³ç®¡çã¯CVSã§ããããExcelã®èª²é¡ç®¡ç表ãæå³ã®ç¡ããã§ãã¯ã·ã¼ããªã©ããã客ããã«è¨ãããã¾ã¾ä½¿ã£ã¦ãããã©ãã«ã§ããããããªéçºç¾å ´ã§ãã
ã§ããã2å¹´åã»ã©çµéããã¦ããããã¹ããCIãèªç¶ã«ããéçºç°å¢ã«ã¾ã§ãªã£ã¦ãã¾ããå°ãªãã¨ãæå¹ã®ãããªå°æ¹é½å¸ã§ããã®ãããªéçºç°å¢ãæ´åããã¦ããä¼ç¤¾ã¯å°ãªãã¨æãã¾ãï¼ããããããªéçºç°å¢ã§ä»äºãããã®ã§ããã°ã³ã³ã¿ã¯ããã¦ã¿ã¦ãã ããï¼ã
ãªããæ°ããææ³ãå°å ¥ãããã®ãï¼
æ°ããææ³ã¯ãå½ç¶ã®ããã«å¤ãææ³ã®åé¡ç¹ã解決ããããã«çã¾ãã¾ããããªã®ã§ãæ°ããäºãå°å
¥ãã¦ããã¨å¹çããå質ãé«ããªã£ã¦ããã¾ãã
ã¨ããã®ã¯å»ºåã§ãæ°ããææ³ãå°å
¥ãã¦ããæ¹ãæ¥½ããããã§ãã
ãã£ã¨åãããæ¹ããã£ã¦ããä¿å®çãªç°å¢ã¯åºæ¿ãããã¾ãããæ°ããäºã試ãã°å¤±æããã¾ãã失æããå¦ã¶ãã¨ãå¤ãã§ããããããä¹ãè¶ããã°å¹çããããªãã¾ããå¦ã¶ãã¨ã¯å¤§å¤ã§ãããæ°ããäºãå¦ã¶ã®ã¯ãã©ã¤ãã¼ãã®æéã使ãã¾ãããããè·å ´ã§å°å
¥ãã¾ããåé¡ãããã°èªå®
ã§å¯¾çãç·´ããã¨ãããã¾ãã
ã§ãããããæ¥½ããã
æ°ããææ³ãå°å ¥ãããã¨ã«ããè¯ãç¹
ä½ã¯ã¨ããããèªåãæ¥½ããã§ãã好ããªã¨ã³ã¸ãã¢ãªã³ã°ãä»äºã«ãã以ä¸ã楽ãããªããªã£ããæ¥çãã身ãå¼ãããã¨èãã¦ãã¾ããä»äºãç¶ããã¢ããã¼ã·ã§ã³ããããä¸çªã§ãã
次ã«è¯ãç¹ã¨ãã¦ã社å¡éãªã©ã§æ²¢å±±ã®æè¡çãªè©±ãã§ãã¾ããããã§ããªãããã§ããªãã¨è°è«ãã¦ãä¸ç·ã«è§£æ±ºããã£ã¦ãã¼ã ã«ããéçºã®ééå³ã§ããæã«ã¯æè¦ãã¶ã¤ããã¾ããããã§ããä¿å®çã«äºãªãã主義ã§ãããããã£ã¨æ¥½ããã§ããããã¦ãæ°ãã¤ãã°ä»²éãæ°ããäºãè¦ã¤ãã¦ãã¾ãããããªãã°èªåãæé·ã§ãã¾ãã
å¿è«ãææ°ã®ææ³ãé§ä½¿ãã¦ããã®ã§ãå質ãçç£æ§ããããªãã¾ããTDDã¾ã§ã¯å®å
¨ã«å°å
¥ãã¦ãã¾ããã§ããããã¦ããããã¹ããæ ¹ãããå½±é¿ã§ãåèªã§ä½ãã¯ã©ã¹ãã¡ã½ããã®æå³ãèããããã«ãªãã¾ãããå¾ã§å°ããªãããã«ç¸è«ããã·ã¼ã³ãå¢ãã¾ãããCIã§å¸¸ã«ãã«ãã¨ãã¹ããèµ°ãããã«ãªã£ããããç·æ¥ãªãªã¼ã¹ã«ãè½ã¡çãã¦å¯¾å¿ã§ããããã«ãªãã¾ãããã¦ã¼ã¹ã±ã¼ã¹ã®å°å
¥ã«ãããç¡é§ãªæ©è½ãçããã¨ããã¹ãã±ã¼ã¹ã®æ½åºãã¹ã ã¼ãºã«ãªãã¾ãããå¿
è¦ãªäºãä¸éãã§ããããã«ãªã£ãããã使¥è¦ç©ããã®ç²¾åº¦ãé«ããªãã¾ããã
æ°ããææ³ãå°å ¥ãããã¨ã«ããæªãç¹
ã¨ããããæ°ããææ³ãå°å
¥ãã¦ããã¨ãæªãæå³ã§ãåå¦åå¿ãèµ·ããããã§ããåºæ¬çã«ããªãã§å¤ããã®ï¼ä»ã¾ã§ã®ããæ¹ã§ããããããã¨ã®æ¦ãã§ãã
ä¿å®æ´¾ã¨ãã¦ã¯ãæ°ããäºãè¦ããã¢ããã¼ã·ã§ã³ã¯ããã¾ãããããã¯ç¡é§ãªåªåã§ããããåªåããã«ä»ã®ç¶æ³ãç¶ãããããªãã°ããã§è¯ãã®ã§ãï¼å¿è«ãä¿å®çãªãã¨ãéè¦ãªãã¡ã¤ã³ãããã¾ãï¼ã
ãã®è§£æ±ºæ¹æ³ã¯ã²ã¨ã¤ã ãããã¾ããæ¹é©æ´¾å¤æ°ã«ãã¦ãã¾ãã°è¯ãã®ã§ããï¼äººãã¼ã ã§ããã°ãæ¹é©æ´¾ãï¼äººããã°å
åã§ããä¿å®æ´¾ã®ä¸ã«ã¯å®ç§ãªä¿å®æ´¾ã®ä»ã«ã夿°æ´¾ãå¤ãå±
ã¾ããå½±é¿åã®å¼·ãæ¹ã«ã¤ã人ãå«ãã¦ï¼äººä¸ï¼äººã«ãªã£ã¦ãã¾ãã°ãç´ç²ãªä¿å®æ´¾ãæ¼ããè¾¼ãã¾ããããã¦ããããªä¿å®æ´¾ããã£ã¦ã¿ãããªãã ãã§ããã£ã¦ã¿ãã°æå¤ã¨æ¥½ããã§ããã¾ããé£ããå«ãã¿ãããªããã§ãããã¾ããä¸ã«ã¯ã©ãã«ããªããªã人ãããã¨æãã¾ããã»ã»ã»ã
ããããã¨ã¯ãã ãããçµãã£ã
ããã»ã©å¤§ããªä¼ç¤¾ã§ãããã¾ãããå
¥ç¤¾ãã¦ï¼å¹´ãããã¨ãéçºç°å¢å¨ãã®ã¢ãããã¼ããã»ã¨ãã©çµããã¾ãããæè¿ã§ã¯ãMercurial + Jenkins + Redmine ã®ç°å¢ãæ´ã£ã¦ãã¾ããããæå¾ã®ããã¸ã§ã¯ãã§ã¯Cucumeber + Seleniumã§ã®ãã¹ãã®èªååã試ãã¾ãããã¾ã£ããæ¹åç¹ããªãããã§ãããã¾ãããããããããã¨ã¯ã ããããã£ãããªã¨ããæã§ããå»å¹´ã¯ãå¢ãã«ä»»ãã¦ããã©ã¤ãã¼ãã§JUnitå®è·µå
¥éãå·çãã¾ããã
JUnitå®è·µå
¥éã®å·çå¾ãããããã§ããããããããããã¨ã¯ã ãããçµãã£ãã¨æãã¯ããã¾ãã
ããã«ã±ã¯çªç¶ãã§ãå¿ ç¶
è²ã
ãªçµç·¯ã§è»¢è·ãã¦ï¼å¹´ã»ã©éãã¾ãããæ°ãããã¨ãã©ãã©ãã¨å°å
¥ãã¦ã«ã³ãã«å¤ã«ãªããããªå½¹å²ãã ãããçµãã£ãããªã¨æããæ°ããäºãæ¢ãå§ãã¾ããMongoDBãªã©ã«è峿ã£ãããã¦ããããã¹ãããåå
¥ãã¹ãã®èªååããã£ã¨èª¿ã¹ãããã©ããã¦ãä»ã®ã¹ãã«ã®å»¶é·ã§èããäºãå¤ãã£ããã¨æãã¾ãã
ãããªä¸ã§ãå·çã®åå¾ããæ±äº¬ã«è¡ãæ©ä¼ããããJavaOne Tokyoã®æè¦ªä¼ã§都元ダイスケããã¨åºä¼ãã¾ããï¼ãããã§ã¯ç¥ã£ã¦ãããã©ãªã¢ã«ã¨ããæå³ã§ï¼ããã®å¾ãFacebookãªã©ã¨ãã§çµ¡ãã§ããã®ã§ããããµã¨ããããã«ã±ã§ãæ°ã転è·ããã°ããã®ã¯ã©ã¹ã¡ã½ããæ ªå¼ä¼ç¤¾ã¸é»æè»¢è·ãããããªæµãã«ãªãã¾ããï¼ãã®ãããã®çµç·¯ã¯å¾æ¥ï¼ã
æ¬å½ã«å¶ç¶ã¨å¢ãã ã£ãã®ã§ãããããï¼å¹´åãæ¯ãè¿ãã¨ããããªãã«æå³ã®ããã¹ããããè¸ãã§ããããããããã®æ©ä¼ã«å·¡ãä¼ããã¨æãã¾ãããããåç°ããã«ä¼ã£ã¦ãªãã£ããããããTDDBCã主å¬ããªãã£ããããããã¦ããããã¹ãããã£ã¨åå¼·ããªãã£ããããããåè·ã«æ°ããæè¡ãå°å
¥ããªãã£ãããããããã®å°å
¥ã失æãã¦ãããªãããããJUnitå®è·µå
¥éãå·çãã¦ããªãã£ããã»ã»ã»ã¨ã
æ°ãããã¨ã«ãã£ã¬ã³ã¸ããã
次è·ã§ã¯ä¸»ã«AWSãæ±ãã¨ã³ã¸ãã¢ã¨ãªãã¾ãã
Google App Engineã¯å°ã触ã£ã¦ãã¾ããããAWSã¯VPSç¨åº¦ã«ããã£ããã¨ãããç¨åº¦ã§ããåºæ¬çã«ã¾ã£ããæªç¥ã®é åã§ããå¿è«ãåºæ¬çãªLinuxã³ãã³ãã¯ä½¿ãã¾ãããJavaã®Webã¢ããªéçºã§ç°å¢æ§ç¯ãããã¨ããããªã¬ãã«ã§ãããã°ããã¯å¦ã³ãå½¹ã«ç«ã¤ã¬ãã«ã®ã¹ãã«ãç¿å¾ãããã¨ã«æ³¨åããã§ãããã
ãã®æ¹ãã¬ãã¬ãã¨ãã¦ãããããåºæ¿ããã£ã¦æ¥½ããã¨ãããã¨ã§ãã¬ãã«ï¼ããååºçºã§ãããã©ã¤ã¨æãã¾ãã
失æããããããã¾ãããããã¯ã²ã¨ã¤ã®çµé¨ã¨ãã¦åãæ¢ãã¾ãããã®æã¯ãã©ããæ¾ã£ã¦ãã ããï¼ç¬ï¼

JUnitå®è·µå ¥é ~ä½ç³»çã«å¦ã¶ã¦ããããã¹ãã®ææ³ (WEB+DB PRESS plus)
- ä½è : 渡辺修å¸
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2012/11/21
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- è³¼å ¥: 14人 ã¯ãªãã¯: 273å
- ãã®ååãå«ãããã° (69ä»¶) ãè¦ã
追è¨
æ±äº¬ã«å¼ã£è¶ãã®ï¼ã¨ãã話ã§ãããå½é¢ã¯å¨å® ãäºå®ãã¦ãããããæå¹å¨ä½ã¯å¤ããã¾ãããããããæå¹ã«(ry
追è¨2
転職エントリーã¯è»¢è·å ä¼ç¤¾ããã°ã§ã覧ãã ããã
ãã»ã³éçºãã£ã³ãã¾ã¨ã
Twitterããå°å
ããã§éã¾ã£ãéçºç³»ã®ã¡ã³ããéãããã»ã³ã§éãã§ãã¾ããã
æåã¯4æ³ããããããã¨ãã話ã ã£ããã§ãããäºå®ãåããããã©ããããã¦ãããã¡ã«2æ³3æ¥ã«ãå½åã¯ãã¼ãPCãéãã¦ã´ã½ã´ã½ãããäºå®ã§ããããæçµçã«ãã¹ã¦ãªã¢å
ç³»ã®éã³ããããã¨ã«ãªãã¾ããã
æçµçãªåå è
ã¯ä»¥ä¸ã®éãã
- @shuji_w6e
- @irasally
- @fel97048
- @gishi_yama
- @tmaeda1981jp
- ï¼ megascus
- @irof
- @grimrose
- @Posaune
ä¸5åãéå ã®äººãä¸4åãéå¤ã®äººã
0æ¥ç®
ï¼ megascusãæ¨ææ¥ã«æå¹å
¥ãã¦ããã®ã§ããã¼ã¯ã´ã«ãã¨ãããºã§ã¬ã³ã¿ã«MTBã§ã¡ããã£ã¨éã³ãã¹ã¼ãã«ã¬ã¼ãé£ãã

1æ¥ç®
ååä¸ã«éå¤çµï¼@irof @grimrose @Posauneï¼ãæ°åæ³ã«å°çããèªåã¨@gishi_yamaã®è»ã«åä¹ãã¦ä½å¸ã¸ãç®çå°ã¯æ¿å´ååºã

ããã«ã«ããè³¼å
¥ããã®ã§æ°´ææ¥ãããã«çå¼¾äºå®ã
ãã®å¾ã¯ä½å¸ã®ããã«ã¦ã°ã¹ãã¼å·¥å ´ã®è¦å¦è©¦é£²ã

èªåã¨@gishi_yamaã¯ãã©ã¤ãã¼ãªã®ã§é£²ããã»ã»ã»ãæããã®ã§ã¢ããã«ã¯ã¤ã³ã¨ã¦ã¤ã¹ãã¼ã®åé
ãè³¼å
¥ã
4æé ã«ãã»ã³ï¼æ£ç¢ºã«ã¯å¶ç¥å®ã ãã©ï¼ã«ç§»åããããã¯ãã¹ãã¤ã¯ãã¬ã³ã¿ã«ãã¦ãµã¤ã¯ãªã³ã°ãã ããã20kmã»ã©ã®ã¢ãããã¦ã³ãèµ°ãã

ãªããï¼ megascusãæ´èµ°ããè¡æ¹ä¸æã«ãªãã¤ãã³ããçºçãã»ã»ã»æ²ãããã¤ã³ãæããããã»ã»ã»ãä»ã®äººã¯å
¨å¡ã¾ãã£ããorz
7æããããããã¼ããã¥ã¼ãèãé£ãã

ãã»ã©ç²ããã®ãå°ãã¾ãã£ã¦é
ã¯ãã¾ãæ¸ããªãã£ãã
11æå°±å¯ã
2æ¥ç®
èªåã ãã¯4æåã«èµ·åºãã5æããæç·´ããã»ã³ã®ãã«ã¯ã©ã¤ã ã³ã¼ã¹ãèµ°ããããã«ããã©ãã©ã¤ã³ãå¨åãã55kmã»ã©ããã¼ããã¤ã¯ã§ç¾èµ°ã


çµ¶æ¯ã«ã
å®¿ã«æ»ãã9æåããNACã®MTBã«åå ã京極ãããã®å±±å¥¥ã¾ã§ãã¤ã¨ã¼ã¹ã§ç§»åãããããã軽ãå±±éãèµ°ãæããããã§ã@tmaeda1981jpåæµã


ç¾è¹å±±ã«ãã³ã¤ã¤ãèåã®ä¸ãèµ°ã£ãããã¼ãèµ°ã£ããæ¥½ããã£ãã
æ¼ã¯ãã³ãã¼ã¬ã¼ãããã§@irasallyã@fel97048åæµã
çµæ§ãªããªã¥ã¼ã ã§è¯ãå¡©å æ¸ãèãæ¨ãã

ããã§@gishi_yamaã¯é¢è±ããåå¾ã¯ã©ããã£ã³ã°ãã´ã ãã¼ãã«ï¼âï¼äººãããã§ä¹ãè¾¼ãã§å·ä¸ãã
ããã¯ãã®åãé¢ç½ãã端ããè¦ããåã«æµããã¦ããã ãã§ãã¾ã楽ãããã«è¦ããªããã©ãèªåããè½ã¡ã¦æ¥½ããã§ã¿ãããä»ã®ãã¼ãã«æ°´ãããããã岩ã«ã¶ã¤ãã£ã¦ã¿ããã¨ã
ã¡ãªã¿ã«MTBã§ãã©ããã£ã³ã°ã§ãã¤ã³ã¹ãã©ã¯ã¿ã¼ãããªãªãã¼ã£ã¦å¤äººã ã£ããæªããªå¤§å¥½ãã®ãã³ã·ã§ã³MAXã§é¢ç½ãããï½
ã¨ã丸1æ¥éãã§ãå¤ã¯åã³ãã¼ããã¥ã¼ã2æ¥ç®ã¯èæ§ãããé
å¤ãã
ãã¿ããæ¨ãï¼
3æ¥ç®
@tmaeda1981jpã¨èªåã¯æç·´ãããããå¥ã®ã³ã¼ã¹ã§30km/20kmã»ã©ããã¼ããã¤ã¯ã§èµ°ã£ãã1æ¥ç®ã«æ¯ã¹ãã¨ãã¾ã天æ°è¯ããªãã£ãã
7æãããããç§»åãéå§ããäºè²æ¸©æ³ã¸ããããããã»ã³ã¢ã³ãããªã¸ãã¬ããã³ã°ã1æé40åã»ã©ç»ã£ã¦ãå±±é ã

鲿µ·ã®ä¸ã®ç¾è¹å±±ã

ãã°ãï¼
1æé20åãããã§ä¸å±±ãããã°ã温æ³ã¸ã»ã»ã»ãç²ããçããã
ã©ã³ãã¯ã³ããã±ã¨æã£ã¦ããããæ··éãã¦ãã¦é£ã¹ãããâ¦ãããã¤ãåºãåã£ããã©ãã©ããæ··éãã¡ãã£ã¨æ³å®å¤ãæçµçã«å転寿å¸ã«å¯ã£ã¦ã©ã³ããçµæ§ã¢ã¿ãªã ã£ãã®ã§çµæãªã¼ã©ã¤ã
14æé ã«å¶ç¥å®ã«éå¤çµãéããéå çµã¯ãããã帰路ã«çããå ¨è¡ç¨ãå®äºã
ã¾ã¨ã
éçºè ã®ä½åãéçºãããã£ã³ãã§ãããã¾ãæ¥å¹´ãããã¨æãã¾ãã
ãJUnitå®è·µå ¥éãæ£èª¤è¡¨(6) #junitbook
誤æ¤éå ±ãã®6ã§ãã
ãã®1ãããã®5ã¾ã§ã¯åå·ã®ã¿ã®èª¤æ¤ã§2å·ã§ã¯ä¿®æ£æ¸ã¿ã§ãã
その1(2刷反映済),その2(2刷反映済),その3(2刷反映済), その4(2刷反映済), その5(2刷反映済), 技評さんの公式サイトã§ãï¼ãã£ã¦åæ ããã¾ãï¼ã
P362 ãã¹ãã±ã¼ã¹ã®ãªã¹ãï¼çªç®ï¼æå¾ï¼
誤ï¼
Itemã1ã¤è¿½å ããã¦ããç¶æ ã§ãaddã§åãItemãªãã¸ã§ã¯ãã追å ããã¨getNumã§1ãåå¾ã§ãã
æ£ï¼
Itemã1ã¤è¿½å ããã¦ããç¶æ
ã§ãaddã§ç°ãªãItemãªãã¸ã§ã¯ãã追å ããã¨getNumã§1ãåå¾ã§ãã
ãªã¹ã18.10ã®ãã¹ãã³ã¼ãï¼æå¾ã®ãã¹ãã±ã¼ã¹ï¼ã«å¯¾å¿ãããã¹ãã±ã¼ã¹ã§ãããã¹ãã³ã¼ãã«èª¤æ¤ã¯ããã¾ããã
P19.9 è¤æ°è¡ããã¹ãã®ã¢ãµã¼ã·ã§ã³
ãã¹ãã³ã¼ãä¸ã®æå¾
å¤ã«èª¤ããããã¾ãã
誤ï¼
public class MultiLineStringTest {
@Test
public void joinã§æååãé£çµããã() throws Exception {
String ls = System.getProperty("line.separator");
String expected = "Hello" + ls + "World";
assertThat(MultiLineString.join("Hello", "World"), is(text(expected)));
}
}
æ£ï¼
public class MultiLineStringTest {
@Test
public void joinã§æååãé£çµããã() throws Exception {
String ls = System.getProperty("line.separator");
String expected = "Hello" + ls + "World" + ls;
assertThat(MultiLineString.join("Hello", "World"), is(text(expected)));
}
}
å ¬éæ¸ã¿ã®ãµã³ãã«ã³ã¼ãã¯æ£ããã³ã¼ãã¨ãªã£ã¦ãããæ¸ç±ã®ã¿èª¤æ¤ã«ãªãã¾ãã
ãè¿·æãããããã¦ç³ã訳ããã¾ããã
(7)ã«ç¶ã...
SQLã¢ã³ããã¿ã¼ã³ã«ãããPostgreSQLããã #sqlap
SQLã¢ã³ããã¿ã¼ã³ã¯MySQLããã¼ã¹ã«ãªã£ã¦ããã®ã§PostgreSQLã§ã¯ãã®ã¾ã¾åããªããã¨ãããããµã³ãã«ãã¼ã¿ãã¼ã¹ã®å¤æ´ãã¤ã³ãã
- BLOBãBYTEAã«å¤æ´
- UNSIGNGEDããªãã®ã§çç¥
- DATETIMEãTIMESTAMPã«å¤æ´
ãã¼ãã«ãåé¤ãããå ´åã¯DROPæãIF EXISTSãªãã·ã§ã³ãä»ãã¦åé ã«æ¸ãã¦ããã°OKã
DROP TABLE IF EXISTS Accounts, BugStatus, Bugs, Comments, Screenshots, Tags, Products, BugsProducts;
ä¿®æ£å¾ã®SQLã£ã¦å
¬éãã¦ãããã®ããªï¼
id:t-wada ããã«å
¬éOKã¨ããã ãã¾ããã
ï¼è¿½è¨ï¼ãªãã¸ããªå ¬éãã¾ãã
åçµããªããã¨ãªãã¾ããããã¡ãã®ãªãã¸ããªã«ããã¦ããã¾ãã
https://bitbucket.org/shuji.w6e/sqlap
æåã®ã»ããã¢ããã¹ã¯ãªããã¯こちらã
åæµ·éDevãã£ã³ã2013 ã¼ãã»ã³ã®ãç¥ãã
7æã®é£ä¼ï¼äºå®ï¼ã¨ãªãã¾ããããã»ã³ã®ã³ãã¼ã¸ã¨ããæ°æ¥åãã¦ãTDDBCをベースとした開発合宿ãè¡ãäºå®ã§ãã
ã¨ã¯è¨ã£ã¦ããTDDBCé¢ä¿è ãä¸å¿ã¨ãªã£ã¦ããã ãã§ãTDDã¨ããããªãã¦ãå ¨ãåé¡ããã¾ããããããã¨ãç¹ã«æ±ºã¾ã£ã¦ããªããªãã°ãTDDBCã®ãé¡ãè§£ãã¦ã¿ããããã®è¾ºã®è©±é¡ã§çãä¸ãã£ããã§ããã°ãããªãã¨ããç¨åº¦ã§ãã
ã¾ããä»åã®ãã£ã³ãã§ã¯éçºå宿ã ãã§ã¯ãªããæ¸©æ³ã»ãµã¤ã¯ãªã³ã°ãã©ããã£ã³ã°ã¨ãã£ãã¢ã¯ãã£ããã£ã»ãã¼ããã¥ã¼ãªã©åæµ·éãæ¥½ããã§ã仲éã¨ä¸ç·ã«ãªãã¬ãã·ã¥ãããã¨ããã®ããã¼ãã§ãã
éã¶ãã®ã¯ãã£ã¦æ±ºãã¦ããããã¨æãã¾ããããµã¤ã¯ãªã³ã°ã ãã¯ç¢ºå®ã1人ã§ãæèµ°ãã¾ãï½
ãªããéã¶ããã®éå
·ã«ã¤ãã¦ã¯æã¡è¾¼ãã§ããã£ã¦ãããã»ã³ã§ã¬ã³ã¿ã«ãã¦ãOKã§ãï¼å®è²»ï¼ã
ã¨ããããªããªã§ãåæµ·éã«éã³ã«æ¥ããã¨æãã人ã¯ãこちらããåå 表æãï¼ãªãããã®åå ç»é²ã¯æ¬ç»é²ã§ã¯ãªããã ãããã®äººæ°ææ¡ã®ããã§ããæ¬ç»é²ã®ããã®åéã¯3æä»¥éã«ãªãã¾ãã
Javaã®ãã¹ãã³ã¼ãããã¯ãããGroovy #gadvent2012
æ¬ã¨ã³ããªã¼ã¯ãG* Advent Calendar 2012ã®24æ¥ç®ã®ã¨ã³ããªã¼ã§ãã忥ã¯ã@tetsurokitaharaããã®GroovyにProcessingを!ã§ããã
ä½ããã¿ã«æ¸ããããªã¨æ©ãã ã®ã§ãããæãã»ã©G*ãªãã¿ã¯æã£ã¦ããããJUnitãã¿ã¨ãªãã¾ãããå®ã¯ãæ¸ç±ãJUnitå®è·µå ¥éãã§ãGroovyãæ´»ç¨ãããããã¯ãå ¥ããäºå®ã ã£ãã®ã§ãããç´é¢ã®é½åä¸ãå ¥ããäºãã§ãã¾ããã§ãã*1ãããã§ãå°ãã ãã§ãããæ¬ã¨ã³ããªã¼ã§è£è¶³ããããªã¨æãã¾ãã
ãã¹ãã³ã¼ãã§Groovyã使ã
Groovyã¯ãJavaã¨è¦ªåæ§ã®é«ãããã°ã©ãã³ã°è¨èªã§ããä¸å¸ã説å¾ããå ´åã¯ãGroovyã¯Javaã®æ¡å¼µã©ã¤ãã©ãªã§ãï¼ï½·ï¾ï½¯ãã¨è¨ã£ã¦ãè¯ãã§ããããæ¬å½ã¯éçºç°å¢ããã«ããã¼ã«ã®è¨å®ãªã©ã§ä¸å·¥å¤«ããªããã°å©ç¨ã§ãã¾ãããããã®è¾ºã¯è£ã§ããã£ã¨ãã£ã¦ãã¾ãã°OKã§ãã
ã¨ã¯ãã£ã¦ãããããªãGroovyãããã¨è¨ã£ã¦ããã¼ã ã®ã¡ã³ãã¼ã¯ã³ã£ãããã¦ãã¾ãããããã¾ãããããã§å°ããã¤æ´è³ãã¦ããããã«ããã¹ãã³ã¼ããGroovyã§æ¸ãã¨ããããå§ããã¨ã¹ã ã¼ãºã«å°å
¥ã§ããå¯è½æ§ãé«ã¾ãã¨æãã¾ãã
ãªããªãã°ãGroovyã¯ããã¾ã§æ¸ãã¦ããJUnitã®ãã¹ãã³ã¼ãããåãããã«ãç°¡åã«ã楽ãã¦æ¸ããã¨ãã§ããããã§ã*2ã
ãªããEclipseã§Groovyã®éçºãè¡ãã«ã¯ãMarket Placeã§ãGroovyããæ¤ç´¢ããGroovy-Eclipseãã¤ã³ã¹ãã¼ã«ããã®ãç°¡åã§ããã使ãã®Eclipseã«åããã¦ãGroovy-Eclipse for JunoãããGroovy-Eclipse for Indigoãã鏿ãã¦ãã ããã
ãã¹ãã³ã¼ãã®æ¯è¼
Javaãå©ç¨ãããã¹ãã³ã¼ãã®ãµã³ãã«ã¯æ¬¡ã®ããã«ãªãã¾ãã
public class CalculatorTest { @Test public void _4ã2ã§å²ãã¨2ãè¿ã() throws Exception { Calculator sut = new Calculator(); assertThat(sut.divide(4, 2), is(2.0)); } }
䏿¹ãGroovyã§è¨è¿°ããã¨æ¬¡ã®ããã«æ¸ãã¾ãã
class CalculatorTest { @Test void "4ã2ã§å²ãã¨2ãè¿ã"() { def sut = new Calculator() assertThat(sut.divide(4, 2), is(2.0)) } }
éããã¿ã¦ããã¾ãããã
publicã®çç¥
Groovyã§ã¯ãã¯ã©ã¹ãã¡ã½ããã®ã¢ã¯ã»ã¹ä¿®é£¾åãçç¥ããå ´åãpublicã¨ãªãã¾ãããããã£ã¦ãclassã®åã®publicãã¡ã½ããå®ç¾©ã®publicãçç¥ã§ãã¾ããæ¸ãã¦ãã£ã¦ãåé¡ããã¾ããã
ã»ãã³ãã³ã®çç¥
Groovyã§ã¯ã黒魔術ã使ããªãã¨ããã»ãã³ãã³ãçç¥ã§ãã¾ãã
ã¡ã½ããåã®å é ã«æ°åã®å©ç¨
Groovyã§ã¯ãã¡ã½ããåãæååã®ããã«ããã«ã¯ãªã¼ãã¼ã·ã§ã³ã§å²ããã¨ãã§ãã¾ããããã¨ãJavaã§ã¯å®ç¾©ã§ããªãã£ãã¡ã½ããåãå®ç¾©ã§ãã¾ããä¾ãã°ãå é ã«æ°åã使ããã¨ããå°æ°ç¹ã»ã«ã³ãã»å¥ç¹ãªã©ãå©ç¨ã§ããããããã¹ãã±ã¼ã¹åï¼ã¡ã½ããåï¼ãçè§£ãããããªãã¾ãã
throws Exceptionã®çç¥
Groovyã§ã¯ãä¾å¤ã¯ãã¹ã¦éãã§ãã¯ä¾å¤ã®ããã«æ¯ãèãã¾ãããããã£ã¦ãJavaã§å¿
è¦ã§ãã£ãthrowså¥ãtry-catchå¥ãçç¥å¯è½ã§ãã
ãã®ãã¨ã¯ããããã¯ã·ã§ã³ã³ã¼ããæ¸ãå ´åã«ã¯ããã§ãã¯ä¾å¤ã使ç¨ãããéãã§ãã¯ä¾å¤ã使ç¨ãããã§è°è«ã®åãããé¨åããããã¾ããããããããã¹ãã³ã¼ãã§ã¯è°è«ã®ä½å°ç¡ããthrows Exceptionã§ããããã§ããæ¸ãã®ãé¢åâ¦ãªãã°Groovyã§ãã
夿°ã®åãçç¥
Groovyã§ã¯ã夿°ãdefã¨ãããã¼ã¯ã¼ãã使ãã宣è¨ãããã¨ãã§ãã¾ããJavaçã«ã¯Objectåã¨ãã¦å®£è¨ããã¦ãããã¨ã¨ç価ã§ããããããObject sutãã¨å®£è¨ãã¦ãããã¨ã¨å¤ããã¾ããã
Groovyã§ã¯ãå®è¡æã«å¼ã³åºãããã¡ã½ããããããããã§ãã¯ãããªãå ´åã¯ä¾å¤ãéåºãã¾ããããã¯ã³ã³ãã¤ã«æã®ãã§ãã¯ãçããªããããJavaã®éçã¡ãªãããå°ããããããããã¾ããã
ã§ãããããã§æ¸ãã¦ããã®ã¯ãã¹ãã³ã¼ãã§ããã¡ã½ãããåå¨ããªãã§ä¾å¤ãçºçãããã¨ã¯å
¨ããã¡ãªããã«ãªãã¾ããã
ããGroovyãªãã§ããã
ããããæ¸ãJavaã®ãã¹ãã³ã¼ãã®æ¡å¼µåã¯groovyã¨ããç°¡åã«çç¥ã§ããã¨ãããGroovyåãã¾ãããã
ããã¦ããã¹ãã³ã¼ããæ¸ãã¦ããã¨ãæ§ã
ãªããããªãã¨åºæ¥ãããªãããçºçãã¾ããç¹ã«ãRubyãªã©ã¹ã¯ãªããè¨èªãæ±ã£ãçµé¨ãããã°ããã¢ããã¥ã¡ã³ããæ¸ãããããªã¹ããç°¡åã«å®£è¨ãããã¨ãã£ãæ°åã«ãªãã¯ãã§ãã
ãããªæã¯ããããã°ã©ãã³ã°GROOVY ããéãã解決ã§ããªãã確èªãã¦ã¿ã¦ãã ããã
å°ããã¤Groovyã£ã½ãã³ã¼ãã«ãªã£ã¦ãã¯ãã§ãã
ããããããã¯ã·ã§ã³ã³ã¼ããGroovyã§ããããããï¼
Yes!
ææ¥ã¯ @kazuchikaã§ãã

- ä½è : é¢è°·åæ,ä¸å潤äº,é æ±ä¿¡æ´,ä¸ééæ²»
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2011/07/06
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- è³¼å ¥: 6人 ã¯ãªãã¯: 392å
- ãã®ååãå«ãããã° (155ä»¶) ãè¦ã

JUnitå®è·µå ¥é ~ä½ç³»çã«å¦ã¶ã¦ããããã¹ãã®ææ³ (WEB+DB PRESS plus)
- ä½è : 渡辺修å¸
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2012/11/21
- ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼
- è³¼å ¥: 14人 ã¯ãªãã¯: 273å
- ãã®ååãå«ãããã° (69ä»¶) ãè¦ã
ãJUnitå®è·µå ¥éãæ£èª¤è¡¨(5) #junitbook
誤æ¤éå ±ãã®5ã§ãã
その1,その2,その3, その4, 技評さんの公式サイトã§ãï¼ãã£ã¦åæ ããã¾ãï¼ã
P286 ã½ã¼ã¹ã³ã¼ãã®ã¨ã³ã³ã¼ãã£ã³ã°è¨å®ï¼æ¬æ6è¡ç®ï¼
誤ï¼
POMã®propertiesã»ã¯ã·ã§ã³ã«project.build.sourceEncofingã¿ã°ã追å ãã¦æå®ãã¾ã
æ£ï¼
POMã®propertiesã»ã¯ã·ã§ã³ã«project.build.sourceEncodingã¿ã°ã追å ãã¦æå®ãã¾ã
fã¨dã®typoã§ãã
P421 ããã¹ããã¡ã¤ã«ã®ã¨ã³ã³ã¼ãã£ã³ã°è¨å®ï¼æ¬æ6è¡ç®ï¼
誤ï¼
ããã¹ãã»ãã¡ã¤ã«ã®ã¨ã³ã³ã¼ããã®ããã®ä»ãã§ãUTF-8ãã鏿ãã¾ã
æ£ï¼
ãããã¹ãã»ãã¡ã¤ã«ã®ã¨ã³ã³ã¼ããã®ããã®ä»ãã§ãUTF-8ãã鏿ãã¾ã
ããã¹ãã®ããããæãã¦ãã¾ãã
ãè¿·æãããããã¦ç³ã訳ããã¾ããã
å ±åãã¦é ãã@hakuu0ããã@tomix55ããããããã¨ããããã¾ãï¼
(6)ã«ç¶ã...