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
Carving the Way to Ruby Engineering
Search
Koichi ITO
December 05, 2024
Education
3
1k
Carving the Way to Ruby Engineering
RubyWorld Conference 2024 (
https://2024.rubyworld-conf.org/ja/
)
Koichi ITO
December 05, 2024
Tweet
Share
More Decks by Koichi ITO
See All by Koichi ITO
Welcome to the LLM Club
koic
0
280
RuboCop: Modularity and AST Insights
koic
3
4.5k
Beyond the RuboCop Defaults
koic
3
4.3k
Minify Ruby Code
koic
2
2.3k
Permanent Agility
koic
37
9.1k
RuboCop: LSP and Prism
koic
3
5.1k
Organizational Pattern Hatching
koic
0
1.5k
A Practitioner's Journey from Ruby 1.8 to Present
koic
1
2.1k
A Story Featuring Right Hand Archetype
koic
0
1.1k
Other Decks in Education
See All in Education
ふりかえり研修2025
pokotyamu
0
1.3k
CHARMS-HP-Banner
weltraumreisende
0
290
小さなチャレンジが生んだチームの大きな変化 -私のふりかえり探求の原点
callas1900
0
570
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
signer
PRO
1
2.1k
OpenRobomaster 中国のロボットコンテスト 日本連携の可能性
takasumasakazu
0
460
20250611_なんでもCopilot1年続いたぞ~
ponponmikankan
0
120
ThingLink
matleenalaakso
28
4.1k
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
200
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019538FNR)
signer
PRO
1
2.1k
仮説の取扱説明書/User_Guide_to_a_Hypothesis
florets1
4
320
America and the World
oripsolob
0
510
ANS-C01_2回不合格から合格までの道程
amarelo_n24
1
260
Featured
See All Featured
Fireside Chat
paigeccino
37
3.5k
Code Review Best Practice
trishagee
69
19k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Six Lessons from altMBA
skipperchong
28
3.9k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Building an army of robots
kneath
306
45k
Transcript
3VCZϓϩάϥϛϯάεΫʔϧ ͔Βͷ࠾༻ͱҭ Carving the Way to Ruby Engineering ҏ౻ߒҰ&4. *OD
3VCZ8PSME$POGFSFODF ౡࠜݝཱ࢈ۀަྲྀձؗʮ͘ʹͼ͖ϝοηʯ
@koic w044ϓϩάϥϚʔ w3VCP$PQίΞνʔϜίϛολʔ wגࣜձࣾӬγεςϜϚωδϝϯτ &4. *OD ΤϯδχΞϦϯάϚωʔδϟʔ σΟεςΟϯάΠογϡυɾΤϯδχΞ
None
࠾༻ͱಇ͖ํͷଟ༷Խ wਓੜͷঢ়گʹ͋Θͤͨ ϥΠϑελΠϧΛଚॏ͢Δ wؔ౦ݍɺҪɺ࣎լɺ Վࢁɺౡࠜɺٶ࡚͔Βͷ ϦϞʔτϫʔΫ 🗾
w த్ *5اۀ͔Β w த్ εΫʔϧܦ༝ w ৽ଔ
w ͕εΫʔϧग़ऀ w εΫʔϧ͔Βݩܯɺ्ҩɺڭࢣͳͲଟ༷ ࢲͨͪͷ৫ͷೖࣾܦ࿏
ࠓͷ
☝ 3VCZ͕ଟ༷ͳݱ࣮ੈքͷద߹ͱਁಁ͍ͯͨ͘͠Ίͷ׆ಈঢ়گΛ͖࣋ͬͯ·ͨ͠ IUUQTSVCZXPSMEDPOGPSHKBBCPVU
εΫʔϧ͔Βͷ࠾༻ͱҭϞσϧ 5SBJOJOH (SBEVBUJOH "QQSFOUJDJOH $BUBMZ[JOH 1SF&OHJOFFS 5SBOTJUJPOBM $IBOHF PS/PU (3085)
1SBHNBUJD4LJMMT (3085) 3VCZ'VOEBNFOUBMT (FUUJOH4UBSUFE School-to-Work Model *OTQJSFECZIUUQTXXXNBSUJOGPXMFSDPNBSUJDMFTBHJMF'MVFODZIUNM
ಛఆͷεΫʔϧʹدΒͳ͍ʁ 3VCZCJ[(SBOEQSJYΫϦΤΠςΟϒͷड͓ΊͰͱ͏͍͟͝·͢ʂ
ϑϥΫλϧίϛϡχςΟ ࠾༻ͱ͍͏໊ͷ௨աӺ ҭڥͮ͘Γ ࣍
ϑϥΫλϧίϛϡχςΟ
w 3VCZJTUʹҰछͷຽతͳՁ؍श׳͕ ͋ΔԾઆ w ϓϩάϥϛϯάݴޠΛֶͿ͚ͩͰͳ͘ɺ ϓϩάϥϛϯάݴޠΛͬͯΔίϛϡχςΟ Ͱͷઃܭͷྑ͠ѱ͠ͷՁ؍ৼΔ͍ํ Λ͍ͬͯ͘ ݴޠίϛϡχςΟΛΔ
w զʑ3VCZJTUɺ3VCZͱ͍͏ݴޠͱ3BJMTͱ ͍͏%4-Λࠃޠͱͨ͠ରΛߦ͏ w 3VCZ3BJMTΒ͍͠ ͘͠Β͘͠ͳ͍ ίʔυͷڞ௨ೝ͕ࣝͲ͏3VCZJTUʹ͋Δ w ʮݴޠࢥߟΛنఆ͢ΔʯαϐΞʹΥʔϑ
ͷԾઆɺ͋Δ͍ʮόϕϧʯ ࠃޠͷډ৺ͷྑ͞
7MBEJNJS%FNFOUZFWTBZT 0QFOJOH,FZOPUFPG,BJHJPO3BJMT
w ίʔυϦʔσΟϯά࡞ऀ͕͍͑ͨ͜ͱΛ ίʔυ͔ΒಡΈऔͬͯߟ͑Δ࡞ۀ w ݹయจֶ๏ͷઐՈͷΑ͏ʹɺ3VCZJTU 3VCZͱ3BJMTͷղऍΛॏͶ͍ͯ͘ w ॳ͔Βͳ͔ͬͨ3VCZ3BJMTઐՈಉ࢜ͷ ͕ٞঃʑʹΘ͔ΔΑ͏ʹͳͬͯ͘Δ ࡞ऀͷؾ࣋ͪΛߟ͑
ଓ͚ Α
εΫʔϧͱ͍͏ίϛϡχςΟͷೖΓޱ 3BJMTʹͨΒ͞Εͨ ʮઃఆΑΓنʯ ɺεΫʔϧं͔྆ Βاۀं྆ؒͷ ंํ๏ͷલఏͷ෯ Λ͍͛ͯΔʁ IUUQTKQRVPSBDPN3VCZʹͱܾͬͯఆతʹΓͳ͍ͷԿͩͱࢥ͍·͔͢
εΫʔϧ اۀʹଓ͘
w ԿेਓنͰ࠾༻Ͱ͖ΔେاۀͰͳ͍Զͨͪ w ϓϩάϥϛϯάະܦݧऀΛूஂڭࣨࢦಋ͢Δ ઐՈͰͳ͘ɺεΫʔϧͱ͍͏ઐۀऀ w 3VCZεΫʔϧʹ͓͚Δ3VCZίϛϡχςΟͷ ܗɺΦʔϓϯͳ3VCZίϛϡχςΟͱܨ ͕ΓͰ͋Γɺಉ͡ࢹͷؒͷू·Γॏཁ ࠾༻ͱ͍͏௨աӺ·Ͱͷҭ
w 3VCZΛओྗʹ࠾༻͍ͯ͠Δاۀɺ3VCZͬ Ά͍ਓͨͪͰߏ͞Εͯ͘Δʁ w ҰํͰɺ৫ʹΑͬͯՁ؍େʹ͍ͯ͠ Δͷʹର͢ΔΧϥʔ͕͋Δ w ৫ಛੑͷϚονϯάͰߟ͑ͯΈΔ ͓ޓ͍ʹͲΜͳਓ ͨͪ
ͱࣄΛ͍ͨ͠ʁ ద ߹ ੑ ॏ ཁ
ͲΜͳਓ͕ͨͪ จԽΛ࡞ͬͯ ͍Δ৫ʹ ࢀՃ͍ͨ͠ʁ ࠾༻ଆจԽΛൃ৴ͯ͠ɺԠืଆࣗʹ͍͋ͦ͏ͳจԽΛ୳ͤΔͱྑ͍ͷ͔ͳ
w 3VCZJT"HJMFCZ.BU[ w ֯୩͞Μ͕ฐࣾӡӦΠϕϯτͰاըͨ͠ओ 3VCZJTUΛड͚ೖΕΔاۀจԽΛৢ͢ IUUQTPCKFDUDMVCKQFWFOUDISJTUNBTTDIFEVMF
None
৫จԽ ίϛϡχςΟ ͱͷϚονϯάͷߟ ब৬Ԡืऀͱ࠾༻اۀͷϚονϯάͰɺ৫ΛίϛϡχςΟͱͯ͠ଊ͑ͯΈΔ
ͲΜͳਓͨͪͱಇ͖͍ͨʁ ͋Δ͍ ͲΜͳਓΛड͚ೖΕ͍ͨʁ
w ৴པͰ͖Δਓ͔Βͷڑ w ৴པͰ͖Δਓ͕৴པͰ͖Δͱݴ͍ͬͯΔਓ w ϦϑΝϨϯενΣοΫͻͱͭͷखஈͳ͕Β ৴པͰ͖Δے͔Βͷใ͕Ұ൪ͷ৴པݩ ࠾༻Λതଧʹ͠ͳ͍EFHSFFO ͭ·ΓίϛϡχςΟͰͷϨϐϡςʔγϣϯͱͯॏཁ
w ɹʮொా͍ʯͱ͍͏ίϛϡχςΟదੑஅ w اۀͱੜెͦΕͧΕΛ͍ͬͯΔͷͰɺ૬ੑ Λߟ͑Δ͜ͱ͕Ͱ͖Δ w εΫʔϧίϛϡχςΟͰɺਓͱاۀͷίϛϡ χςΟจԽΛΔ࿉͕͞Ε͍ͯΔͷͰʁ ίϛϡχςΟ͔ΒίϛϡχςΟ 3VCZίϛϡχςΟʮ࣍ͷִͨΓʯͳΒ͵.BU[ͱࡾ࣍ͷִͨΓͰܨ͕Γͦ͏
IUUQBHJMFFTNDPKQEPDTCVTJOFTT@QMBO@FTN@BHJMF@EJW@UIQEG ੜଶܥʹͱͬͯεΫʔϧίϛϡχςΟͷॏཁੑ্ 3VCZίϛϡχςΟʮ࣍ͷִͨΓʯͳΒ͵.BU[ͱࡾ࣍ͷִͨΓͰܨ͕Γͦ͏ ͱͳΔ 3VCZίϛϡχςΟ
࠾༻ͱ͍͏໊ͷ௨աӺ
w ࠾༻ޙϦϞʔτϫʔΫͷͨΊɺ࠾༻໘ ϦϞʔτͷίϛϡχέʔγϣϯͰߦ͍ͬͯΔ w ͦͷ໘ͷͷઌͷɺݱϝϯόʔͱͷࣄ Λݟӽͨ͠ࢹͰߦ͍ͬͯΔ ࠾༻ٕज़໘
w γϣʔτΞϯαʔͱͯͦ͠͏Ͱͳ͍ w ͪΖΜΛղ͚Δʹӽͨ͜͠ͱͳ͍ ͕ɺΛ௨ͯ͠ίϛϡχέʔγϣϯ໘ͷ ؍Λॏࢹ͍ͯ͠Δ w ٕज़తͳ෦ॏཁ͕ͩɺ͍·͍Δಉ྅ͨͪ ͱ͍͚ͬͯͦ͏͔͕ͬͱॏཁ ͕ղ͚ͳ͚Ε/(
🧐
ٕज़໘Ͱ $PQJMPU0,
w γϣʔτΞϯαʔͱͯ͠ͳ͍ w ͳͥͳΒίʔυิ͢Δͷ/(Ͱͳ͍ͷ ͱಉ͡Ͱɺ༏लͳίʔυิͱࢥ͑ྑ͍ w Ή͠Ζ৽͍࣌͠ͷΤϯδχΞͷൃྗͰ"* ΛͲ͜·Ͱ׆༻Ͱ͖Δ͔ڵຯ͕͋Δ ৽͍࣌͠ͷߟ͑ํʹ͋ΘͤΔ ·ͣࣗͷதʹߟ͑Λݟ͚ͭΔ͕࢟͋Δ͔ɻ"*ͦ͜ͷরձͱݟ͍ͯΔɻ
w ࣗ͋Δ͍"*Ͱॻ͍͍ͯΔίʔυʹର͠ ͯɺΤϥʔ͕ى͖ͨ࣌ͷσόοά w ϝιουมͷΑΓྑ໊͍લ͚ w ͔Βͳ͍͜ͱΛݴޠԽͯ͑͠ΒΕΔٕज़ w ʹର͢Δཁ݅ͷ࿙Εͷࢦఠ େࣄͳͷ"*͔Βઌͷ͜ͱ
ࣗΒͷٕज़ʹؔ৺Λ࣋ͭ͜ͱ ͋ͳͨͷࣄʹ͍ͭͯߟ͑Δ͜ͱʂ ܅ֶͿ͜ͱ͕৺͔Β͖ͩ ܅ιϑτΣΞͷ͜ͱΛେʹࢥ͍ͬͯΔ ΞδϟΠϧαϜϥΠ +POBUIBO3BTNVTTPO ୡਓϓϩάϥϚʔ %BWJE5IPNBT "OESFX)VOU ιϑτΣΞ։ൃ͖Ͱ͔͢ʁ
ҭڥͮ͘Γ
KPLFSUBHPNPSJTϨϕϧͷ ੌΛ࠾༻͢Δͷ͍͕͠ɺ࣍Λ ୲͏ੌʹ͍͚ͯ͠ΔڥΛ͑Δ ྗͰ͖Δͣ
εΩϧʹ͚͍͚ͭͯྑ͍ ֶΜͰ͍࢟͘ਓؒੑ͕େࣄ ͍·͋ΔεΩϧΑΓ࢟ !DPMPSCPYTBZT
w ͻͱΓͻͱΓʹ͔͍߹ͬͨใ͕େࣄ w ຊਓͷݴ༿Λಘ͍ͯͳ͍૾߹ͷྑ͍ ظ͕ڧ͘ɺͦΕԟʑʹͯ͠ϋζϨ͏Δ ϨϕϧΞοϓ͢ΔͷΤϯδχΞຊਓ
w ΤϯδχΞجૅٕज़शಘࢧԉ w ϝϯλʔ੍ w ࣾಡॻձɺษڧձɺݚڀ෦ w ϦϞʔτϫʔΫ։ൃඋิॿ w ใจԽ
ࣄۀͰߦ͑Δͷڥͮ͘Γ ͜ΕΒࢪࡦͷ͏ͪελʔλʔΩοτͬΆ͍ͷͰ͢
w ೖ͖ࣾͯͨ͠ϝϯόʔͷഎܠ·ͪ·ͪ w ৬ۀ͕ҧ͏͕લ৬Ͱ-JOVYͷݚम͕͋Δͳ ͲɺεΫʔϧҎલ͔ΒͷೃછΈͷ༗ແ w ใPOͳͲ͔Βۀߦʹෆͯ͠ ͍ΔͱࢥΘΕΔࣝεϙοτΛߟ͍͑ͯ͘ ΤϯδχΞجૅٕज़शಘࢧԉ વɺ͍ͬͯΔ͜ͱͱͰ͖Δ͜ͱҟͳΔ͕ɺΒͳ͍ࣝͰղܾͰ͖Δ
w ࢿ֨ࢼݧࣝͷମܥతशಘʹΑ͘Ͱ͖͍ͯΔ 3VCZೝఆٕज़ऀ ใٕज़ऀࢼݧ -JOV$ͳͲ w ࢿ֨औಘతͰͳ͘ɺۀߦʹඞཁͳ ࣝΛମܥతʹ֫ಘ͢Δͷ͕త w
ࢿ֨औಘ෭࡞༻͕ͩɺࢿ֨ࢼݧʹ߹࣮֨͠ ղআ͢Εخ͍͠ͷ͕ਓ ඪਓؒͷϞνϕʔγϣϯʹͳΔ
w ݱͷ֎͔ΒͩͱநతͳҰൠղͷఏҊ ҰൠղͷҬΛ͑ͮΒ͍ʁ w ॏཁͳͷ࣮։ൃݱʹ͓͚ΔίϯςΩετ ͰਓͷΛѲͰ͖ΔཱͪҐஔͷਓɻ ͦͷͨΊʹɺݱͷਓ͕ݟΔͷ͕ͬͱ ͕֬ߴ͍ ϝϯλʔಛघղͷѲ͕ॏཁ
ࢢπϦʔͰͳ͍ IUUQTXXXBNB[PODPKQEQ9
πϦʔߏ ηϛϥςΟεߏ ϝϯςΟʔʹԠͯ͡ɺଟ໘తʹݟΕΔΑ͏POମ੍ΛಈతʹऔΕΔΏͱΓॏཁ ϨϙʔτϥΠϯͷPOͷΈͩͱ ϥΠϯͷใ͕શͯʹͳͬͯ͠·͏ ඞཁͳϖΞͰͷPOͷػձΛ૿͠ ͲͷΑ͏ͳαϙʔτ͕Ͱ͖Δ͔ݕ౼Մ ҭPOϞσϧπϦʔͰͳ͍
w ަྲྀͷೱ୶Ͱ͍͏ͱɺಉ͡ϓϩδΣΫτͷϝ ϯόʔͱͷަྲྀ͕ѹతʹೱ͘ͳΓ͕ͪ ͦΕͦ͏ w ϓϩδΣΫτΛԣஅͨ͠ަྲྀػձ͋Δఔ ҙਤతʹ࡞Βͳ͍ͱɺಛʹ৽نࢀըͷ ϝϯόʔΛ࡞ΔϙΠϯτΛಘͮΒ͍
ࣾಡॻձɺษڧձɺݚڀ෦
None
w ͬͯΈ͍ͨࣄ༰ٕज़ͷࢦੑͳͲΛ ฉ͍ͯͲΜͳํʹϨϕϧΞοϓ͍͖ͯͨ͠ ͍͔Λ۷Γग़͍ͯ͘͠ w ͍·ͷϓϩδΣΫτΛΑΓྑ͘͢ΔΞϓϩʔ νɺϚον͢ΔผϓϩδΣΫτͷҾӽ͠ ͳͲɺθωϥϧϚωʔδϟʔͱϓϩδΣΫτ ϚοϓͰݕ౼͢Δ 8JUIPVU1SBDUJDF
/P&NFSHFODF मͤ͟ΕݱΘΕͣ
ใ ใൺֱతܗ͔Β࢝ΊΒΕΔ ;Γ͔͑Γ ேձɾ༦ձ $* ϦϑΝΫλϦϯά ϖΞϓϩάϥϛϯά Ϟϒϓϩάϥϛϯά ΠϯΫϦϝϯλϧͳઃܭ ϓϥϯχϯά
5%% ఆ࣌Πϕϯτͱͯ࢝͠ΊΒΕΔ PO ใʹ͍ͭͯৄ͘͠࡞ʰϕςϥϯͦ͜ใΛॻ͜͏ʱΛ͝ࢀর͍ͩ͘͞ ใ ٕೳͷशಘʹ͕࣌ؒඞཁ
ୈষ l࣌Λ͑ͨ ϓϩάϥϛϯάͷಓz IUUQXXXBNB[PODPKQEQ
l πʔϧٕ๏ԿมԽ͢Δ͕ɺ େ͖͘มԽ͢ΔΘ͚Ͱͳ͍ɻҰํɺ ਓΏͬ͘Γͱ͕ͩɺਂ͘มԽ͢Δɻ ,FOU#FDL
%BWF5IPNBTTBZT IUUQTXXXZPVUVCFDPNXBUDI W&$'(C+9Z* w 3VCZ,BJHJͰ ʮ৽͍͠ਓͨͪΛܴ ͑ೖΕΔࢧΛ͠Α ͏ʯͱএ͑Δ w ݱͦͷޙ
w ࢧͷ͋ͱ
l ϓϩάϥϛϯάεΫʔϧͰͷίϛϡχςΟब৬ઌͷ৫ίϛϡχςΟʹݴ͑ͦ͏ &4. *OD$&0ฏು݈ࣇ ͻͱΓͻͱΓͷਓͱͯ͠ͷؔ ϓϩδΣΫτظؒΑΓ͘ଓ͘