Burikaigi 2023 https://burikaigi.dev/ Twitter https://twitter.com/__sakito__

è¿æ¥é£æãã¦ãã Next.js è¨äºã®ãµã³ãã«ã³ã¼ããå ¬éãã¾ããããã®ãµã³ãã«ã³ã¼ããå ã«ãç§ã®ããã³ãã¨ã³ããã£ã¬ã¯ããªæ§æã»ãã¹ã観ç¹ãç´¹ä»ãã¾ãï¼ããã¾ã§å·çç¾å¨ã®è³å ã¢ã¦ããããã«ãªãã¾ãã®ã§ãäºæ¿ãã ããï¼ ããã³ãã¨ã³ããã£ã¬ã¯ããªæ§æã®äºæ ã¿ã¤ãã«ã®ãããã³ãã¨ã³ããã£ã¬ã¯ããªæ§æãããããComponentsãã®ãã£ã¬ã¯ããªæ§æã¯ããã¤ãæ©ã¿ã®ã¿ãã§ãããã®ã¢ã¸ã¥ã¼ã«ã·ã¹ãã ã¯ããã¶ã¤ã³ã·ã¹ãã 観ç¹ã»ã¢ã¯ã»ã·ããªãã£è¦³ç¹ã»ããã³ãã¨ã³ãå®è£ 観ç¹ãã® 3 ã¤ã®è¦³ç¹ãæ··å¨ããããäºæ ãè¤éã§ããã©ããä½ãã®ãªãããã¶ã¤ãã¼ã»ããã³ãã¨ã³ããã©ã¡ãã®éçºåºç¤ã«ããªããããç¤ç³ãªã¢ã¸ã¥ã¼ã«ã·ã¹ãã ãç®æãããã§ãããã "AtomicDesign ããã¾ãã"ã¨ãã声ããã¾ã«èãã®ã§ããããã¶ã¤ã³ã·ã¹ãã çã«æ¨ã¦ã¦ããã®ï¼ãã¨æããã¨ãããã®ã§ãã¨ãã«è¦æããªããã°ãçè ã¯ã
LINEæ ªå¼ä¼ç¤¾ã¯ã2023å¹´10æ1æ¥ã«LINEã¤ãã¼æ ªå¼ä¼ç¤¾ã«ãªãã¾ãããLINEã¤ãã¼æ ªå¼ä¼ç¤¾ã®æ°ããããã°ã¯ãã¡ãã§ãã LINEã¤ãã¼ Tech Blog TL;DR:2022ã«ããã³ãã¨ã³ãéçºã§æãèæ ®ãã¹ãã¦ã¼ã¶ã¼ç°å¢ã¯ãããã©ã¼ãã³ã¹ã§ã¯ä½ã¹ããã¯ã®Android端æ«ãæ¨æºä»æ§ã§ã¯2å¹´åã®Safariãããã¦ãããã¯ã¼ã¯ã§ã¯ï¼Gã§ããããã«å¯¾ãã¦ã¯JSã¸ã®éå°ä¾åãªã©ãåå ã§ä¸»ã«ããã©ã¼ãã³ã¹ã®é¢ã§ã®ã¦ã§ãå ¨ä½ã®å¯¾å¿ãããããã¾ããã ããã«ã¡ã¯ï¼LINEããã³ãã¨ã³ãéçºå®¤ã®ãããã¹ ã¢ã©ã³ã§ãããã®è¨äºã®ã¿ã¤ãã«ãè¦ã¦ãé£ãã¿ã¤ãã«ã§ããããã¨èãã¦ããæ¹ãããã¨æãã¾ããä»åã«éã£ã¦ã¯ããã大ç®ã«è¦ã¦ãã ãããããã¯ãªããã¨è¨ãã¾ãã¨ã2021å¹´ãã2022å¹´ã«ããã¦ç§ãã¡ããã³ãã¨ã³ãã¨ã³ã¸ãã¢ãå ¨ä½çã«èãæ¹ãæ¹ããå¿ è¦ãåºãã»ã©å¤§ããªå¤åãããã¾ããã ãã®å¤
Rails 7.0ã§ã¯ããã³ãã¨ã³ããµãã¼ããå·æ°ããã¾ããæ°ããªã©ã¤ãã©ãªãå¤æ°å°å ¥ãããé¸æè¢ãå¢ããããããRailså ¬å¼ã®ãã®ãé¸ã¹ã°OKãã¨ããæ¦ç¥ãéç¨ããªããªãã¾ãã æ¬ç¨¿ã§ã¯ãRailsã§ããã³ãã¨ã³ããæ¸ãããã®é¸æè¢ã«ã¤ãã¦ããã®æ´å²ã¨å®è£ ãè¸ã¾ãã¦æ¯è¼æ¤è¨ãã¾ãã çµè«ããè¨ãã¨(ã¾ã ã¢ã«ãã¡çãªã®ã§ä»å¾ãç¶æ³ãå¤ããå¯è½æ§ã¯ããã¾ããã) æ°è¦ã¢ããªã±ã¼ã·ã§ã³ã§ã¯Sprocketsã®å½¹å²ã¯ç¡ããªãããã§ããæ°ããã©ã¤ãã©ãªã¨ã㦠Propshaft, importmap-rails, jsbundling-rails, cssbundling-rails ãç»å ´ãã主è¦ãªé¸æè¢ã¨ãã¦ä»¥ä¸ãæä¾ããã¾ãã (åã©ã¤ãã©ãªã®è©³ç´°ã«ã¤ãã¦ã¯å¾è¿°ãã¾ã) Propshaft + importmap-railsããã©ã«ãã®é¸æè¢ãNode.jsãä¸è¦ããã©ã³ã¹ãã¤ã«ãå«ããè¤
ããã«ã¡ã¯ãReactã®è©±é¡ã®ä¸ã§ãããªãã®é¨åãå ããã®ãã¹ãã¼ã管çãããã«è¨ãã°å種ã®ã¹ãã¼ã管çã©ã¤ãã©ãªã§ããä»ãããªãããReactã«ãããã¹ãã¼ã管çã®ææ³ãããã¤ãã®ã¹ãã¼ã管çã©ã¤ãã©ãªãæ¯è¼èå¯ãã¦è¨äºã«ã¾ã¨ãã¾ããã useState + ãã±ããªã¬ã¼Reactã«ãããåºæ¬çãªã¹ãã¼ã管çã¯useStateã§ããã²ã¨ã¤ã®ã³ã³ãã¼ãã³ãå ã§å®çµãããããªã¹ãã¼ããªãã°useStateã¯é常ã«é©ãã¦ãããä»ã®é¸æè¢ã¯ã»ã¼ç¡ãã¨è¨ã£ã¦ãæ§ããªãã§ãããã ã¹ãã¼ããã¢ããªã±ã¼ã·ã§ã³ã®åºç¯å²ã§ä½¿ãããå ´åãåé¡ã§ãã次ã®ç»åã«ä¾ç¤ºãããããã«ãåå²ããã³ã³ãã¼ãã³ãããªã¼ã®æ«ç«¯ã®ã³ã³ãã¼ãã³ãï¼ä½¿ç¨è ï¼ã§åãã¹ãã¼ããåç §ãããå ´åãèãã¾ãã useStateã¨çµã¿åãããå ´åããã£ã¨ãåå§çãªæ¹æ³ã¯propsã®ãã±ããªã¬ã¼ã«ãããã®ã§ããpropsã¯è¦ªã³ã³ãã¼ãã³ãããå
Front-End Study #5 ã®çºè¡¨è³æã§ãã https://forkwell.connpass.com/event/205227/ ãã£ã¼ãããã¯ã¯ãã¡ãï¼ https://koibu.me/events/14/talks/wQQs0pbvMZHcnZ8TawAi
eslint-plugin-prettier æ代ã®è¨å®ããã£ã¨ä½¿ã£ã¦ããã®ã§ãéãè °ãä¸ãã¦ã¢ãããã¼ãããä½æ¥ã¡ã¢ã èæ¯ Prettier å ¬å¼ããã¥ã¡ã³ãã«ããã°ãç¾å¨ eslint-plugin-prettier ã¯ä»¥ä¸ã®åé¡ãããã¨ãã¦æ¨å¥¨ãã¦ããªãã ã¨ãã£ã¿ãçã£èµ¤ã«ãªãï¼äººéãæ°ã«ããå¿ è¦ã®ãªãåé¡ãªã®ã«ï¼ï¼ ç´æ¥å®è¡ããããé ãï¼åæ§ã« prettier-eslint ãé ãï¼ ESLint 㨠Prettier ã®éã«éæ¥ã¬ã¤ã¤ã¼ã追å ããã®ã§ãå£ãããã ãªãã»ã©æ£ããã ä¸æ¹ãå¥ã ã«å®è¡ãããã¨ã§ä»¥ä¸ã®ãããªåé¡ãåºã¦ããã®ã§ã解決ãã¦ããã CLI ã¨ã¨ãã£ã¿ãåå¥ã«è¨å®ããå¿ è¦ããã ã¨ãã£ã¿ã§ ESLint 㨠Prettier ã®å調åä½ãå¿ è¦ CLI (npm scripts) 㧠ESLint 㨠Prettier ã®å¯¾è±¡ãã¡ã¤ã«ãå¥ç®¡çã«ãªã ä¸è¨ã®
ã¯ããã« Hotwireã¯Basecampãçºè¡¨ãããã¢ãã³ãªWebã¢ããªã±ã¼ã·ã§ã³ãä½ãããã®æ°ããã¢ããã¼ãã§ããååãHTML OVER THE WIREããæ¥ã¦ããããã«ãHotwireã§ã¯HTMLããµã¼ãã¼ããéãã¾ãããããæ®éã®Webã¢ããªã±ã¼ã·ã§ã³ã§ã¯ï¼ãã¨æãæ¹ãããããããã¾ããããSPA + APIãµã¼ãã§JSONã使ãããã®ã«å¯¾ããSPAã¨åæ§ã®ä½é¨ãHTMLãä¸å¿ã«ç½®ãã¦ä½ãã¢ããã¼ãã§ãããã¨ã示ã表ç¾ã§ãã åå人ã¯ãæåã¯ããµãããã¨ããæãã ã£ããã§ãã turbo-railsãèªã¿ã¤ã¤Hotwireã®ãã¢ã¢ããªãPhoenixã«ç§»æ¤ãã¦ã¿ãã WebSocketã§ã¯ãªãTurbo Streamsã®sourceãä½ã£ã¦ã¿ã¦éãã ã ã¨ãããç¨åº¦è§¦ã£ã¦ã¿ã¦è¯ããç解ã§ãã¦ããã®ã§ãHotwireã使ãã¨ä½ãå¬ããã®ããHotwireã®åè¦ç´ ã®ç´¹ä»ãè¨äºã¨ãã¦
Hotwire https://hotwire.dev/ Turboãä¸å¿ã¨ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®ã¢ã¼ããã¯ãã£ã®è¦ç´ æè¡ãã³ã³ã»ãããPRããããã®å称 Hotwireã¨ããã©ã¤ãã©ãªãããããã§ã¯ãªã å½¹å²ã¨ãã¦ã¯Micro Frontendsã¨ãReactã®learn once, write anywhereãªã©ã«ä¼¼ã¦ãã ã¢ããªã±ã¼ã·ã§ã³å®è£ è¨èªéä¾åã ãã©ç¾ç¶Railsã¢ããªã±ã¼ã·ã§ã³ããå®ç¨ã§ããåºç¤ããªã Hotwireã®ææ³ ã¢ããªã±ã¼ã·ã§ã³éçºè ã®çç£æ§ãä¸ãããã¨ãç®çã«ãã¦ããã㨠ãµã¼ãã¼ãµã¤ãè¨èªã§ããã³ãã¨ã³ããå®è£ ãããã¢ã¬ã§ã¯ãªãã£ã ããã°ã¬ãã·ã(段éçã«å©ç¨å¯è½)ã§ãããã¨ å¿ è¦ãªæè¡ã ãã使ãç¡é§ãªãã¨ãããªããã¨ã§å¹çåãã Hotwireãåæããæè¡ã¯1ã¤ã¥ã¤æå¹ã«ã§ãã ã¯ã©ã¤ã¢ã³ããµã¤ãã§Viewãå·®åæ´æ°ããç¾å¨ã®ä¸»æµã®ã·ã³ã°ã«ãã¼
Spring Bootã«ããAPIããã¯ã¨ã³ãæ§ç¯å®è·µã¬ã¤ã 第2ç ä½å人ãã®éçºè ããInfoQã®ããããã¯ãPractical Guide to Building an API Back End with Spring BootããããSpring Bootã使ã£ãREST APIæ§ç¯ã®åºç¤ãå¦ãã ããã®æ¬ã§ã¯ãåºçæã«æ°ãããªãªã¼ã¹ããããã¼ã¸ã§ã³ã§ãã Spring Boot 2 ã使ç¨ãã¦ãããããããSpring Boot3ãæè¿ãªãªã¼ã¹ãããéè¦ãªå¤...
å¦é¨ 3, 4 å¹´çåãã®ç¹å¥è¬ç¾©ã§ãã¦ã§ãã®é²åã¨ã¦ã§ããã©ã¦ã¶éçºã®æåç·ãã¨ããã¿ã¤ãã«ã§è©±ããã¦ãã¾ããã ã¦ã§ãã®é²åã®æ´å²ãç¥ããã¨ã§ç¾å¨ã®ãã¬ã³ãã«ã¤ãã¦ç解ããã¾ãã¦ã§ããã©ã¦ã¶ã¨ããã°ãã¼ãã«ã§å¤§è¦æ¨¡ãªã½ããã¦ã§ã¢ã®éçºã®ä¸ç«¯ãå£éè¦ããã¨ã§ãã¦ã§ããã¦ã§ããã©ã¦ã¶ã®éçºã«å°ãã§ãèå³ãæã£ã¦ããããè¯ããªãã¨ããæ°æã¡ã§è©±ããã¦ãã¾ããã ãªãæ´å²è¦³ã«ã¤ãã¦ã¯ç§ã®äºå®èª¤èªãå«ã¾ããã¨æãã®ã§ãééããè¦ã¤ãããæãã¦ä¸ãã :-) è¿½è¨ (éæ) ããããã®åå¿ãé ããããã¨ããããã¾ãï¼æ¬¡ååããããªè³æãä½ãã¨ãã®åèã«ã§ãããããããã«ã¡ã¢ãã¦ããã¾ããã¦ã§ãã¯ç¡éã«è©±ãã話é¡ããã£ã¦æ¥½ããã§ããï¼ ã¦ã§ã以åã®ãã¤ãã¼ããã¹ãã®æ´å²ãåãå ¥ããã¹ãã§ã¯ï¼ ãããã¨ããããã¾ãï¼ãã£ãããã¨ããã§ãã¦ã§ãã®é²åå²ã¨è¨ãã¤ã¤ã¦ã§ããå ¬éããã¦ããã®è©±ãããã¦ããªãã®
ã¦ã©ã¼ã¿ã¼ã»ã«æ ªå¼ä¼ç¤¾ã®ç¤¾å åå¼·ä¼ https://water-cell.connpass.com/event/178648/ ã§çºè¡¨ãããã®ã§ãã YouTube Liveã¢ã¼ã«ã¤ãã¯ãã¡ã https://youtu.be/ZLUie-ndKgw
注æ ãã®è¨äºã¯ 2020 å¹´ 09 æ 24 æ¥ç¾å¨ãå¤ãæ å ±ã¨ãªãã¾ããã eslint-plugin-prettier ã®å©ç¨ã¯éæ¨å¥¨ã§ããã¨å ¬å¼ãã¢ãã¦ã³ã¹ãåºãã¦ãã¾ãã ãã®ãã¨ã«ã¤ãã¦ã¯ Prettier 㨠ESLint ã®çµã¿åããã®å ¬å¼æ¨å¥¨ãå¤ãã£ã ã«ã¦ã¾ã¨ãã¾ããã®ã§ããã¡ããã覧ãã ããã ã¾ã eslint-plugin-prettier ã¯å ¬å¼æ¨å¥¨ã§ã¯ãªããªãã¾ãããããã㯠Editor ãªã©ã®å¤é¨ç°å¢ã®é²åã«ãããã®ã§ãã®ãã©ã°ã¤ã³èªä½ã«ä½ãåé¡ãèµ·ããããã§ã¯ããã¾ããã ãã㦠eslint-plugin-prettier ãå©ç¨ããè¨å®æ¹æ³ãç¹ã« eslint-plugin-prettier 㨠eslint-config-prettier ãä½ã解決ãã¦ããããç¥ããªãã¨ãprettier-eslint ãä½ãã©ã解決ããããç解ã§ããªãã¯ããªã®ã§
Transcript ݱà ÏϩϯÏÎ¤Ï¯Ï Í´Ü½ÍͤͳÍ⨠XFCQBDLͱ#BCFMÎà½§Õ²Í ÎÍÊ� CVJMEFSTDPO�UPLZP����� /BNF� ����4BLJUP�.VLBJ� 5XJUUFS⨠����!@@TBLJUP@@� $PNQBOZ� ����$ZCP[V�JOD�⨠����'SPOUFOE�&YQFSU�5FBN "CPVU�NF w#BCFMͷલʹݱà¡Í·+BWB4DSJQUÍ´ÍÍͯ� w#BCFMÍ´ÍÍͯ� wXFCQBDLÍ´ÍÍͯ� wXFCQBDL #BCFMͰ಺෦࣮૷Î௥ͬͯÍÍ "HFOEB #BCFMͷલʹݱà¡Í·+BWB4DSJQUÍ´ÍÍͯ &$."4DSJQUͱ5$�� w+BWB4DSJQUʹ͸&$."4DSJQUͱÍÍÝ´Þ à¢à¼·ÍÍÎ� wÍÍ·Ý´Þ à¢à¼·ÎܾÎͯÍÎÒÒ»Õ±Í5$��⨠5FDIOJDBM�$PNNJUUFF��� � w&4��
Transcript Î ÍÍ·ÏϩϯÏÎ¤Ï¯Ï Ö¶à¤¶â¨ .JY�-FBQ�4UVEZ�à²à¸à¸¤ï¿½ï¿½ï¿½$50�/JHIU�,"/4"*�7PM�� wTBLJUP !@@TBLJUP@@ � w'SPOU�&OE�&OHJOFFS� w3FBDU XFCQBDL (BUTCZ+4� w&WFOU� w#POpSF�'SPOUFOE� w3FBDU�NFFUVQ� w*OTJEF�'SPOUFOE� Ï ÏÊÍ°ÎͬͯÎÍͱ wÏϩϯÏÎ¤Ï¯Ï Î½ÊÏʹॴà¬ï¿½ w#UP#Í·ÏϩϯÏÎ¤Ï¯Ï ï¿½ wà¤Í´3FBDUÎà¢Í¬Í¯ÍÎ� wÙà¥àª¬à°ÉºÏ¨ÏÏ¡ÊɺÖàµÍ³Í²ï¿½ wશࣾÏϩϯÏÎ¤Ï¯Ï Î ÏϯÏÍ·Öà µï¿½ wϥϯνձ� w-5ձ� wࣾÖÞ²Íษڧձ ÏϥΠÏÊÏÍ°ÎͬͯÎÍͱ wÏϩϯÏÎ¤Ï¯Ï Øà¿Í·Ùà£ÎॻÍ� wษڧձ� wà¤à µÎÍ¢Î� wà¢ÕÎÍ¢Î� wελοÏʹͳÎ� wà·ÛÎ͢Πà à³à¿©Í¢Íͱɺ࿩ÍͳÍÍͱ à à³à¿©
åã¯PostCSSã¯éçºå½åãã追ãããã¦ãã¦ãGitHubã§PostCSSãã¼ã ã®ã¡ã³ãã¼ã®ã²ã¨ãã ã£ãããå®éã«PostCSSã使ã£ã¦ãã©ã°ã¤ã³ããã¼ã«ãããã¤ãä½ã£ãããããã°ãéèªã§è¨äºãæ¸ããããåå¼·ä¼çã§è©±ããããã¦ãã¾ãã æ¬è¨äºã§ã¯ãèªåãç¥ã£ã¦ããPostCSSã«ã¤ãã¦ã®äºæãå ±æãã¾ãã PostCSSã¨ã¯ä½ã PostCSSã¨ã¯ããã·ã¢äººã® Andrey Sitnik ã¨ãã人ãéçºãã¦ãããNode.js製ã®ãCSSãã¼ã«ãä½ãããã®ãã¬ã¼ã ã¯ã¼ã¯ãã§ããPostCSS製ã®ãã¼ã«ã¨ãã¦ããã³ãã¼ããªãã£ãã¯ã¹ãèªåã§ä»ä¸ãããAutoprefixerããæªæ¥ã®CSSã®æ§æã®ä¸é¨ãä»ã®ãã©ã¦ã¶ã§è§£éã§ããããã«ãããcssnextããã«ã¹ã¿ãã¤ãºæ§ã«å¯ãã§ããCSSãªã³ã¿ã¼ã§ãããstylelintããªã©ãæåã§ãã PostCSSã¯2018å¹´2æãããªãåºã使ããã¦
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}