é¢è¥¿Javaã¨ã³ã¸ãã¢ã®ä¼(é¢ã¸ã£ã) '17 10æ度 - connpass https://kanjava.connpass.com/event/68169/ ã§ã®çºè¡¨è³æã§ãã
é¢è¥¿Javaã¨ã³ã¸ãã¢ã®ä¼(é¢ã¸ã£ã) '17 10æ度 - connpass https://kanjava.connpass.com/event/68169/ ã§ã®çºè¡¨è³æã§ãã
Alistair Cockburn ã«ãã Hexagonal architecture ã®ç¿»è¨³ã§ããPoEAAã§è¨åããã¦ãããã¨ããã2002å¹´ããã«ã¯ãã§ã«C2 Wikiã«ãã¼ã¸ããã£ã模æ§ãä¼¼ããããªã¢ã¼ããã¯ãã£ã§ãã ã¯ãªã¼ã³ã¢ã¼ããã¯ã㣠ã翻訳ããã®ã§åèã«ãã¦ãã ããã ãã®è¨äºã¯èè ãã許å¯ãå¾ã¦å ¬éãã¦ãã¾ããThanks to Alistair Cockburn! ç®æ¬¡ ãã¿ã¼ã³: Ports and Adapters (æ§é ã«é¢ãããã¿ã¼ã³) æå³ åæ© è§£æ±ºæ³ã®æ¬è³ª æ§é ãµã³ãã«ã³ã¼ã ã¹ãã¼ã¸1: FIT ã¢ã㪠å®æ°ãã¢ãã¯ãã¼ã¿ãã¼ã¹ã¨ã㦠ã¹ãã¼ã¸2: UI ã¢ã㪠å®æ°ãã¢ãã¯ãã¼ã¿ãã¼ã¹ã¨ã㦠ã¹ãã¼ã¸3: (FITã¾ãã¯UI) ã¢ã㪠ã¢ãã¯ãã¼ã¿ãã¼ã¹ å¿ç¨ãã¼ã å·¦å³ã®éå¯¾ç§°æ§ ã¦ã¼ã¹ã±ã¼ã¹ã¨ã¢ããªã±ã¼ã·ã§ã³ã®å¢ç ãã¼ãã¯ããã¤? æ¢ç¥ã®ç¨
æ¬è¨äºã¯ãããéåã¨é·ãéãç§ãToDoãªã¹ãã«è¨ããã¾ã¾ã«ãªã£ã¦ãããã®ã§ããã§ããä»æ¥ã ãã¯ããã®èããå®è¡ã«ç§»ãã¨ãã«ã®ã¼ã¨æéããã£ãããã§ããç§ã¯ä»ãå°ãåã«æåã®è¨äºãæ稿ããæã¨åãã«ãã§ã«ãã¾ãããã¾ãã¾ãªã®ããããã¨ãâ¦â¦ãåºå¡ãç§ã«åºãã飲ã¿ç©ã«ä½ãå ¥ãã¦ããã«éãããã¾ããã ãã¹ããã©ã¯ãã£ã¹ã«ãªãããã¨ããå¤ãè¯ãã¢ããã¤ã¹ãããã¾ããããããããæ å ±ã¯å¸¸ã«è³ã«å ¥ã£ã¦ãã¾ããç§ãã¡ã¯ãã©ãããããããã¯ãã«ã«ãªä¼è©±ã®ä¸ã§ DRY ã¨ã KISS ã¨ãã£ãé åèªã第ä¸ã®ååã¨ãã¦ãã¾ãããç±å¿ã«ãã¾ãããããæ¦å¿µã«å¾ã£ã¦ãã¾ãããã¾ãã¾ãç¥è欲ãããããã«ããããã¯ç¥èããªãã£ãããã«ãããããæ¦å¿µããå¤ãããã¨ããã人ãããããã®ãªãã確å®ã«ãã®äººã«åµã®ãããªæ¹å¤ãæµ´ã³ãã¾ãããã®ååã«ã¨ãããããã¦ãã¦ãããã«èãåãããã¨ãæãã§ããã®ã§ãã 念ã®ããã§ããã
ç°ãªãåéã§æ´»åããçµç¹ããåããããªã½ããã¦ã§ã¢æ§ç¯ã®ãã¿ã¼ã³ãç¬ç«ã«çºè¦ãã¦ããããã®ãããªã·ã¹ãã ã¯ããå ç¢ã§ãããèé害æ§ããããããæè»ã§ãããææ°ã®è¦æ±ãåæ ãããããªã£ã¦ããã ããããå¤åãèµ·ãã¦ããã®ã¯ãè¿å¹´ãã¢ããªã±ã¼ã·ã§ã³ã®è¦æ±ãèããå¤åãã¦ãã¦ããããã ãã»ãã®æ°å¹´åã巨大ã¢ããªã±ã¼ã·ã§ã³ã¯æ°åã®ãµã¼ãããæ§æãããæ°ç§ã®å¿çæéã¨æ°æéã®ãªãã©ã¤ã³ã¡ã³ããã³ã¹ã許容ãããã¼ã¿ã¯æ°ã®ã¬ãã¤ãã ã£ããä»æ¥ã®ã¢ããªã±ã¼ã·ã§ã³ã¯ãã¢ãã¤ã«æ©å¨ããæ°åã®ãã«ãã³ã¢ããã»ããµã«ãã£ã¦åä½ããã¯ã©ã¦ããã¼ã¹ã®ã¯ã©ã¹ã¿ã¾ã§ãããããæ©å¨ä¸ã«é åããããã¦ã¼ã¶ã¯ããªç§ã®å¿çæé㨠100% ã®ç¨¼åçãæå¾ ããããã¼ã¿ã¯ãã¿ãã¤ãåä½ã§æ¸¬å®ããããæ¨æ¥ã®ã½ããã¦ã§ã¢ã¢ã¼ããã¯ãã£ã¯ãä»æ¥ã®è¦æ±ãå ¨ãæºããã¦ããªãã æ±ãããã¦ããã®ã¯ãã·ã¹ãã ã¢ã¼ããã¯ãã£ã«å¯¾ããæå¿«ãªã¢ããã¼ã
ããã«ã¡ã¯ãæè¡é¨ é«äºã§ãã æ¥ã¨ããã°ããã¬ãã·ã¥ãã³ã®å£ç¯ã§ããããã®ããã°ãèªãæ¹ã®ä¸ã«ã¯ãææ¥ããã¨ã³ã¸ãã¢ã¨ãã¦æ°ç¤¾ä¼äººã«ãªãã¨ããæ¹ãããã£ãããã®ã§ã¯ãªãã§ãããããã¯ãã¯ãããã§ãæ°ãã仲éãè¿ããããã®æºåããã¦ããã¨ããã§ããã®æºåã®ä¸ç°ã¨ãã¦ãæ°åã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã®ããã®æè¡æ¸100åãã¨ãããã®ãä½æãã¾ããã ãã®100åã¯ãè·æ¥ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã¨ãã¦ãã£ãªã¢ãç©ãã«ããã£ã¦ãèªãã¹ãæè¡æ¸ã«æ©ãã ããã¾ãã¯ãã®ãªã¹ãããé¸ã¶ã¨ããã®ã§ã¯ãªãã§ããããã¨ããææ¡ã§ãã ãªã¹ãã«å¤å°ã®è¶£å³ã主張ãã¯ãã£ã¦ããã®ã¯ãã¾ããæå¬ã¨ãããã¨ã§ã許ãããã ããã°ã¨ãããã¾ãããè·æ¥ããã°ã©ãã¨ãã¦ç¥ã£ã¦ããã¹ãç¥èãç¶²ç¾ ã§ããããã«å¿ããã¾ãããå¤å ¸ã¨å¼ã°ããåèã«ã¤ãã¦ã¯ã§ããã ãåããããç¬ç¿ãé£ããé£è§£ãªã³ã³ãã¥ã¼ã¿ãµã¤ã¨ã³ã¹ã®æç§æ¸ã¯é¿ãã¦ãã¾ãããã
(編注ï¼2020/08/18ãããã ãããã£ã¼ãããã¯ããã¨ã«è¨äºãä¿®æ£ãããã¾ããã) ããã¯ããä»äºç±å¿ãªè¥æéçºè ã®ã»ã¼å®è©±ã§ãã2004å¹´ã®å¾åããã®è¥æéçºè ã¯å°ããªä¼ç¤¾ã§åãå§ãã¾ãããæ¡ä»¶ã¯å ¨ã¦å½¼ã®æã¿ã©ããã§ããã給æã¯ããããæ±ãã®ã¯å½¼ã®å¾æã¨ããããã°ã©ãã³ã°è¨èªãã¢ããã¼ãã®è¤éæ§ãã¢ããªã³ã°ã®ã¢ã¼ããããã£ã§ããã å½¼ã«ã¨ã£ã¦ä»åã®ä¼ç¤¾ãåãã¦ã®è·å ´ã§ã¯ããã¾ããã§ãããããããããã§ã®æåã®ããã¸ã§ã¯ãã¯çµæçã« åé¡ã ãã ã«çµããã¾ãããå½æããã®è¥æéçºè ã¯ãæ©è½ã¯çµ¶å¯¾ã«å¤ãããªããã®ã ã¨æã£ã¦ãã¾ãããããããããã¯ééãã§ãããæ©è½ãå¤æ´ããããã³ã«å®å ¨ãªãªãã¡ã¯ã¿ãªã³ã°ãè¡ããªããã°ãªãã¾ãããããã°ãå¼ãèµ·ããã¦è¨å¤§ãªæéãç¡é§ã«ãã¦ãã¾ãã¾ããå½¼ã¯ããã¹ããæ¸ãã¨ãã£ãå®ç´ãªæ¹æ³ã試ãã¦ã¿ã¾ããããæ¸ãããã¹ãã¯ã¡ã³ããã³ã¹ãå¿ è¦ãªä¸ãæ¸ãã®ã«æé
æ®æ®µãä»äºãã¦ããä¸ã§ä½æ ãã³ã¼ãã¬ãã¥ã¼ããã¦ããæéãããã¨ãã£ã¦ãæããããã°(æããªãã¦ã)ã³ã¼ãã¬ãã¥ã¼ãã¦ããã ãããªä¸ã§ã©ãããã¨ãããè¦ããããã®ãããããã¯è¦ãã¹ããªã®ãã¨ããã®ãèªåã®ä¸ã§ããç¨åº¦èç©ãããæ°ãããã®ã§æ¸ãã¦ã¿ãããã¨æå¾ã«æ®æ®µèãã¦ãããã¨ãå°ãæ¸ããã åæ ç¾å¨ã®åã®åå ãã¦ããããã¸ã§ã¯ãã¯ãããªæã Rails ããã¸ã§ã¯ã( AngularJS 使ã£ãããã¦ãã) Git 使ã£ã¦ã( Pull Request ãã¼ã¹ã®éçºã§ä»¥ä¸ã merge æ¡ä»¶) 2 人以ä¸ã« approve ããã ãã¹ããéããã¨(ç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ã®å®æ½) éçã³ã¼ã解æã¯å°å ¥ãã¦ãã( Rubocop, jshint, pre-commit ãªã© ) ãã¹ãã®ã«ãã¬ãã¸ã¯è¨æ¸¬ãã¦ããªã(æä¸ãããã§æ¸¬ã£ã¦ãããããã ãã©ãã ããã©ãã£ã¦ãã話ã¯ãªã) ã
ï¼ããã¾å¤ããªãã¿ããã ããå¤åãã身ãã¬ãããã ãã©æ¸ãï¼ ã¨ã³ã¸ãã¢ã®é¢æ¥ã§å®éã«ã³ã¼ããæ¸ãããä¼ç¤¾ãæè¿ã¯å¤ãã¿ããã ããã§ãã¦ãã§ã¯ç¹ã«é¢æ¥ã§æ¸ãããªããã¨ãããä»ã¾ã§æ¸ãã¦ãããé¢ãã£ã¦ããã³ã¼ããªãã¦æ¸é¡ã§å¤§ä½åããã§ããï¼ ããããããã¦ãã§ã¯ã³ã¼ãã¬ãã¥ã¼ãããã¦ãã é¸èç¨ã«ããã¨å°ãçªã£è¾¼ã¿ãã³ãã®å¤ãã³ã¼ãï¼30ã50è¡ç¨åº¦ã®ã³ã¼ãã3ã4ãã¡ã¤ã«ï¼ã渡ãã¦ããã¡ãããã¡ã¤ã«æ§æèªä½ã¸ã®ã¬ãã¥ã¼ãå«ãã¦ãã©ããªæè¦ããã®äººãåºããããåãã ã¬ãã¥ã¼ç¨ã®ã³ã¼ãã¯è¤æ°è¨èªç¨æãã¦ã¦ãä¸çªå¾æãªè¨èªãé¸ãã§ããã£ã¦ãã æéã¯1æéãè³æã¨èµ¤ãã³ãããã¦ãããã«ç¹«ãã£ããã½ã³ã³ã渡ãã¦ããããã§ãã°ã°ã£ã¦ããã£ã¦æ§ããªãç°å¢ã§ã¬ãã¥ã¼ãç´ã«èµ¤ãã¦è²°ãã ãã³ã¼ãã¬ãã¥ã¼ãã£ã¦ãã®ã«å¯¾ãã¦ã®èªèã ã¨ããã³ã¼ãã管çããããã®è½åãããç¨åº¦åãããããããè¯ãé¸èå¶åº¦ã ã¨æ
æ¯æ¥ä»ã®äººã®ã³ãããããªãããæåã§çæ´»ãã¦ããã¨ãçç±ã¯æµ®ãã°ãªããã©ããï¼ãã®ã³ãããã¯ãªããæ°ã«ãªããã¨æããããã«ãªãã¾ããããã¯ãæ°ãããã¨ãç¥ããã¨ãã§ããã³ãããã ã£ãããçä¼¼ããããªããããªã³ã¼ããå ¥ã£ã¦ããã³ãããã ã£ããããªããã¾ããããªæ°ãããã³ãããã ã£ãããæ§ã ã§ãã ããï¼ãã¨æãã¦ã³ããããè¦ç´ãã¦ã¿ã¦ããä½ãæ°ã«ãªã£ããèªåã§ãããã«ããããªãå ´åãããã¾ãããããªã¨ããæ°ã«ãªã£ããã¨ãã³ããããã人ã«ä¼ããããã«ãã³ãããã¸ã®ã³ã¡ã³ããã¾ã¨ãå§ãã¾ãããã³ããããã人ã«ä¼ãããããã¨ããããã«ãä»ã®äººã«ä¼ãããã¨ãããã¨ããã¤ã³ãã§ããä»ã®äººã«ä¼ããããã«ã¾ã¨ãããã¨ããã¨ãæãã®å¤ãªã«ãæ°ã«ãªã£ããã¾ã¨ã¾ããã®ã§ãã ä»åã¯ãã¡ã¿ããã°ã©ãã³ã°ã使ã£ã¦ã³ã¼ããæ´çããã³ãããã§ããï¼ãã¨æããã¨ãã®ãã¨ã«ã¤ãã¦ç´¹ä»ãã¾ãããã®ãããã§ãã¡ã¿ããã°ã©ãã³ã°
é¦é¡: Railsã¢ããªã§ã®å®ç¨çã¡ã¿ããã°ã©ãã³ã° (lang:ja) å®ããã¸ã§ã¯ãã§ãããéãã«ãªããã«ã¡ã¿ããã°ã©ãã³ã°ããæ¹æ³ã説æãã¾ããã http://www.joho-shimane.or.jp/docs/2013092500011/
Overview Dash is an API Documentation Browser and Code Snippet Manager. Dash instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more. You can even generate your own docsets or request docsets to be included. Supported Documentation Sets Dash comes with 200+ offline documentation sets. You can choose which documentation sets to download and Dash will take care of the
å¸è°·è¡å / Toshihiro Ichitani @papanda ä»æ¥ã¯ãªã¼ããã«ã³ã¼ãã® #devlove 97æ¬ã«ç¶ãã¦ãªã©ã¤ãªã¼ããã¨çµãã§ããã¾ããDevLOVEãä½ãåºæ¥ãã¨ããããã§ã¯ãªãã®ã ãã©ãè¯ãæ¬ã売ãã¦ããã§ã¾ãè¯ãæ¬ãä¸ã®ä¸ã«åºã¦ããããããã ãã§ããããä¼ç»ãããå¤æã¡ã¯ããã¨æã£ã¦ããã®ã ã£ãã 2012-07-06 16:50:31 Ryan Edsall @rezn #devlove "@LaurentKP: @iMMMOOO that's not what I mean I'm the dev of EasySmileys and I receive good reviews because of MegaSmiley promo ââºâ" 2012-07-06 17:15:18
å ·ä½çã«ã¯ããã¹ãã§ã *2 ãä¾ãã° foo(1, 2) 㧠wrong number of arguments ãæãããããã¨ããã¹ããããã¨ãã¾ãã以ä¸ã®ãã¹ãã ã¨ãwrong number of arguments 以å¤ã® ArgumentError ãæããããå ´åã§ãåæ ¼ã«ãªã£ã¦ãã¾ãã¾ãã assert_raise(ArgumentError) { foo(1, 2) }ã¡ããã¨ãããããã°ãä¾ãã°ãããªæãã®ã³ã¼ããæ¸ããªãã¨ã ãããªã flag = false begin foo(1, 2) rescue ArgumentError => e raise unless ex.message[/\Awrong number of arguments \(\d+ for \d+\)\z/] flag = true end assert(flag) Ruby ã®ä¾å¤ã¯ã©ã¹ã¯å
"Beautiful Code" ãèªãã§ãã¾ãã ããã§ããã¼ãã«ã¼ããã³ããã³ãã¬ã¼ï¼ãããã°ã©ãã®æã¡æã話ãããç çã®ããã°ã©ãã³ã°ãããããã°ã©ãã³ã°ã®è¨è¨ã¨çæ³ããªã©ãæãã¡ã³ã§ããï¼ã®æç« ãã²ããã¶ãã«èªã¿ã¾ãããã¾ã ã¾ã ãããã°ã©ãã³ã°ã«ããããããããã¨ãä¸æ¯ããã¾ããã ã¼ããæãæåããã¯ãMichael Feather ï¼"Working Effectively with Legacy Code"ã®èè ï¼ã® "Framework for Integrated Test: Beauty Through Fragility"(è±èªGoogleBookå ¨æ) ã§ããã³ã¼ãã£ã³ã°ï¼ããã°ã©ã è¨è¨ï¼ã«é¢ãã Ward Cuninngham ã®é¸è©±ã¯ããã¤ãããã¾ããNovember ã¡ã½ããã®è©±ã400è¡ã® Perl ã§æ¸ãããåç Wiki ã®è©±ããªã©ãªã©ã ä»åã¯ãWeb
ä¸æ¨æ¥ã«ãªã£ã¦ããããå ¥æã§ããããã°ã©ãã³ã°è¨èªRuby[rakuten]ããRuby 1.9.1RC2ã¨ãã®NEWSãã¡ã¤ã«ãæå ã«ç½®ããªããèªãã ã å°ã ä¹±æ´ãªè¨ãæ¹ã«ãªããããããªããããã®æ¬ã¯ä»¥ä¸ã®ãããªäººã«ã¯ç¨ã®ãªããã®ã ã¨æãã Ruby 1.9.xãRuby 1.8.xãååã«ç解ã§ãã¦ãã Ruby 1.9.xããã°ããã¯ä½¿ãã¤ããããªããèªåã使ãç¯å²ã«ããã¦Ruby 1.8.xã«ä¸æãªã¨ããã¯ãªã Rubyã®çµé¨ããªãããã®ä»ã®ãªãã¸ã§ã¯ãæåè¨èªã®çµé¨ããã³ç¥èããªã ããã°ã©ãã³ã°çµé¨ããªããããããããã°ã©ãã³ã°ã®å¦ç¿ãå§ãã ãã®æ¬ã¯Rubyãã®ãã®ã®ããªã詳ãã解説æ¸ã§ãããå ¥éæ¸ã§ã¯ãªããä¸å¿ã¯ç°¡åãªã¨ããããå ¥ãå½¢ã«ãªã£ã¦ããã®ã ãã大é¨åã¯ãã§ã«Rubyã使ã£ã¦ãã¦ãã¡ãã£ã¨ãããã¨ãªãå°ããªãç¨åº¦ã®ç¥èããããã¨ãåæã¨ãã¦ãããã¤ã¾ãã
Perl, Rubyãªã©æ軽ã«ä½¿ããããã°ã©ãã³ã°è¨èªã«æ £ãã¦ããã¨ãããããããã¹ããã¼ã¿ã®å¦çã«æ£è¦è¡¨ç¾(regular expression)ã使ã£ã¦ãã¾ããã¡ã§ãã ããã©å®ã¯ãæ£è¦è¡¨ç¾ã®å¦çè½åãè¶ ãããã©ã¼ãããã¨ããã®ãåå¨ãã¾ãããã®å ¸åçãªä¾ããXMLãJSONã®ããã«ãå ¥ãåã«ãªã£ããã¼ã¿ãã©ã¼ãããã§ãã
å㫠欲ããã¨æ¸ãã API ã®ã¦ã¼ã¶ããªãã£ãã¹ã. å®éã«ãã£ã¦ã¿ããã¨ãã話ãèªãã . "The Factory Pattern in API Design: A Usability Evaluation (PDF)" ã¨ããè¨äºããã. ä¿ä¸ã«è¼ã£ãã®ã¯ factory ãã¿ã¼ã³. ç´ ã®ã³ã³ã¹ãã©ã¯ã¿ã¨ã©ã¡ãã使ããããããæ¯ã¹ã¦ã¿ãã¨ãã. ãããªã®, Factory ãè ã£ã¦ãã ãªã㦠Joel...ãããªã㦠Joel ã®èªè ãè¨ã£ã¦ãã. å®éãã®èª¿æ»ã§ã "factory ã¯ä½¿ãã«ãã" ã¨ããæã£ãã¨ããã®çµè«. é¢ç½ãã¯ã¦ã¼ã¶ããªãã£ãã¹ããããäºå®ãã®ãã®ã«ãã. 調æ»ã§ã¯ 12 人ã®è¢«é¨è ããã¤ã, 5 ã¤ã®èª²é¡ãããªãã¦ããã. ã³ã¼ãã¯ãã㶠Java. 課é¡1: ã¡ã¼ã«ãéä¿¡ãã. ã©ã¤ãã©ãªã使ã£ã¦ãããªé¢¨ã«æ¸ããããããªã¨æãã³ã¼ãã notepad ã§
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}