Kaigi on Rails 2024ãä½ã£ã¦ç解ãã RDBMSã®ããã¿ãã®çºè¡¨ã¹ã©ã¤ãã #kaigionrails https://kaigionrails.org/2024/talks/ydah/
Viewã«ããã¬ã¼ã¯ãã¤ã³ããå¼µããé è¤å¤§ä»æ°ï¼ä»¥ä¸ãé è¤ï¼ï¼ããã¯ãã¾ã«ãé©ããããã ãã©ãControllerãModelã«ãã¬ã¼ã¯ãã¤ã³ããå¼µããã®ã¯ãå½ããåãããããããªã®ãã§ããªãã£ãããã¨ããããIDEã¨ãã¦ã©ããã£ã¦ãã話ã ããã ãªãã ãã©ãRubyMineã¯ã¶ã£é£ãã§ãã¦ãViewã«ããã¬ã¼ã¯ãã¤ã³ããå¼µããã®ã æ¤æ¨å®æ°ï¼ä»¥ä¸ãæ¤æ¨ï¼ï¼Viewã«ï¼ãViewã«ãã¬ã¼ã¯ãã¤ã³ãï¼ é è¤ï¼ãã©ããããã¨ï¼ãã£ã¦æããããã æ¤æ¨ï¼ï¼ç¬ï¼ã é è¤ï¼ERBãã¡ã¤ã«ã£ã¦ããããããERBãã¡ã¤ã«ã£ã¦ããããã¾ã§æ¥ãæãã©ããªã£ã¦ãã®ããªï¼ããªãã表示ãããããã ãã©ãã¨ãããã¾ã«ãã¡ãã£ã¨ããããããã°ãå¼ãã¨ãããªããããããããããã©ãã©ã¼ã ãå´©ãããã¨ããããããã ãªãã¨ãERBãHamlã1è¡ãã¨ã«ãã¬ã¼ã¯ãã¤ã³ããä»æãããã¦ãã¾ã£ããåãæãã§ã§ãããã ãã ï¼ã¹
# ãã¬ã¼ãã³ã°ã¸ã ã®äºç´ã·ã¹ãã ãéçºãã¦ããã¨ä»®å®ãã¦ãã ãã describe 'ãã£ã³ã»ã«å¦ç' do let(:user) { create :user } let(:reservation) { create :reservation, user: user, start_at: '2017-08-10 10:00'.in_time_zone } context '24æéåããããã¨ãã£ã³ã»ã«æãçºçãã' do before do travel_to '2017-08-09 10:00'.in_time_zone reservation.cancel! end after { travel_back } let(:billing) { user.billings.first } it { expect(user.billings.count).to eq 1 } it {
æ°äººå£°åª +81-9014502501 mai[email protected] 0088-7709-7529 it/it. my opinion may be not my own. but my fate is my own. æè¿æå°éã®Reactã¢ããªãä½ãã®ã«ä½¿ã£ã¦ããã® ã«ã¤ãã¦ã¨ããããã¡ã¢ãã¨ãã åæ: ãã«ããã¬ã¼ã ã¯ã¼ã¯ã¯ä½¿ããªã next.js, Astro, Remixã¯ä½¿ããªããnext.jsã¨Astroã¯å¤§å¥½ããªã®ã ãã社å åãã¨ãå人ç¨ã¨ãå°ããã¢ããªã«ä½¿ãã«ã¯ããããã«æç«ã§ããã¨æããRemixã¯å¤§å¥½ãã§ã¯ãªãã åæ: SSRããªã SSRãSSGãISGãããªããCSRã§ãããSSRããããªãReactãããããã¶ãæããã»ãã(å人ã¬ãã«ãªã)ããã¨æã£ã¦ãããããã»ãããªãPHPãRails ã§ãããä»æ´Railsã§Viewæ¸ããããªãã¨ãæããããããªã
ãDevelopers Meetup æ¥æé·ãã³ãã£ã¼ãåãåããéçºçç£æ§ããã¯ãéçºçµç¹ãäºæ¥ãã§ã¼ãºã®ç°ãªãæ ªå¼ä¼ç¤¾Another worksã»æ ªå¼ä¼ç¤¾SmartHRã»æ ªå¼ä¼ç¤¾ã¹ã¿ã¡ã³ã®3社ããéçºçç£æ§ã«ã¤ãã¦èªãå°½ããã¤ãã³ãã§ããããã§æ ªå¼ä¼ç¤¾ã¹ã¿ã¡ã³ã®ãã¿ãæ°ãç»å£ãããã³ãã¨ã³ãã®ãªãã¬ã¤ã¹åã«ãã£ã課é¡ã¨ããçç£æ§ãåä¸ãããã¨æãããã¦ããã5ã¤ã®ãã¨ã«ã¤ãã¦ç´¹ä»ãã¾ãã ãã¿ãæ°ã®èªå·±ç´¹ä»ãã¿ãæ°ï¼ãã¬ã¬ã·ã¼ããã³ãã¨ã³ãããªãã¬ã¤ã¹ãããéçºçç£æ§ãåä¸ãã¾ãããã¨ããã¿ã¤ãã«ã§ã話ããã¾ãããããããé¡ããã¾ãã ã¾ãèªå·±ç´¹ä»ãç°¡åã«ããã¦ãã ããã2021å¹´1æã«ã¹ã¿ã¡ã³ã«å ¥ç¤¾ãã¦ã主ã«ããã³ãã¨ã³ããæ å½ãã¦ããããã¿ããã§ããç¾å¨ã¯ãä»åã話ãããNext.jsã¸ã®ãªãã¬ã¤ã¹ã®ããã¸ã§ã¯ãã«åå ä¸ã§ããä»ååç»å£ãªã®ã§ãææããã«ãé¡ããã¾ãã ä»æ¥ã¯ããªã
ã¯ããã« ã¿ãªãããDRYååã¯ãåç¥ã§ããããï¼ DRY = Don't repeat yourselfã®ç¥ã§ãç¹°ãè¿ããé¿ãããã¨ãã¨ããæå³ã§ãããã è¯ãã³ã¼ããæ¸ãããã®éè¦ãã¤åºæ¬çãªååãªã®ã§ãã¿ãªãããããåç¥ã ã¨æãã¾ãã ã§ãããDRYååã¯ãã¹ãã³ã¼ããæ¸ãå ´åã¯å¿ ãããæåã«ã¯ãªããªãå ´åãããã¾ãã ä»ã®äººãæ¸ãããã¹ãã³ã¼ããè¦ã¦ããã¨ããã¹ãã³ã¼ãã«DRYååãé©ç¨ããããã«ãããã£ã¦æªãã³ã¼ãã«ãªã£ã¦ããã±ã¼ã¹ãã¨ãã©ãè¦ããã¾ãã ãã®è¨äºã§ã¯ãªããã¹ãã³ã¼ããDRYã«ããã¨è¯ããªãã®ããã¨ãããã¨ã説æãã¾ãã 追è¨ï¼ã¿ã¤ãã«ãå¤æ´ãã¾ãã @t_wada ããã®ã³ã¡ã³ããåãã¦ãã¿ã¤ãã«ãè¦ç´ãã¾ããã ããã¹ãã³ã¼ãã¯DRYãæ¨ã¦ã¦ãã¿æ¸ãããã => ããã¹ãã³ã¼ãã®æå¾ å¤ã¯DRYãæ¨ã¦ã¦ãã¿æ¸ãããã ã注æããã®è¨äºã¯ç»ä¸çãªãã¹ãã³ã¼ãã®æ¸ã
å°å ¥çµç·¯ å½ç¤¾ã¯å注éçºã®ITä¼æ¥ã§ããã2023å¹´ã«é·ãããä¸è©±ã«ãªã£ãVimã®å©ç¨ãè¾ããVSCodeã使ãå§ããã å½ç¤¾ã®å®æ å½ç¤¾ã®ã¨ã³ã¸ãã¢ã¯2022å¹´æç¹ã§å ¨å¡ãVimã使ã£ã¦ãããå½æã®æ¡ä»¶ã¯ã¡ã¤ã³ãRuby on Railsé¢é£ã§ãã£ããã¨ãç¸ã¾ã£ã¦ãä¸ã«åºåã便å©ãªã¨ãã£ã¿ãIDEã«é¢ããæ å ±æ度ã極ãã¦ä½ãã£ãã Railsæ¡ä»¶ã§ã¯Vimã使ããã¨ã«å¯¾ãã¦å¤§ããªåé¡ã¯ãªãã£ããè£å®ãããç¨åº¦å¹ãã°ããã¯ã¨ã³ãã®å®è£ ã«æ¯éããªãããã§ãããã¨ã³ã¸ãã¢ã¨ãã¦ããã§ããã®ãã¨ããèè¤ã¯å½ç¶ãã£ãããå½ç¤¾ã®ã¨ã³ã¸ãã¢ã¯æ¥ã ã®æ¥åãããªããã¨ã«éä¸ãã¦ããã (è¨ç«å½åããç©ã¿ä¸ããããæ´å²ã¨ãã¦ã®vimrc) è»¢æ© ã¤ãã«ãã®æãæ¥ã¦ãã¾ã£ãã ãããVueãTypescriptæ¡ä»¶ãåçªã«ç¾ããã®ã§ããã å½ç¤¾ã®ã¨ã³ã¸ãã¢ã¯çç¼ç½ããã Vimã§å¹ãããçéã¿ã¤ãã³ã°ã¯ães
æ°åã³ããã¦ã¤ã«ã¹ã®æææ¡å¤§ã«ãããæ¥æ¿ã«éè¦ãé«ã¾ã£ãMedTechåéã注ç®åº¦ãé«ã¾ãä¸ãå»çæ©é¢ã¨ææºããå¤éå¾è¨ºã¨24æé対å¿å¯è½ãªãªã³ã©ã¤ã³è¨ºçã®ãã©ãããã©ã¼ã ãæä¾ãã¦ããã®ããã¡ã¹ããã¯ã¿ã¼æ ªå¼ä¼ç¤¾ã§ãã代表ãã¤å»å¸«ã§ããèæ± äº®ããã¨ãå ±å代表ãåããæ°´éæ¬å¿ãããForbes JAPANã®ãæ¥æ¬ã®èµ·æ¥å®¶ã©ã³ãã³ã°2023ãã§1ä½ãç²å¾ãããã¨ã§ã話é¡ãéãã¦ãã¾ãã æ£è æ°ãå¢å¤§ãã2022å¹´7æã®æ°åã³ãã第7æ³¢ã§ã¯ããªã¢ã«ã¿ã¤ã ã§æ¥åè² è·ãé«ã¾ã£ã¦ããã·ã¹ãã ã®åé¡æèµ·ããéçºããªãªã¼ã¹ã¾ã§ã1ã«æ以å ã«å®äºããããªã©ãã¹ã¿ã¼ãã¢ãããªãã§ã¯ã®ã¹ãã¼ãæã§éçºã«åãçµãã§ãã¾ããã ã¾ã2022å¹´12æã«ã¯Ruby on Railsä¸å¿ã®éçºãããVue.jsã¨NestJSãçµã¿åããæ°ããæè¡ã¹ã¿ãã¯ãæ¡ç¨ãå ãã¦ããã¯é¨éã®çµç¹åç·¨ãè¡ãããã³ãã¨ã³ãã¨ããã¯ã¨
ã½ã¼ã¹ã®URL ãã¢åç» ãªãOSSã«ããã®ã? 2021å¹´7æã11æã«ããã¦ãã¢ã¼ãã£ã¹ããç¬èªã®é³æ¥½ã¹ããªã¼ãã³ã°ã¢ããªãä½ãããµã¼ãã¹ãéçºãã¦ãã¾ããã äºæ¥ã¨ãã¦ä¸æããããªããã§ãäºæ¥æ¤éããã®ã§OSSã«ãã¾ãã LPã¯ãã¡ãã§ãã -> https://origify.app/ ãã®ã½ã¼ã¹èª°å¾ï¼ SwiftUIã使ã£ã¦é³ãæµãããããªã¢ããªã±ã¼ã·ã§ã³ãä½ããã人 ãªãä½ã£ãã®ã? å°å ã®å±±æ¢¨ã§æ´»åãã¦ããåãä¸å¦ã ã£ãã¢ã¼ãã£ã¹ãã ãCDã売ããªããã¹ããªã¼ãã³ã°ã®åé çãä½ããããªã©ã® æ©ã¿ãæ±ãã¦ããã®ã§ã ãã®æ©ã¿ã解決ãããã¨æãããã®ãµã¼ãã¹ãä½ãå§ãã¾ããã ãµã¼ãã¹åã¯Origifyã§ãã äºæ¥ããã¾ãããããã ã£ãããVCããè³é調éããã¦ããµã¼ãã¹ãå§ãããã¨æã£ã¦ãã¾ããã ãªããã®äºæ¥ãæ¤éããã®ã? 権å©é¢ä¿ãé£ãã Apple Storeã¨Goo
ããã«ã¡ã¯ãdevcontainerè·äººã§ãð§âð³ ä»åç´¹ä»ããã®ã¯Docker Composeãæ¢ã«å©ç¨ãã¦ããéçºç°å¢ã«ããããã«devcontainerãæ§ç¯ããæ¹æ³ãç´¹ä»ãã¾ãã VSCodeã®devcontainerã¯ã¨ã¦ãè¯ãã§ããéçºç°å¢æ§ç¯æ¹æ³ãªã®ã§ãããã¡ãã£ã¨é£ãããã¨æããã¦ããããVSCode以å¤ã®ã¨ãã£ã¿ã使ã人ã®éçºä½é¨ãæªããªãã®ã§ã¯ããªã©ã®æ¸å¿µãããã¾ã ãã¾ã使ããã¦ããªããããªå°è±¡ãããã¾ããä»åã¯ãããªdevcontainerã3åã§ä½ããtipsãç´¹ä»ãã¾ãã æºåãããã® Docker Composeã§æ§ç¯ããéçºç°å¢ VS Code Docker Desktop for Windows/Mac Remote - Containers extension Docker Composeã§æ§ç¯ããéçºç°å¢ã®ãµã³ãã« ä»åç¨æããã®ã¯ãµã³ãã«ã¨ãã¦Ru
2021å¹´ç§ãããå¯æ¥ã®ãããªå½¢ã§ Next.js ã«ããæ°è¦ããã³ãã¨ã³ãéçºã®ãæä¼ããããã¦ããã ããã¨ã«ãªãã¾ããããã©ã¤ãã¼ãã®ç©ºãæéã§ããã³ãã¨ã³ãã®å¦ç¿ãããä»ã¯ã²ã¨ã¾ãéçºã§ããããã«ãªã£ã¦ããæ°ãããã®ã§ãããã¾ã§å¦ãã§ãããã¨ããç´¹ä»ãã¾ãã åºæ¬ã® TypeScript, React, Next.js ã ãã§ãªããGraphQL ã®å¨è¾ºãã¼ã«ããã¹ãã«ã¤ãã¦ãå¦ç¿ãã¾ããã ããã¾ã§ å½æãWeb ç³»ã®åè¨éçºä¼ç¤¾ã«ã¦ä¸»ã« Ruby on Rails ã§ããã¯ã¨ã³ãã®éçºããã¦ãã¾ãããTypeScript, React ã¯å¦çã®é ãã趣å³ã§æ¸ãã¦ãã¾ããã ãã¹ãã¯ãRails ã§ã®éçºãªã RSpec ã Capybara ã§æ¸ãã¦ãã¾ããããJS ã§ã¯ã»ã¼ãã£ããã¨ãããã¾ããã§ãããGraphQL ã¯å ¨ãã®æªçµé¨ã§ããã ãã£ãã㨠React ãã¥ã¼ããªã¢
ã©ããã¿ãªããããã°ã㯠ã¡ãã£ã¨åã«ãå人éçºè ãã¹ã¿ã¼ãã¢ããã®åæããSPAã§éçºããã®ã¯ã³ã¹ãé«ãã£ããããã¿ãããªäºãæ¸ãããããã³ãã¨ã³ãã¨ã³ã¸ãã¢ã®çæ§ããããããã«å©ãããåã§ã å½¼ãã«ã¯å½¼ãã®èããããã®ã§ããã¯ã©ãã§ãããã®ã§ãããã©ãããçç±ããã£ã¦ãã®çºè¨ãããã®ãï½ã¨è¨ãé¨åãæ°ã«ãªã£ã¦ããæ¹ããããããªã®ã§èª¬æãã¦ãããã¨æãã¾ã ã¡ãªã¿ã«ä»ã§ãå ¨ãæè¦ã¯å¤ãã£ã¦ãããããã®çºè¨ã«åæã§ãããã§ããªããã¯åç´ã«è¦ç¹ã®éããè¦æ¨¡ã®éããã¹ãã«ã®éãã ã¨æã£ã¦ã¾ã 追è¨: ãã¡ããSPAãããªãã¨å®ç¾ã§ããªããããªãµã¼ãã¹ãä½ãããå ´åã¯SPAä¸æã§ããï¼ã¤ã³ã¿ã©ã¯ãã£ãã«HPã¤ãããµã¼ãã¹ã¨ããã§ãä¸ã®ä¸ã®95%ãããã®ãµã¼ãã¹ã¯ãããããªãã¨æãã¾ãï¼ããµã¤ãã®å©ç¨ã¯ãã°ã¤ã³ãã人ã«ã ãæä¾ãããããªæ¥åç³»ãã¼ã«ãªã©ã¯ã¾ã話ãå¥ã§ã åæã®è©± ããããè¨äºã§ã¯ã³
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ã¯ããã« ã¿ãªããããã«ã¡ã¯ï¼ ãã®è¨äºã¯ãå¿ è¦æå°éã®åªåã§æ大éå®æ¦ã§ä½¿ããç¥èãæä¾ããRSpecå ¥éè¨äºããç¥ãã¦ã使ããRSpecå ¥éãã®ç¬¬3åã§ãã ä»åã¯RSpecã®ã¢ãã¯ã使ã£ããã¹ãã«ã¤ãã¦èª¬æãã¾ãã ããã¾ã§ã¢ãã¯ãå ¨ã使ã£ããã¨ããªã人ã§ããããããã«ä¸å¯§ã«èª¬æãã¦ããã¤ããã§ãã ã¾ããããã¾ã§ã®åã¨åæ§ãå人çã«ä½¿ç¨é »åº¦ãä½ãã¨æã£ã¦ããå 容ã«ã¤ãã¦ã¯ãããµãªèª¬æãçãã¾ãã ãã ãã第1åã第2åã«æ¯ã¹ãã¨ãã¹ãã³ã¼ããå°ãè¤éã«ãªã£ã¦ãä»çµã¿ãåããæ³åããã®ãã¡ãã£ã¨é£ããããããã¾ããã ã±ã£ã¨é ã«å ¥
ã¯ããã« Railsã®ããªã¢ã¼ãã£ãã¯ï¼polymorphicãå¤æ æ§ï¼é¢é£ã«ã¤ãã¦ãå®è£ æ¹æ³ã説æãã¦ããè¨äºã¯è¦ãããã®ã§ãããå®éãããã©ããªãã®ã§ã©ããªæã«ä¾¿å©ãªã®ãã説æãã¦ããè¨äºããã¾ããªããããããããªãã§ä½¿ã£ã¦ãã人ããããããªã®ã§æ¬è¨äºãæ¸ãã¾ããã å®è£ æ¹æ³ãã®ãã®ã«ã¤ãã¦ã¯è©³ç´°ã«ã¯èª¬æãã¾ããã®ã§ãRailsã®ããªã¢ã¼ãã£ãã¯é¢é£ãã©ãæ¸ãã®ããç¥ããªãæ¹ã¯ã¾ãã¯å ¬å¼ããã¥ã¡ã³ããèªãã§ããã ããã¨ç解ãæ©ããã¨æãã¾ãã ããªã¥ã¼ã ã¯å°ãªãã®ã§ã2åãããããªããã¨æãã¾ãã Rails Guides: 2.9 ããªã¢ã¼ãã£ãã¯é¢é£ä»ã "ã©ããªãã®ã"ã«ã¤ãã¦ãå ã«çµè« ããªã¢ã¼ãã£ãã¯ã¨ã¯ããã¯ã¿ã¤ãã³ã°ã®ä¸ç¨®ã§ããã å¥ã®è¨ãæ¹ãããã¨GoFã®ãã¶ã¤ã³ãã¿ã¼ã³ã§è¨ãã¨ããã®ãããã°ã©ã ã¯å®è£ ã«å¯¾ãã¦ã§ã¯ãªããã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å¯¾ãã¦è¡ãï¼Program to
GoogleãORMãçæããSQLãé ãã¨ãã®èª¿æ»ã容æã«ãããsqlcommenterãããªã¼ãã³ã½ã¼ã¹ã§å ¬éãRailsãSpringãDjangoãªã©ä¸»è¦ãªãã¬ã¼ã ã¯ã¼ã¯ã«å¯¾å¿ SQLæãç´æ¥æ¸ããªãã¨ããèªåçã«SQLæãçæãå®è¡ãã¦ãããORMï¼Object-Relational Mapperï¼ã¯ãããã°ã©ãã³ã°ã容æã«ãã¦ãããæè¡ã¨ãã¦RailsãHibernateãSpringãªã©ãã¾ãã¾ãªãã¬ã¼ã ã¯ã¼ã¯ãªã©ã§æ´»ç¨ããã¦ãã¾ãã ä¸æ¹ã§ãORMãçæããSQLæã¯ã¨ãã«è¤éã«ããããã¯éå¹çãªãã®ã¨ãªãããã¼ã¿ãã¼ã¹å¦çã®é ãã«ã¤ãªãããã¨ãããã¾ãã ãã®ã¨ããSQLæã®çæã¨å®è¡ãæ示çã«ã³ã¼ãã¨ãã¦è¨è¿°ããå¿ è¦ããªãã¨ããORMã®ç¹å¾´ãããªããã¼ã¿ãã¼ã¹å¦çãé ããªã£ãã®ããã©ã®ãããªSQLæãçæããããã®ã©ãã«åå ãããã®ããã¨ãã£ã調æ»ãé£ããã¦ããé¢ããã
ã«ã©ã¼ãã¼ã·ã§ãã ãµã¼ãã¹åºç¤ãã¼ã ã®kymmtã§ãããã®è¨äºã§ã¯ããµã¼ããµã¤ãã¬ã³ããªã³ã°ããã·ã³ã°ã«ãã¼ã¸ã¢ããªã±ã¼ã·ã§ã³ã¨APIãµã¼ããããªãWebã¢ããªã±ã¼ã·ã§ã³ã®ã»ãã·ã§ã³ç®¡çæ¹æ³ã«ã¤ãã¦ç´¹ä»ãã¾ãã ã¢ããªã±ã¼ã·ã§ã³ã®æ§æ æ§æã®æ¦è¦ ä»åã¯ä¾ã¨ãã¦ECäºæ¥é¨ã§æä¾ããã«ã©ã¼ãã¼ãªãã¼ããã¨ãããã¾ããæ§æã¨ãã¦ã¯ãRailsã§ä½ãããAPIãµã¼ã1ã¨ãVue.jsã§ä½ãããã·ã³ã°ã«ãã¼ã¸ã¢ããªã±ã¼ã·ã§ã³(SPA)ãããªãã¾ããã¾ããSPAã¯Expressãåãããã³ãã¨ã³ããµã¼ãã§ãµã¼ããµã¤ãã¬ã³ããªã³ã°(SSR)ãã¾ããAPIãµã¼ãã¯SPAãããã³ãã¨ã³ããµã¼ãã ããå¼ã³åºãã¾ããåãã¼ã«ã¯ãµããã¡ã¤ã³ãç°ãªãã¾ãã APIãµã¼ãã§ã»ãã·ã§ã³IDãæã¤Cookieãçºè¡ããRedisãç¨ãã¦ã»ãã·ã§ã³ç®¡çãã¾ããã¾ããAPIãµã¼ãã¸ã®ã»ãã·ã§ã³ãæå¹ãªãªã¯ã¨ã¹ãã¯ããã³ã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}