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
達人プログラマーとわたし/PragProg and Me
Search
MOROHASHI Kyosuke
November 21, 2016
Programming
12
5.8k
達人プログラマーとわたし/PragProg and Me
2016-11-21 技術書の歩き方勉強会「達人プログラマー編」での資料です。
https://connpass.com/event/44500/
MOROHASHI Kyosuke
November 21, 2016
Tweet
Share
More Decks by MOROHASHI Kyosuke
See All by MOROHASHI Kyosuke
Identifying User Idenity
moro
9
16k
Simplicity on Rails -- RDB, REST and Ruby
moro
15
18k
ちょうどよい Rails E2E テスト/enough-good-rails-e2e-test
moro
5
2.4k
フレームワークを作らない方法/How NOT to build frameworks
moro
4
1.1k
全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること/let-our-whole-system-grow
moro
2
1.9k
フォームオブジェクトとの向き合い方/Grow Form Objects up
moro
1
2k
チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software
moro
3
3.4k
Web-E2E-Testing-from-Ruby
moro
5
540
Joyful user foundation restructuring with Ruby
moro
9
19k
Other Decks in Programming
See All in Programming
WordPress Playground for Developers
iambherulal
0
120
PsySHから紐解くREPLの仕組み
muno92
PRO
1
530
爆速スッキリ! Rspack 移行の成果と道のり - Muddy Web #11
dora1998
1
160
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
5
2.4k
英語 × の私が、生成AIの力を借りて、OSSに初コントリビュートした話
personabb
0
120
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
0
150
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
1.1k
gen_statem - OTP's Unsung Hero
whatyouhide
0
110
goにおける コネクションプールの仕組み を軽く掘って見た
aronokuyama
0
140
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
12
3.8k
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
1.1k
The Weight of Data: Rethinking Cloud-Native Systems for the Age of AI
hollycummins
0
120
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
53
13k
A Tale of Four Properties
chriscoyier
158
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Why Our Code Smells
bkeepers
PRO
336
57k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
12
620
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
RailsConf 2023
tenderlove
29
1k
Transcript
ୡਓϓϩάϥϚʔͱ Θͨ͠ @2016-11-21 ٕज़ॻͷา͖ํษڧձʮୡਓϓϩάϥϚʔʯฤ @moro ॾڮګհ
ॾڮګհ(@moro) Kyosuke MOROHASHI
None
ࢲͷΩϟϦΞͷ͜ͱ
‣ ٕज़෦ ։ൃج൫άϧʔϓ ‣ ։ൃੜ࢈ੑΛ্ͤ͞Δ͜ͱ͕ϛογϣϯ ‣ ίʔυϨϏϡʔઃܭࢧԉ ‣ εςʔδϯάڥCIڥͷҡ࣋ɾվળ ‣
ج൫ϓϥοτϑΥʔϜͷඋɺͳͲ ͍·: 2015-: ΫοΫύου
‣ RubyͱRailsͰ͓٬༷ͷιϑτΣΞΛ։ൃ͍ͯͨ͠ɻ ‣ ΞδϟΠϧͳडୗ։ൃɺαʔϏε։ൃͷࢧԉͳͲɻ ͦͷલ: 2006-2015: ӬγεςϜϚωδϝϯτ
‣ “SE” ͱͯ͠ब৬ͨ͠ɻ ‣ 100ਓҎ্ͷϓϩάϥϚɺ1Ҏ্ଓ͘ϓϩδΣΫτ (1,000+ਓ݄!!)ͷϓϩδΣΫτʹΞαΠϯ͞Εͨɻ ‣ ϓϩδΣΫτͷ։ൃੜ࢈ੑ্ɺͱ͍͏ϛογϣϯ ͩͬͨΑ͏ͳɻ ͦͷલ:
2003-2006: େखిػϝʔΧʔ
‣ ઋ͍͍֗ͩͬͨɻ ‣ MacOS X public beta͕ॏ͗ͯ͢UNIX͞ΘΓ࢝ΊΔ ‣ ͦͷྲྀΕͰ “UNIXͱ͍͏ߟ͑ํ”
ͳͲಡΜͰ͍ͨ ͦͷલ: -2003: จܥେֶੜ
ΩϟϦΞͷதͰ ग़ձͬͨຊ
‣ “ࠇ͍ը໘”ͷഎޙʹ͋Δ ʮߟ͑ํʯʹಌΕͨ ‣ ٕज़తͳத͋·ΓΘ͔Βͳ ͔ͬͨΑ͏ͳɻ
‣ ࣾձਓͩ͠ҙ͔ࣝͨΊͯ͜? ‣ ਖ਼ɺΘ͔ͬͨΑ͏ͳΘ͔ΒΜΑ͏ͳ…
‣ “ϐʔϓϧΣΞ” ͱ͔ “ਓ݄ͷਆ” ΛಡΜͰ (େن)ιϑτΣΞ։ൃʹ͍ͭͯߟ͑Δɻ ‣ େنϓϩδΣΫτͷย۱ͰɺRubyΛ͞ΘΓͩ͢ɻ ‣ “RubyϨγϐϒοΫ”
2003-2006: େखిػϝʔΧʔ
‣ וాͷຊͰങͬͨ ‣ net/telnetͰSolarisʹϩάΠϯͯ͠ ‣ γΣϧεΫϦϓτ࣮ߦͯ͠ ‣ ग़དྷͨϑΝΠϧΛnet/ftpͰ࣋ͬͯ͘ΔεΫϦϓτʹ ‣ VisualuRubyͰUI͚ͭͯ
‣ exerbͰݻΊͯϙϯஔ͖
‣ “ϓϩάϥϛϯάRuby” ‣ ͷஶऀͷॻ͍ͨ “ୡਓϓϩάϥϚʔ” ‣ “Agile Web Development with
Rails” 2003-2006: େखిػϝʔΧʔ
‣ ʮUNIXͱ͍͏ߟ͑ํʯΛࣄͰ࣮ ݱ͢Δͱͨ͠Β͜͏͍͏ͷ͔ͳɻ ‣ DRYɺࣗಈԽɺϦϑΝΫλϦϯ ά… ʮ͜Μͳ;͏ʹಇ͚ͨΒ͍͍ ͳ͋ʯ
‣ Rails 1.0͕ग़ΔલʹЌϒοΫͰ ೖखɻ ‣ ʮЌϒοΫɺͦΜͳͷ͕͋Δͷ͔ʯ ‣ ͜ͷಡॻձ͕Railsษڧձ@౦ژ
None
‣ ֯୩͞Μʹ༠ΘΕͯ(ԡ͔͚ͯ͠?)ೖࣾͨ͠ɻ ‣ 10+ؒɺ΄΅ͣͬͱRubyͷϓϩδΣΫτͩͬͨɻ ‣ ୡਓϓϩάϥϚʔͰಡΜͩͱ͜Ζͩ!! ‣ DRY, ࣗಈԽ, TDD,
ϦϑΝΫλϦϯά… ‣ RailsTDDͷຊॻ͍ͨɻ 2006-2015: ӬγεςϜϚωδϝϯτ
None
‣ ࣾ֎ͷଟ͘ͷ Rubyist ͱΓ߹͑ͨɻ ‣ ΠϯλʔωοτͷਓͨͪͱࣄΛ͢Δײ֮ʹͳͬͨɻ ‣ XࣾͷA͞ΜɺͰͳ͘ A͞Μ͕͍·ಇ͍͍ͯΔɺXࣾ 2006-2015:
ӬγεςϜϚωδϝϯτ
‣ ΞδϟΠϧ։ൃͷ͍ΖΜͳϓϥΫ ςΟεΛΪϡοͱ·ͱΊͨҰɻ ‣ ͘Β͍ʮ;ͩΜ͍ͬͯΔ͜ͱʯ͕ମܥཱͯͯॻ ͍ͯ͋ͬͨɻ ‣ ʑͷιϑτΣΞ։ൃʹɺͱ࣮ͯફ͖ͯʹཱͭɻ
‣ ϓϩάϥϚʔ͕ɺϓϩάϥϛϯ άΛੜۀʹ͢Δ࣌ͷ࢟ͱɺͦ ͷ࣮ફͷຊɻ ‣ ಡΉͨͼʹ͞Δͱ͜Ζ͕มΘΔɻ
The Recipe for the World’s Largest Rails Monolith Akira Matsuda
https://speakerdeck.com/a_matsuda/the-recipe-for-the-worlds-largest-rails-monolith
‣ RubyϞϊϦεΛݟʹདྷͨɻ ‣ લલٕज़෦ͷߴҪ͞ΜRuby/Railsͭͳ͕ΓͰͬͯͨɻ ‣ ͍͢͝ΤϯδχΞ͕ “ͪΌΜͱ” ͍ͬͯͨɻ ‣ ٕज़ϒϩάʹॻ͍ͯ͋Δ͜ͱɺ΄Μͱʹ͍ͬͯͯ͢͝w
2015-: ΫοΫύου
ղফͰ͖ͨෆ҆ (git add & git commit͓ͯ͜͠͏) http://techlife.cookpad.com/
‣ ϢʔβʔͷຊͷχʔζΛߟ͑ଓ͚ΔσΟϨΫλʔ ‣ ࠷ߴͷϢʔβମݧΛߟ͑ଓ͚ΔσβΠφʔ ‣ ϢʔβʔͷΛड͚ࢭΊɺࠔΓ͝ͱΛղܾ͢Δ Ϣʔβʔαϙʔτ ‣ ͱ͍͏৫Λࢧ͑ΔόοΫΦϑΟε ͳͲͳͲ…
“ϓϩάϥϜΛॻ͘”͜ͱͱ “ՁΛఏڙ”͢Δ͜ͱͷࠩ
ରγεςϜ ຊ൪ڥ ։ൃ طଘ γεςϜ Ϗδωεཁٻ ϏδωεՁ ֎෦੍ ๏ ن੍
lશମz Τϯυ πʔ Τϯυ https://speakerdeck.com/kakutani/agile-manifesto-decade
‣ ϓϩάϥϚʔ͕ɺϓϩάϥϛϯ άΛੜۀʹ͢Δ࣌ͷ࢟ͱɺͦ ͷ࣮ફͷຊɻ ‣ ಡΉͨͼʹ͞Δͱ͜Ζ͕มΘΔɻ
“ 91ͷϓϥΫςΟεͷνʔϜશମͱɺ༷ʑͳਓ͕૬ ޓʹؔ࿈͠ͳ͕ΒҰॹʹࣄΛͯ͠ɺϓϩδΣΫτ Λ͞ΒʹޮՌతʹ͢ΔͷͰ͋Δɻ XPνʔϜશମ ΤΫετϦʔϜϓϩάϥϛϯά; ୈ10ষ XPνʔϜશମ
“ Ϗδωεࣄ;͘ΊͨίϛϡχςΟʔͷதͰɺ ࣗͷډॴΛݟ͚ͭΔ͜ͱͩɻࣗݾӽͷϓϩη εͷ͜ͱͩɻͦͷϓϩηεͷதͰɺ։ൃऀͱͯ͠࠷ ળΛͭ͘͢͜ͱͩɻϏδωεͷͨΊʹͳΔ༏Εͨίʔ υΛॻ͘͜ͱͩɻ XPͱͳʹ͔ ΤΫετϦʔϜϓϩάϥϛϯά; ୈ1ষ XPͱͳʹ͔
ͭͷखڧ͍࣭ ࣗԿ͕ಘҙͳͷ͔ ࣗͲ͏ͬͯߩݙ͢ΔͭΓ͔ ͕ࣗେʹࢥ͏Ձͳʹ͔ νʔϜϝϯόʔࣗʹͲΜͳՌΛ ظ͍ͯ͠Δ͔ http://diary.shu-cream.net/2016/01/15/the-drucker-exercise-in-gmo-pepabo-inc.html
ϓϩάϥϚʔʹͳΔ͜ͱ
ຊॻ͋ͳ͕ͨΑΓྑ͍ϓϩ άϥϚʔʹͳΔͨΊͷ͓ख ͍Λ͢ΔͷͰ͢ɻ (৽൛ͷग़൛͓ΊͰͱ͏͍͟͝·͢ & ͋Γ͕ͱ͏͍͟͝·͢) ୡਓϓϩάϥϚʔ; ·͕͖͑, ୈ1ষ “
Prepare to welcome new people ৽͍͠ਓʑΛܴ͑Δ ࢧΛ͠Α͏ http://jp.rubyist.net/RubyKaigi2007/Log0610-S5.html
‣ ʮ͜͏Γ͍ͨʯເ͡Όͳ͘ͳͬͨ ‣ ׂΕ૭ɺDRYɺࣗಈԽɺϦϑΝΫλϦϯά…. ‣ ͪΌΜͱΕ͍ͯΔͷͩΖ͏͔? 2पͷੈք
‣ http://nano.hatenadiary.com/entry/2016/10/27/132312 ‣ ୡਓϓϩάϥϚʔΛಡΜͰ͍Δਏ͞ΛܰݮͰ͖Δ ‣ ༏͍͠ޱௐͰ͞ΒͬͱڪΖ͍͠ཧ 2पͷੈք
·ͱΊ
‣ ࢥ͍ฦ͢ͱ͍͍ͱ͖ʹ͍͍ͷΛಡΜͩͷͩͳ͋ɻ ‣ ຊʹग़ձ͏ίϯςΩετେࣄɻ ‣ PragProg: 1पເɺ2पݱ࣮ ‣ XPe2nd: ϓϥΫςΟεࢀߟʹͳΔ
㱺 ιʔγϟϧνΣϯδͳΔ΄Ͳ…! ‣ େࣄ͚ͩͲɺ༧ଌͰ͖ͳ͍ɻ ·ͱΊ
moro (20161109-moronatural) ‣ lୡਓϓϩάϥϚʔzͷόϥϯε ‣ ΤϞ͍͚ͩͰͳ͘ςΫ͍ ‣ ϓϨΠϯςΩετ, γΣϧ, DSL,
ίʔυδΣωϨʔλ ‣ DbC, ද໌, ྫ֎ઃܭ, σϝςϧͷ๏ଇ… ‣ ςΫ͍͚ͩͰͳ͘ΤϞ͍ ‣ େಊ, ੴͷεʔϓ, ୡ͠Α͏ ‣ ތΓͱѪண
moro (20161109-moronatural) ୡਓϓϩάϥϚʔɺ؟લͷΛߟ͑Δ ͚ͩͰͳ͘ɺৗʹͦͷΛΑΓେ͖ͳഎ ܠͷதͰଊ͑ɺৗʹΑΓେ͖ͳΛݟͭ ͚ग़ͦ͏ͱ͢ΔͷͰ͢ɻཁ͢Δʹɺେ͖ͳ എܠΛଊ͑Δ͜ͱͳ͠ʹɺୡਓͨΓಘΔํ ๏͋Γ·ͤΜ͠ɺతͳղܾɺݟࣝͷ͋ ΔܾఆΛߦ͏ํ๏͋Γಘͳ͍ͷͰ͢ɻ “
“ I won't give up, no I won't give in
'Til I reach the end and then I'll start again No I won't leave, I wanna try everything I wanna try even though I could fail ؆୯Ͱͳ͍ Try Everything ; Shakira from Zootopia
Ͱ͋Μ·Γਂࠁʹड͚ࢭΊ͗͢ͳ͍Ͱɻ ָ͠Έͳ͕Β͍ͬͯ͜͏ Above all, make it fun ΞδϟΠϧαϜϥΠ; ༁ऀ͋ͱ͕͖ “