Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新規プロジェクトのリードエンジニアになるために
Search
Kaoru Hotate
December 14, 2019
Programming
6
2.7k
新規プロジェクトのリードエンジニアになるために
2019/12/14 平成Ruby会議#01 登壇資料
Kaoru Hotate
December 14, 2019
Tweet
Share
More Decks by Kaoru Hotate
See All by Kaoru Hotate
20240607_人を動かし続ける力_ピープルマネジメントへの内発的動機づけの工夫
hotatekaoru
2
420
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
費用対効果の高いテストコードを書くために意識したこと.pdf
hotatekaoru
3
5k
リファクタリングチャンスを探せ
hotatekaoru
2
520
Dependabotからの脱却
hotatekaoru
0
490
Fat Modelに対処する 6つのリファクタリングパターン
hotatekaoru
13
4.7k
MobPro2Points
hotatekaoru
0
120
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
220
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.7k
Other Decks in Programming
See All in Programming
15年目のiOSアプリを1から作り直す技術
teakun
1
620
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
Claude Code Skill入門
mayahoney
0
140
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.4k
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.9k
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
100
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
230
株式会社 Sun terras カンパニーデック
sunterras
0
2k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
370
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
150
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Ruling the World: When Life Gets Gamed
codingconduct
0
170
Making Projects Easy
brettharned
120
6.6k
Optimizing for Happiness
mojombo
378
71k
The untapped power of vector embeddings
frankvandijk
2
1.6k
Building AI with AI
inesmontani
PRO
1
780
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
99
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
89
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