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
1.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
Bliki (ja), and the Cathedral, and the Bazaar
koic
8
1.8k
Welcome to the LLM Club
koic
0
300
RuboCop: Modularity and AST Insights
koic
3
4.6k
Beyond the RuboCop Defaults
koic
3
4.4k
Minify Ruby Code
koic
2
2.4k
Permanent Agility
koic
38
9.2k
RuboCop: LSP and Prism
koic
3
5.2k
Organizational Pattern Hatching
koic
0
1.5k
A Practitioner's Journey from Ruby 1.8 to Present
koic
1
2.1k
Other Decks in Education
See All in Education
2025/06/05_読み漁り学習
nag8
0
180
情報科学類で学べる専門科目38選
momeemt
0
400
仮説の取扱説明書/User_Guide_to_a_Hypothesis
florets1
4
330
今も熱いもの!魂を揺さぶる戦士の儀式:マオリ族のハカ
shubox
0
220
予習動画
takenawa
0
12k
Alumnote inc. Company Deck
yukinumata
0
1.1k
Education-JAWS #3 ~教育現場に、AWSのチカラを~
masakiokuda
0
200
より良い学振申請書(DC)を作ろう 2025
luiyoshida
1
3.3k
アントレプレナーシップ教育 ~ 自分で自分の幸せを決めるために ~
yoshizaki
0
150
モンテカルロ法(3) 発展的アルゴリズム / Simulation 04
kaityo256
PRO
7
1.4k
2025年度春学期 統計学 第3回 クロス集計と感度・特異度,データの可視化 (2025. 4. 24)
akiraasano
PRO
0
200
新卒研修に仕掛ける 学びのサイクル / Implementing Learning Cycles in New Graduate Training
takashi_toyosaki
1
190
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
Designing for humans not robots
tammielis
253
25k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Code Reviewing Like a Champion
maltzj
524
40k
RailsConf 2023
tenderlove
30
1.2k
Side Projects
sachag
455
43k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Unsuck your backbone
ammeep
671
58k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Typedesign – Prime Four
hannesfritz
42
2.7k
Speed Design
sergeychernyshev
32
1.1k
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ฏು݈ࣇ ͻͱΓͻͱΓͷਓͱͯ͠ͷؔ ϓϩδΣΫτظؒΑΓ͘ଓ͘