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.9k
達人プログラマーとわたし/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
10
18k
Simplicity on Rails -- RDB, REST and Ruby
moro
15
18k
ちょうどよい Rails E2E テスト/enough-good-rails-e2e-test
moro
5
2.5k
フレームワークを作らない方法/How NOT to build frameworks
moro
4
1.2k
全体がいい感じになるために、私たち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
570
Joyful user foundation restructuring with Ruby
moro
9
19k
Other Decks in Programming
See All in Programming
「App Intent」よくわからんけどすごい!
rinngo0302
1
120
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
2
670
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.2k
可変変数との向き合い方 $$変数名が踊り出す$$ / php conference Variable variables
gunji
0
220
NEWT Backend Evolution
xpromx
1
140
Model Pollution
hschwentner
1
160
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
550
AIのメモリー
watany
9
780
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
660
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
180
効率的な開発手段として VRTを活用する
ishkawa
1
180
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
230
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Being A Developer After 40
akosma
90
590k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Code Reviewing Like a Champion
maltzj
524
40k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Bash Introduction
62gerente
613
210k
Done Done
chrislema
184
16k
Designing for humans not robots
tammielis
253
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
It's Worth the Effort
3n
185
28k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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 ΞδϟΠϧαϜϥΠ; ༁ऀ͋ͱ͕͖ “