Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新規プロジェクトのリードエンジニアになるために
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kaoru Hotate
December 14, 2019
Programming
2.8k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新規プロジェクトのリードエンジニアになるために
2019/12/14 平成Ruby会議#01 登壇資料
Kaoru Hotate
December 14, 2019
More Decks by Kaoru Hotate
See All by Kaoru Hotate
20240607_人を動かし続ける力_ピープルマネジメントへの内発的動機づけの工夫
hotatekaoru
2
470
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
費用対効果の高いテストコードを書くために意識したこと.pdf
hotatekaoru
3
5.2k
リファクタリングチャンスを探せ
hotatekaoru
2
570
Dependabotからの脱却
hotatekaoru
0
540
Fat Modelに対処する 6つのリファクタリングパターン
hotatekaoru
13
5k
MobPro2Points
hotatekaoru
0
140
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
250
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.8k
Other Decks in Programming
See All in Programming
AmebaブログはKMPから卒業します
kmars0605
0
220
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
1.5k
phperだってパンチカードでコーディングしたい
o0h
PRO
0
380
Verilogで学ぶCPU自作入門
uyuki234
8
4.2k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.1k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.7k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
410
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
120
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
290
Railsバージョンを4倍にした話
optim
0
520
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
330
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Six Lessons from altMBA
skipperchong
29
4.5k
BBQ
matthewcrist
90
10k
How to build a perfect <img>
jonoalderson
1
6.1k
Thoughts on Productivity
jonyablonski
76
5.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Transcript
৽نϓϩδΣΫτͷ ϦʔυΤϯδχΞʹͳΔͨΊʹ ,BPSV)PUBUF!QVSVOLBPSV ฏ3VCZձٞ IFJTFJSVCZLBJHJ 1
อཱ֜ ,BPSV)PUBUF 5XJUUFS!QVSVOLBPSV ϝυϐΞͱ͍͏ձࣾͷ ΤϯδχΞͰ͢ ฏݩੜ·ΕͰ͢ ࣗݾհ 2
৽نϓϩδΣΫτͷϦʔυΤϯδχΞͷׂ 3 اըཱҊ༷࡞ αʔϏεاը༷࡞ ΫϥΠΞϯτͱͷΓऔΓ ٕज़બఆ1+5্ཱ͛ ٕज़બఆݟੵΓ SBJMTOFXίʔυͷن࡞ ϓϩδΣΫτཧ ਐḿ֬ೝใࠂ
վળҊͷཱҊόάͷཧ ϝϯόʔڭҭɾධՁ ϝϯόʔڭҭධՁ ৽ϝϯόʔͷΞαΠϯ
ࠓ͢͜ͱ 4 SBJMTOFXʙ։ൃͷيಓʹΔ·Ͱʹඞཁͳ͜ͱΛ͠·͢ ‣ ϓϩδΣΫτͷੑ࣭ʹΑΔ͕ࠩগͳ͍ͷͰɺ ࣄલ४උΛద༻͍ͤ͢͞ ‣ ͜ͷϑΣʔζͷɾਫ਼͕ɺޙʑେ͖͘Өڹ͕ग़Δ
5 ʮͳΜͰϦϑΝΫλϦϯά͖ͳΜͩΖ͏ʁʯ
6 ͖ͳՊ ࢉɹಛʹ߹ͷ ‣ ܾ·ͬͨղ͖ํɾߟ͑ํ͕͋Δʢύλʔϯʣ ‣ ύζϧײ֮Ͱɺʮ͋ͯΊΔʯʮ͘Έ͋ΘͤΔʯ ύλʔϯʹ͍࣋ͬͯͨ͘ΊʹʮͻΒΊ͖ʯʮ࣮ݧʯΛߦ͏ ࣗͳΓͷύλʔϯɾࢦΛߏங͢Δ ‣
ͨ͘͞ΜͷΛղ͍ͯɺ ৽͍͠ύλʔϯΛֶͿɾ͍ํΛशಘ͢Δ ͍͜ͳͨ͠ύλʔϯͷྔɺ͍࣋ͬͯΔࢦͷਫ਼ͷߴ͕͞ɺ ૉૣ͘ਖ਼֬ͳճΛಋ͘ ͷੲ͠·͢
ϦϑΝΫλϦϯά͍ۙͱ͜Ζ͕͋Δ 7 ‣ ͔֬Β͍͠ύλʔϯɾݪଇɾ੍͋Δ ྫ σβΠϯύλʔϯ40-*%ݪଇ-JOUFS ‣ ݪཧݪଇΛͦͷ··མͱ͠ࠐΊΔέʔεগͳ͍ ʮͻΒΊ͖ʯʮ࣮ݧʯ͕ඞཁ ࣗͳΓͷύλʔϯɾࢦΛߏங͢Δ
‣ ͨ͘͞ΜͷέʔεΛ௨ͯ͡ɺ ݪཧݪଇΛ͍͜ͳ͍ͯ͘͠ ͍͜ͳͨ͠ύλʔϯͷྔɺ͍࣋ͬͯΔࢦͷਫ਼ͷߴ͕͞ɺ ૉૣ͘ਖ਼֬ͳίʔυΛಋ͘
ύλʔϯΛ࡞ΔϝϦοτ 8 ‣ εϐʔυΛ্͛Δ ‣ ࣭Λ্͛Δ ψέɾϞϨΛ͛Δ ୭͕ͬͯಉ͡Α͏ʹͳΔ ʮ৽نϓϩδΣΫτͷ্ཱ͛ʯʹɺ ύλʔϯԽΛద༻Ͱ͖ΔͷͰͳ͍͔
৽نϓϩδΣΫτΛ يಓʹͤΔͨΊʹ४උ͢Δ͜ͱ 9
ϦʔυΤϯδχΞͷ͓ࣄ 10 ‣ ॳظஈ֊ʢνʔϜϝϯόʔ͕ಈ͖ग़͢લʹΔ͜ͱʣ ‣ SBJMTOFX ‣ ։ൃϧʔϧͷ࡞ ‣ ίʔσΟϯάن
‣ ੩తղੳνΣοΫͷϧʔϧ ‣ ϥΠϒϥϦΞοϓσʔτͷස νʔϜϝϯόʔ͕ಈ͖ग़͢લʹ͜͜·ͰऴΘΒͳ͍ͱɺ ͋ͱͰखΓ͕ൃੜ͢Δέʔε͕ଟ͍ SBJMTUFNQMBUF ࣗͳΓͷ ίʔσΟϯάن
ϦʔυΤϯδχΞͷ͓ࣄ 11 ‣ தظஈ֊ʢνʔϜϝϯόʔͱ։ൃதʹΔ͜ͱʣ ‣ ઃܭɾػೳ։ൃ ‣ ෛ࠴ʹͳΓͮΒ͍ίʔυ ϨϏϡʔϦϑΝΫλϦϯά ‣
͋ͱ͔Βࢀըͨ͠ਓʹ ୡͰ͖ΔΈͮ͘Γ ϦϑΝΫλϦϯά ύλʔϯͷ໌จԽ ෛ࠴ʹͳΓͮΒ͍ίʔυΛߏங͢ΔͨΊͷΈͮ͘Γ͕ඞཁ
৽͍͠ϓϩδΣΫτΛ࡞Δલʹߦ͏ͭͷ͜ͱ 12 ‣ SBJMTUFNQMBUF ‣ ࣗͳΓͷίʔσΟϯάن ‣ ϦϑΝΫλϦϯάύλʔϯͷ໌จԽ
SBJMTUFNQMBUF 13 UFNQMBUFSC 3BJMTΨΠυIUUQTSBJMTHVJEFTKQSBJMT@BQQMJDBUJPO@UFNQMBUFTIUNMࢀর generate(:scaffold, "person name:string") route "root to:
'people#index'" rails_command("db:migrate") after_bundle do git :init git add: "." git commit: %Q{ -m 'Initial commit' } end $ rails new project_name -m path/to/template.rb
SBJMTUFNQMBUF 14 ͷSBJMTUFNQMBUFͷհ IUUQTHJUIVCDPNIPUBUFLBPSVSBJMT@UFNQMBUF ‣ ෆཁͳϑΝΠϧͷআɾඞཁͳϑΝΠϧͷՃ ‣ ։ൃʹඞཁͳHFNΛɺ࠷ॳ͔Β(FNGJMFʹొ͢Δ ‣ ߹ΘͤͯɺඞཁͳઃఆϑΝΠϧσϑΥϧτͰՃ͢Δ
‣ ଘࡏ͢ΔDPOGJHϑΝΠϧʹɺՃ͍ͨ͠ઃఆΛͿͪ͜Ή ‣ ޙ͔Βઃఆ͕ඞཁͳͷUPEPNEʹ·ͱΊΔ
SBJMTUFNQMBUF 15 Rails.application.configure do (Ұ෦লུ) # N + 1ແ༻Ͱ500ը໘ʹભҠͤ͞Δ config.after_initialize
do Bullet.enable = true Bullet.console = true Bullet.rails_logger = true Bullet.raise = true end end DPOGJHFOWJSPONFOUTEFWFMPQNFOUSC # Install JavaScript dependencies system('bin/yarn') CJOTFUVQSC / ͕͋ΔͱʹͳΔઃఆΛՃ SBJMTOFXͰࣗಈͰ࡞ΒΕΔ CJOԼͷઃఆϑΝΠϧΛमਖ਼
SBJMTUFNQMBUF 16 UFNQMBUFͷϝϦοτ ‣ ʮരʯͰSBJMTͷ։ൃڥΛߏஙͰ͖Δ ‣ ࡞ۀͷൈ͚࿙Ε͕ͳ͘ͳΔ UFNQMBUFͷσϝϦοτ ‣ UFNQMBUFͷϝϯςίετ͕͔͔Δ
ʢSVCZSBJMTͷόʔδϣϯΞοϓ͝ͱʹඞཁʣ
SBJMTUFNQMBUF 17 طଘͷϓϩδΣΫτΛίϐϖ͢Ε͍͍ͷͰʁ ‣ Կ͕ඞཁɾෆඞཁ͔ผ͢Δͷ͕͍͠ ‣ قͷܦͬͨϓϩδΣΫτͷϧʔϧΛ ৽͍͠ϓϩδΣΫτʹ࣋ͪࠐΉͷةݥ
ࣗͳΓͷίʔσΟϯάنΛ࡞͓ͬͯ͘ 18 ίʔσΟϯάنΛ࡞ΔϝϦοτ ‣ ϨϏϡʔͰࢦఠ͢Δ༰ΛݮΒ͢ ‣ ίʔυͷ࣭ΛߴΊΔ ‣ ϦϑΝΫλϦϯάʹ͔͔Δ࣌ؒΛݮΒ͢
ࣗͳΓͷίʔσΟϯάنΛ࡞͓ͬͯ͘ 19 ωʔϜεϖʔεɾΫϥε໊Λ࠷ॳʹ౷Ұ͓͖͍ͯͨ͠ ‣ 3BJMTϓϩδΣΫτɺͨ͘͞ΜͷΫϥε͕Ͱ͖͍͢ ‣ ౷Ұ໋໊ͨ͠ϧʔϧ͕͋Δͱɺ ໊લ͚Λߟ͑Δίετ͕ݮΔɻ ·ͨɺྨࣅͷҙຯΛ࣋ͭΫϥεΛ୳͍͢͠ ‣
Ϋϥε໊Λݟ͚ͨͩͰɺதΛ༧Ͱ͖Δ )PHF$SFBUPSΫϥε%#ʹอଘ͢Δ )PHF'PSNΫϥεWBMJEBUJPOCVJME·ͰͰอଘ͠ͳ͍ ࢀߟIUUQTHJTUHJUIVCDPNIPUBUFLBPSVGBEEGFFBG ҎԼͷ0CKFDUͷϧʔϧΛهࡌͯ͠·͢ 7JFX0CKFDU $PMMFDUPS0CKFDU 2VFSZ0CKFDU 4FSWJDF0CKFDU $SFBUPS6QEBUFS0CKFDU 'PSN0CKFDU 7BMJEBUF0CKFDU 7BMVF0CKFDU 1PMJDZ0CKFDU
ϦϑΝΫλϦϯάύλʔϯͷ໌จԽ 20 ϦϑΝΫλϦϯάύλʔϯΛ໌จԽ͢ΔϝϦοτ ‣ ࠷ॳ͔ΒϦϑΝΫλϦϯά͕ෆཁͳίʔυΛ࣮͢Δ ‣ ϦϑΝΫλϦϯάʹ͔͔Δ࣌ؒΛݮΒ͢ ϦϑΝΫλϦϯά͕ಘҙʹͳΔͱɺʢதུʣѱ͍ίʔυΛॻ͘ͷΛΊɺ ѱ͍׳शʹै͏ͷΛΊɺϓϨϑΝΫλϦϯάΛ࢝ΊΔͷͩɻʢதུʣ ίʔυͷϦϑΝΫλϦϯάɺίʔυΛॻ͘ͱ͖ʹ͍͚ͯ͠ͳ͍͜ͱɺ
ΘΓʹ͖͢͜ͱΛֶͿ্Ͱ࠷ͷํ๏ͷͭͳͷͩɻ %BWJE4DPUU#FSOTUFJOஶʮϨΨγʔίʔυ͔Βͷ٫ʯΑΓ
ϦϑΝΫλϦϯάύλʔϯͷ໌จԽ 21 ϦϑΝΫλϦϯάύλʔϯͷྫ ‣ DPODFSOͷ͍ॴͱআڈ͢Δํ๏ !XJMMOFU͞Μʮ$PODFSOTBCPVU$PODFSOTʯ IUUQTTQFBLFSEFDLDPNXJMMOFUDPODFSOTBCPVUDPODFSOT ‣ 'PSN0CKFDUΛ͏ํ๏ ϝυϐΞ։ൃϒϩάʮGPSNPCKFDUΛͬͯΈΑ͏ʯ
IUUQTUFDINFEQFFSDPKQFOUSZ ‣ 'BU.PEFMΛ٫͢Δํ๏ ʮ'BU.PEFMʹରॲ͢ΔͭͷϦϑΝΫλϦϯάύλʔϯʯ IUUQTTQFBLFSEFDLDPNIPUBUFLBPSVGBUNPEFMOJEVJDIVTVSVUVGBMTFSJIVBLVUBSJOHVQBUBO
৽نϓϩδΣΫτͷϦʔυΤϯδχΞʹͳΔͨΊʹ ‣ SBJMTUFNQMBUF SBJMTOFXͷ͋ͱɺʮരʯͰʮϞϨͳ͘ʯඞཁͳઃఆ͕Ͱ͖Δ ‣ ࣗͳΓͷίʔσΟϯάن ‣ ϦϑΝΫλϦϯάύλʔϯͷ໌จԽ ϨϏϡʔʹॻ͚Δ࣌ؒΛݮΒ͠ɺίʔυͷ࣭Λ্͛Δ ·ͱΊ
22
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 23