ããªãã¯Contextã®æåã 説æã§ãã¾ããï¼ golang.tokyo #28 Dec/04/2019 Future Corporation: Yoshiki Shibukawa
We experiment with Go as it exists now, to understand it better, learning what works well and what doesnât. Then we experiment with possible changes, to understand them better, again learning what works well and what doesnât. Based on what we learn from those experiments, we simplify. And then we experiment again. And then we simplify again. And so on. And so on. The Four Râs of Simplifying During
0.ã¯ãã㫠競æããã°ã©ãã³ã°ã§ã¯å¶éæéå ã«è§£ãæ±ãããããªããã°ã©ã ãæ±ãããã¾ãã競æããã°ã©ãã³ã°ã§ãªãã¨ããå¿ è¦ã«å¿ãã¦ããã°ã©ã ãé«éåãããå ´é¢ã¯ç¡æ°ã«ããã¾ããé次å¦çã®ããã°ã©ã ã並è¡åãããã¨ã§å¦çãé«éåããã並è¡ããã°ã©ãã³ã°/ãã«ãã¹ã¬ããããã°ã©ãã³ã°ãæ´»ç¨ã§ããæ©ä¼ã¯å¤ãã®ã§ã¯ãªãã§ããããã1 æ¬è¨äºã¯ Golang ã§é次å¦çã§è¨ç®ã§ããå¦çã並è¡å/é«éåãããã¨ã§ã並è¡å¦çã®å¨åã Golang ã®ä¸¦è¡åã®æ¸ãããããä½æãããã¨ãç®æ¨ã¨ãã¾ãã 1.æ§ã ãªè¨ç®ã®é«éå Go at Google: Language Design in the Service of Software Engineering ã«ãããããã« Golang ã®ä¸¦è¡å¦ç㯠CSP ããã¼ã¹ã«ãã¦ããã並è¡å¦çãæ¸ããããè¨èªã¨è¨ãã¾ãã Golang ã«çµã¿è¾¼ã¾ãã¦ãã g
å æ¥ãmopp ããã Vim ã« flatten() ã追å ãããã«ãªã¯ã¨ã¹ãã追å ãã¦ãããã®ã ãã©ããã®æã®è¨æ¶ãæ´çããçºã«æ¸ãèªåã®çºã®è¨äºã add flatten() to flatten list by mopp - Pull Request #3676 - vim/vim - GitHub I'm a bit confused by the maxdepth argument. I would expect it to specify the maximum depth of the r... https://github.com/vim/vim/pull/3676 Vim script ã®ãªã¹ãã¯ä»¥ä¸ã®æ§ã«ãç°ãªãåãæ··å¨ã§ãããRuby ãä»ã®ã¹ã¯ãªããè¨èªã§ãä¸è¬çãããã¦ã¹ã¯ãªããè¨èªã«ã¯ä¸è¬çã«ãªã¹ããå¹³å¦åããçºã® flatten ã¨ããé¢æ°ãªããã¯ã¡ã½ããã
ã¯ããã« ãã®è¨äºã¯Go2ã¢ããã³ãã«ã¬ã³ãã¼14æ¥ç®ã®è¨äºã§ãã Goã®Errorãã³ããªã³ã°ã«ã¤ãã¦ã¯ãããã¾ã§ã«ãæ§ã ãªãã¿ã¼ã³ãçºè¡¨ããã¦ãã¾ããã ä»åã¯ç¬èªå®ç¾©ã®ã¨ã©ã¼ã«ã¤ãã¦ãããã¾ã§ã®ãã¿ã¼ã³ãã¾ã¨ããä¸ã§ããã®å®ç¾ãeasyã«ããgenerrã¨ãããã¼ã«ãä½ã£ãã®ã§ããã®ç´¹ä»ããã¾ãã github.com Goã®ã«ã¹ã¿ã ã¨ã©ã¼ Goã®ã¨ã©ã¼ãã³ããªã³ã°ã®ä¸ã§ãã«ã¹ã¿ã ãªerroråãç¨ãããã¿ã¼ã³ã¯æ¯è¼çåºãç¥ããã¦ãããã¨æãã¾ãã ãã®ä¸ããããã¤ãã®ãã¿ã¼ã³ãç´¹ä»ãã¾ãã sentinel errorsãã¿ã¼ã³ Goã®errorã¯interfaceã¨ãã¦å®ç¾©ããã¦ãããError() stringã®ã¡ã½ãããå®è£ ãããã¦ããã°ãerrorã¨ãã¦æ±ããã¨ãã§ãã¾ãã æ¨æºããã±ã¼ã¸ã§æä¾ããã¦ããerrorsãfmt.Errorfãç¨ãã¦ç°¡åã«ã¨ã©ã¼ã表ç¾ãããã¨ã
ð Get 25% off access to all my premium courses - use discount code FUNCMAIN at checkout - view the pricing page now! JavaScript Frontend frameworks have undoubtedly helped to push the boundaries of what was previously possible in the context of a browser. Ever more complex applications have come out built on top of the likes of React, Angular and VueJS to name but a few and thereâs the well known
æ¦è¦ 以åã®è¨äºã§ christina04.hatenablog.com Goã¯ã¹ã¬ããããã¯ããã«è»½éãªgoroutineã§C10Kåé¡ã解決ãããã¨ãã話ããã¾ããããgoroutineã軽éãªã®ã¯ãªããï¼ã¨ããçç±ãæ·±æããããã¨ããªãã£ãã®ã§ãã¦ã¿ã¾ããã ç°å¢ golang 1.11.1 Darwin 17.7.0 軽éã¨å¼ã°ããçç±ã¯ï¼ã¤ 大ããåããã¨ä»¥ä¸ã®ï¼ã¤ã®ãã¤ã³ããããã¾ã ã¹ã¬ããã«æ¯ã¹ã¦ã¡ã¢ãªä½¿ç¨éãä½ã ã¹ã¤ããã³ã°ã³ã¹ããä½ã ãããã説æãã¦ããã¾ãã goroutineãã¹ã¬ããã«æ¯ã¹ã¦ã¡ã¢ãªä½¿ç¨éãä½ãã®ã¯ãªãã ã¹ã¿ãã¯ã¨ãã¼ãã®ã¡ã¢ãªã®ä½¿ãæ¹ãç解ããã¨åããã¾ãã ãã¼ãã¯ã¡ã¢ãªã®ä¸å±¤ãããã°ã©ã ã³ã¼ãã®ããä¸ã«ãããä¸ã«åãã£ã¦æé·ãã¾ããä¸æ¹ã¹ã¿ãã¯ã¯ä»®æ³ã¢ãã¬ã¹ç©ºéã®ä¸çªä¸ã«ãããå¾ã ã«ä¸ã«æé·ãã¦ããã¾ãã ref: ã¤ãã³ãã«ã¼ããªãã§ã®
Transcript Go Í° Network Programming Í¢ÎͨΠͷÎÎÎÎà¿© Tomohiro Takezawa à£Ý¾à¦ºÕ° ⢠à®á à¼à´¤ ⢠Github: ttakezawa ⢠Twitter: @takezawa ⢠×à£Õ±à£¾Kyashॴଠ⢠ÏÎ¿Î«Î¤Ï¯Ï àª¶àµ â¢ à²Í´ VISA Î QUICPay (Google Pay) Í·ÏϩηγϯάγεÏÏͳͲ ࣮຿ͱÏοÏÏ«ÊΫÏϩάϥÏϯά ⢠࣮à¡Í·Í±ÍÎɺà¢à£Í°à¢ÍػձÍÎÊ â¢ Kyash Í·Û຿Ͱ͸à¶à¨¢Í³Í±ÍÎÍÍΠ⢠ΫϨδοÏΧÊÏ Í·ÏϩηγϯάÛ຿ â¢ à¯¿Ï¨Î Ï ÊͷཧղÍà¨ÎÎÍ±Ú§Í à¿©Í¢Íͱͱɺ࿩ÍͳÍÍͱ ⢠࿩͢Íͱ ⢠ιÎοÏÏϩάϥÏϯάશൠ⢠Go Í´ÍÍÎ I/O Í·à¢à«Î ⢠࿩ÍͳÍÍͱ ⢠HTTP ⢠νÏÏϧ à à³Í·ÎδΣϯμ ⢠ÏοÏÏ«ÊΫÏϩάϥÏϯάͷجàºà°¤Í³Î ϯ
ããã«ã¡ã¯ãNecoãã¼ã ã®æ± æ·»ï¼@zoetroï¼ã§ãã gofailã¯ãetcdã®éçºãã¼ã ãã¤ãã£ãFailure Injectionã®ããã®ãã¼ã«ã§ãã Goè¨èªã§æ¸ãããããã°ã©ã ä¸ã«æ æã«ã¨ã©ã¼ãçºçããããã¤ã³ã(failpoint)ãåãè¾¼ã¿ãä»»æã®ã¿ã¤ãã³ã°ã§ããã°ã©ã ã®æåãå¤ãããã¨ãã§ãã¾ãã å ¬å¼ããã¥ã¡ã³ãã«è¨è¼ããã¦ããªãé ç®ãå¤ã ããã®ã§ã詳ãã使ãæ¹ãç´¹ä»ãããã¨æãã¾ãã ãªããæ¬è¨äºã¯2018å¹´8ææç¹ã®ã½ã¼ã¹ã³ã¼ãã対象ã«è§£èª¬ãã¦ãã¾ãã gofailã®ã¤ã³ã¹ãã¼ã« gofail ãã¤ã³ã¹ãã¼ã«ãã¾ãã $ go get -u github.com/etcd-io/gofail/... failpointã®åã込㿠ããã°ã©ã ä¸ã«failpointãåãè¾¼ãããã«ã¯ãGoè¨èªã®ããã°ã©ã ä¸ã« gofail ã¨ãããã¼ã¯ã¼ãããå§ã¾ãã³ã¡ã³ããè¨è¿°ãã¾ã
« Software Design 2018å¹´7æå·ãVim 絶対主義ãã®å·çã«åå ãã¾ããã | Main | ãã¿ã³ãæ¼ããã golang ã® if err... ãèªåå ¥å » tensorflow ã¨ããã° Python ã¨æã£ã¦ããããæ¹ãå¤ãã®ã§ã¯ãªãã§ãããããééãã§ã¯ãªãã®ã§ãããããã¯åæã«ä½ããã Python åãã®ãã¤ã³ãã£ã³ã°ã«ç 究è éãå¤ãé£ãã¤ããçµæã«éããªãã¨æã£ã¦ãã¾ããå®é tensorflow ã¯ç¾å¨ Cè¨èªãC++ãPythonãJavaãGo ããå©ç¨ããäºãã§ããæè¿ã§ã¯ JavaScript ã«ã移æ¤ããã¦ãã¾ããçè èªèº«ã Go 㧠tensorflow ã使ã£ãã·ã¹ãã ãæ§ç¯ããéç¨ä¿å®ãã¦ãã¾ããåé¡ãçºçããæ©å«è¯ãåãã¦ãã¾ããå¦ç¿ã®å©ç¨é¨å㯠GPU ã®ããã©ã¼ãã³ã¹ã«ä¾åãã¾ããããã以å¤ã®é¨åã«ã¤ãã¦ã¯åè¨èªã®å®è£ ã«ä¾åã
ã¯ããã« ã¡ã«ã㤠ã¨ãã¹ãã¼ããã¼ã ã®tenntennã§ãã ã¡ã«ã«ãªã°ã«ã¼ãã§ã¯ãæ¯é±éææ¥ã«Go Fridayã¨ãã社å åå¼·ä¼ãéå¬ãã¦ãã¾ãã æ¯é±ãã£ã¦ããã¨ãããªãã«ç¥è¦ãæºã¾ã£ã¦ããã®ã§ãå®æçã«âãã¼ã話âã¨ãã¦ããã°ãæ¸ããã¨ãã話ã«ãªãã¾ããã ä»åã®è¨äºã§ã¯ãå æ¥ã®Go Fridayã§è©±é¡ã«ããã£ãéå ¬éãªæ©è½ã使ã£ããã¹ãã«ã¤ãã¦æ±ãããã¨æãã¾ãã ãªããGoã«ããããã¹ãã®ææ³ããã¹ãããããã³ã¼ãã®æ¸ãæ¹ã«ã¤ãã¦ã¯ãGopherCon 2017ã§ãçºè¡¨ããã£ãmitchellhããã®âAdvanced Testing with Goâ(ã¹ã©ã¤ã/åç»)ãåèã«ãªãã¾ãããã¼ãã«é§åãã¹ãããã¹ããã«ãã¼ãªã©é常ã«åå¼·ã«ãªãã®ã§ãã¾ã è¦ããã¨ã®ãªãæ¹ã¯ãã²ã¹ã©ã¤ããåç»ãã覧ãã ããã TL;DR Goã®ãã¹ãã§ã¯ãã¹ã対象ã¨ãã¹ãã³ã¼ããå¥ããã±ã¼ã¸ã«ã§ãã
ã¨ã³ã¸ãã¢Hub > è¨äºä¸è¦§ > ãGoè¨èªããããã¨ã¯ä½ãï¼ãSimplicityã®å²å¦ãç解ããGo Wayã«æ²¿ã£ãéçºãé²ãããã¨ã®è¯ã ãGoè¨èªããããã¨ã¯ä½ãï¼ãSimplicityã®å²å¦ãç解ããGo Wayã«æ²¿ã£ãéçºãé²ãããã¨ã®è¯ã ããã°ã©ãã³ã°è¨èªã«ã¯ä½è ã®è¨è¨ææ³ãå¼·ãç¾ãã¾ãããGoè¨èªãã¾ãå¾çºã§ãããã¨ãçããããã£ããã¨ããææ³ã«åºã¥ãã¦éçºããã¦ãã¾ããå ¬å¼ã®ããã¥ã¡ã³ãçã§èªããã¦ããSimplicityã®å²å¦ãç解ããGoè¨èªããããGo Wayã«å¾ã£ã¦éçºããè¯ãã«ã¤ãã¦ãã¯ã¦ãªãã¼ãã¨ã³ã¸ãã¢ã®æ¾æ¨é 幸ï¼Songmuï¼ããã解説ãã¾ãã id:Songmuã¨ç³ãã¾ããã¯ã¦ãªæ±äº¬ãªãã£ã¹ã§ãã¼ãã¨ã³ã¸ãã¢ãåããMackerelã¨ãããµã¼ãã¼ç£è¦ã®SaaSéçºã«ããã¦ãããã¯ãããã¼ã¸ã£ã¼ãæ å½ãã¦ãã¾ãã çè ãå¤ãã¦ããæ ªå¼ä¼ç¤¾ã¯ã¦ãªã§ã¯ã2
Goãå§ãã¦ãããã£ã¨ Robo ã Task ã¨ãã£ãYAMLãã¼ã¹ã®ãã®ã§ãã«ãã¿ã¹ã¯ãæ¸ãã¦ããã®ã§ãããããã¸ã§ã¯ããå¢ãã¦ãã¦éçãæãã¾ããã YAMLãã¼ã¹ã¨è¨ã£ã¦ãã¿ã¹ã¯ã®è¨è¿°é¨ã¯ããã¾ã§ããã ã®ã·ã§ã«ã§ããããããããMakefileããã¯èªã¿ããããããç¨åº¦ãã·ã§ã«ã¸ã®ä¾å度ãé«ãã¨ãã©ããã¦ãããããåé¡ãç®ç«ã£ã¦ãã¾ãã ç°å¢ä¾åã§ãåãã¾ãããã£ã¦ä»ã®ã¡ã³ãã¼ã«è¨ãããã¡ãMacã¨Linux㧠date ã³ãã³ãã®ãªãã·ã§ã³ãéãã¨ãããããããã¨ãã£ã¦ãã«ãç¨ã®Dockerã¤ã¡ã¼ã¸ãä½ãã»ã©ã§ã¯ã¾ã ãªã grep sed çã§æ£è¦è¡¨ç¾ã®éè¡çãªæä½ãå¢ããã¨ãä¸è¦ä½ãã£ã¦ãã®ãåãããªããªããã¡ ã¨ã©ã¼å¦çãéã«ãªããã¡ããã¤ãã®éä¸ã®ã¨ã©ã¼æ¾ãã¨ãããã©ã é ãã並è¡å¦çæ¸ãã®ãããã©ã åå¥ã®ã¿ã¹ã¯ãã©ã¤ãã©ãªåãã¦ã¤ã³ãã¼ãããããã©ã決ã¾ã£ãããæ¹ããªã
Go 㯠goroutine ã¨ããéåæã®ä»çµã¿ãæä¾ãã¦ãã¾ããã使ãæ¹æ¬¡ç¬¬ã§ã¯è²ã ãªãã¿ã¼ã³ãå®è£ ã§ããçºãåã㦠goroutine ãè¦ã人ã¯ã©ã®æ§ãªç©ãæ£è§£ãªã®ãåãããªãäºãããã¾ãã以åããã®ããã°ã§ãç´¹ä»ããäºãããã¾ãã Go ã®éåæã®ä»çµã¿ã¯ä¸è¦åç´ãªæ§ã«è¦ãã¦å®ã¯ã¨ã¦ã奥深ãã®ã§ãã Big Sky :: golang ã® channel ã使ã£ããã¯ããã¯ãããã golang ã® channel ã¯ä»ã®è¨èªã«è¦ãªãç¬ç¹ã®ãã©ãã¤ã ãéçºè ã«æä¾ãã¾ãã åç´ã«ã¹ã¬ããéã§ã¡ãã»ã¼ã¸ã³ã°ãããã ãã§ãCè¨èªã§æ¸ãã°ããããã®éã«ãªã£ãããæ £ãã¦ããªã人ã§ããã°ã©... https://mattn.kaoriya.net/software/lang/go/20160706165757.htm 2012 å¹´ã« Rob Pike æ°ã Google I/O ã§ãGo
ããã©ã¼ãã³ã¹ç¶æã®ã³ããã³ãã³ãã¨ã¡ã¢ãã ãªãã¬ã¯ã·ã§ã³ã¯æå¾ã®æ段 ããã©ã¼ãã³ã¹ã«å¯ä¸ããªãé¨åã§ã®ã¿ä½¿ãã ã©ããããã©ã¼ãã³ã¹ã«å¯ä¸ããã®ããä¸éæãªãã¡ã¯ä½¿ç¨ç¦æ¢ã®ã»ããè¯ãã ä¸åº¦ä½¿ãåºãã¨ãªãã¬ã¯ã·ã§ã³ã¯å¤ç¨ããããªãéåãããã ã¡ã¢ãªä½¿ç¨é å¤ã¯8ãã¤ãã¢ã©ã¤ã¡ã³ãã«ç½®ãããã®ã§åºæ¬ã¯8ãã¤ãé·åã¡ã¢ãªãå°æã ãã¤ã³ã¿å¤æ°ã¯64bitCPUã§8ãã¤ãé· ã¤ã³ã¿ã¼ãã§ã¼ã¹åå¤æ°ã¯16ãã¤ãé·ã ï¼å¤ï¼åèå¥ï¼ ã¡ã¢ãªç¢ºä¿ãå«ãåã³ã³ãã¼ã㯠åãã£ã¹ããã¢ãµã¼ã·ã§ã³ã«æ¯ã¹ãã¨10å以ä¸é ãã åãå¤ãªã®ã«ãã¡ã¢ãªç¢ºä¿ãå«ãåã³ã³ãã¼ãããè¤æ°åè¡ãå ´å㯠ã¡ã¢ãªæ¶è²»éã¯å¢ãããæ±ç¨ã®å¤æ°ãinterface{}ãã« å¤ãä¿åãã¦ããã¦åç §ããã»ããé度ãç¶æã§ããã ã¼ãã¡ã¢ãªã¢ãã±ã¼ã·ã§ã³ é«é »åº¦æä½ã«ãããã¡ã¢ãªã¢ããã¯ï¼ã¨ã¼ãã®éã«ã¯å¤§ããªé度差ãããã å¯è½ã§
Golangã§ã®ãã®ã³ã°ç¶æ³ãã©ããªã£ã¦ããã®ãã調ã¹ã¦ã¿ã¾ããã Go ã§ä½ãããOSSã§æ¡ç¨ããã¦ãããã®ã³ã°ã©ã¤ãã©ãªãããã®ã³ã°ã©ã¤ãã©ãªä½è ãä¸å¿ã«æ¸ããlogããã±ã¼ã¸ã¸ã®ææ¡ããã¥ã¡ã³ããªã©ããæ å ±ãã¾ã¨ãã¦ã¿ã¾ããã æå¤ã¨æ··æ²ã¨ãã¦ããã¨ãããããã¨æãã¾ããRead less
ãã£ãªã¢ãå å®ããããã«ã®ãã«ï¼PR TIMES CTOéåéåããå¦ã¶ã¢ã¦ããããè¡ / output_method
(images: github.com/egonelbre/gophers) ããã«ã¡ã¯ã ãã¼ã¿ã¨ã³ã¸ãã¢ãªã³ã°ã°ã«ã¼ãï¼CETãã¼ã ï¼ã®å¯ºä¸ã§ãã èªåã®æå±ããCETãã¼ã ã§ã¯ä»ã¾ã§ä¸»ã«ScalaãPythonãªã©ã使ã£ã¦APIãåºç¤ãå®è£ ãã¦ãã¾ããããæè¿ã§ã¯å¾ã ã«Goã«ããå®è£ ãå¢ãã¦ãã¦ãããGAE/GKEä¸ã§æ¬çªéç¨ãè¡ã£ã¦ãã¾ãã æ¬è¨äºã§ã¯Goã®ãããã¯ãã«ããã¦DDDã©ã¤ã¯ãªpackageæ§æã§å®è£ ããéã®æ³¨æç¹ããæ±ç¨çã«éç¨ããã§ãããå®è£ ã®Tipsã«ã¤ãã¦æ¸ãã¦ããã¾ãã æ¬è¨äºã§ç´¹ä»ããä¾ããã¹ããã©ã¯ãã£ã¹ã ã¨ããããã§ã¯ããã¾ããã®ã§ãããã¾ã§å®è£ ã®ä¸ä¾ç¨åº¦ã«æãã¦é ããã¨å¹¸ãã§ãã Goã®ã¢ã¼ããã¯ã㣠Goã¯è¨èªä»æ§ãã·ã³ãã«ãã¤ãã©ã¼ããã¿ãå¼·åãªãããsyntaxã¬ãã«ã§ã¯éçºè ã«ãã£ã¦ã³ã¼ãã®å質ããã¬ã«ããã¨ããã¡ãªãããããã¾ãã ããããªã
ãã£ãã FunctionalOptionPattern MethodChaining MethodChaining ã®åé¡ç¹ Error ãã£ã¼ã«ãã«ãã解決æ¹æ³ Error ãã£ã¼ã«ãã«ãã解決æ¹æ³ã®åé¡ 1. åã¡ã½ããã§ã¨ã©ã¼ãçºçããªããããªå°è±¡ãåãã 2. ã¨ã©ã¼ãã§ãã¯ãå¿ããã ãã®1 3. ã¨ã©ã¼ãã§ãã¯ãå¿ããã ãã®2 FunctionalOptionPattern ã«ãã解決æ¹æ³ MethodChaining ã¨ãã¦ã®è§£æ±ºæ¹æ³ Error ãã£ã¼ã«ãã®åé¡ç¹ã¯æ¬å½ã«åé¡ãªã®ã? ã©ã¡ãã使ãã¹ããªã®ã? ã¾ã¨ã ãã£ãããã®è¨äºãæ¸ããã£ããã¯ä»¥ä¸ã®ããã°ã§ã MethodChaining ã®ä»£ããã« FunctionalOptionPattern ãå©ç¨ããã¨ããè¨äºã https://www.calhoun.io/using-functional-option
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}