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
チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software
Search
MOROHASHI Kyosuke
January 21, 2018
Programming
3
3.1k
チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software
https://pepabo.connpass.com/event/74938/
#師弟登壇2018 での発表資料です。OJTというか、新卒を受け入れたチームにおいて大事にしている中身を紹介しました。
MOROHASHI Kyosuke
January 21, 2018
Tweet
Share
More Decks by MOROHASHI Kyosuke
See All by MOROHASHI Kyosuke
Simplicity on Rails -- RDB, REST and Ruby
moro
12
14k
ちょうどよい Rails E2E テスト/enough-good-rails-e2e-test
moro
5
2k
フレームワークを作らない方法/How NOT to build frameworks
moro
4
870
全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること/let-our-whole-system-grow
moro
2
1.7k
フォームオブジェクトとの向き合い方/Grow Form Objects up
moro
1
1.8k
Web-E2E-Testing-from-Ruby
moro
5
450
Joyful user foundation restructuring with Ruby
moro
9
19k
cookpad-17day-tech-internship-2017-git
moro
0
9.3k
cookpad-17day-tech-internship-2017-tdd
moro
0
9.4k
Other Decks in Programming
See All in Programming
品質が高いコードって何?Rev2.1
ickx
1
490
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
25
14k
Honoとhtmx
yusukebe
6
1.2k
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
Migrating to Signals: A Practical Workshop
manfredsteyer
PRO
0
280
設計の知識と技能で駆動するソフトウェア開発
masuda220
PRO
18
10k
ISUCONってなんだか難しそう……!!でも、初めてのISUCONにPHPで挑戦してきました!
kotomin_m
1
300
上手な探索的テストとその上達方法について
matsu802
4
650
オブジェクトしこう
okuramasafumi
2
130
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
Some Quick Ideas To Improve Your Tests ( #jassttokyo )
teyamagu
PRO
2
2.3k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Code Reviewing Like a Champion
maltzj
512
39k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
Git: the NoSQL Database
bkeepers
PRO
421
63k
Documentation Writing (for coders)
carmenintech
59
3.8k
Raft: Consensus for Rubyists
vanstee
130
6.2k
Building Your Own Lightsaber
phodgson
97
5.6k
Keith and Marios Guide to Fast Websites
keithpitt
407
22k
The Language of Interfaces
destraynor
150
23k
Faster Mobile Websites
deanohume
296
30k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Transcript
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ιϑτΣΞ։ൃ ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ 2018-01-21 ॾڮګհ @moro
‣ (ࣸਅ) ղফͰ͖ͨෆ҆
Kyosuke MOROHASHI moro moro
Kyosuke MOROHASHI https://speakerdeck.com/moro/
None
None
http://techlife.cookpad.com/entry/2017/04/06/172601
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτΣΞ։ൃ
‣ ར༻ऀʹՁΛಧ͚ΔͨΊʹɺԿΒ͔ͷιϑτΣΞΛഔ հͱͯ͠։ൃ͢Δ׆ಈશൠΛ ‣ 1ΤϯδχΞͱ͍͏͔֯ΒோΊͨදݱͰ͢ɻ ‣ ͳͷͰɺαʔϏε։ൃɺࣄۀ։ൃɺetc… Ͱ͍͍͔ ‣ ͬ͘͠ΓདྷΔ֯ʹಡΈସ͓͑ͯฉ͖͍ͩ͘͞
ιϑτΣΞ։ൃ
‣ ར༻ऀʹՁΛಧ͚ΔഔհͨΔʹɺϓϩάϥϜΛॻͩ͘ ͚ͰΓͳ͍ɻҎԼͷΑ͏ͳશମ͕ඞཁ: ‣ αΠτػೳαʔϏεࢪࡦΛྑ͘͢Δ؍ͱ͔ ‣ ར༻ऀͷࠔΓ͝ͱʹدΓఴ͏؍ͱ͔ ‣ ։ൃͦΕࣗମΛޮతʹ͢Δ؍ͱ͔ ‣
ࣄۀ/ࣄۀମͱͯ͠ܧଓͰ͖ΔΑ͏ʹ͢Δ؍ͱ͔ ιϑτΣΞ։ൃʺϓϩάϥϜΛॻ͘͜ͱ
‣ ͦ͏͍͏ΈΜͳ͕େࣄͳΘ͚Ͱ͢ɻ ‣ ͦͷ͏͑Ͱɺ1ΤϯδχΞ/ϓϩάϥϚʔͱͯ͠ͷ؍͔Β Ͳ͏͋Γ͍ͨͱࢥ͏͔ɺͱ͍͏Λ͍͍ͭͯ͠·͢ɺ ͱ͍͏Λ͠·͢ɻ ʮશମʯͱͯ͠ͷιϑτΣΞ։ൃ
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτΣΞ։ൃ
‣ ֤ϝϯόʔͷతಈػ͚ͮΛҡ࣋ɾ࠶ੜ͍ͨ͠ɻ ‣ ͦΕΛଅ͢νʔϜͷ͋ΓΑ͏Λࢦ͢ɻ ͍͖͍͖ͱͨ͠
“ And there's business value in fun - after all
motivation is a major factor in programmer productivity. ͦΕ͔Βɺʮָ͠͞ʯʹϏδωεՁ͕͋Γ·݁͢ہɺϞνϕʔγϣϯ ͕ͦ͜ϓϩάϥϚͷੜ࢈ੑΛࠨӈ͢ΔͷͰ͢ɻ https://martinfowler.com/bliki/DynamicTyping.html ( http://bliki-ja.github.io/DynamicTyping/ )
“ ΘΕΘΕػցͰͳ͍ͷͰɺΓ͍ͨͱࢥ͏ͱ͖ ʹɺԿ͔ΛୡͰ͖ΔΜͰ͢ɻԿ͔Λୡ͢Δʹɺ ಥ͖ಈ͔͢ͳΔྗ͕ඞཁͰ͢ɻͦΕϞνϕʔγϣ ϯʹΑͬͯݱΕΔΜͰ͢Ͷɻ ུ ϞνϕʔγϣϯΛ স͍͚ͬͯͳ͍ɻ 「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え
http://el.jibun.atmarkit.co.jp/rails/2012/10/ruby-matz-7080.html
http://modernagile.org/
‣ ͍͜͠ͱΛ͏·͘Δʹɺؔऀશһͷ ओମతͳࢀՃ͕ඞཁͰ͋Δɻ ‣ ʮओମੑʯଞਓ͕ೖͨ͠ΓͰ͖ͳ͍ɻ ‣ ͦΕͧΕͷʮྑ͍ࣄ͕͍ͨ͠ؾ࣋ͪʯΛ ৴ͯ͡ɺݟ͚ͭͯɺ૬ޓʹྭ·͋͠͏ɻ ͍͖͍͖ͱͨ͠
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτΣΞ։ൃ
‣ ΓΓ࣮͢ΔएखΤϯδχΞ @iguchi1124 ‣ υϝΠϯΤΩεύʔτ / Done ͷఆٛ / MTGϑΝγϦςʔ
τ / νʔϜ֎ͱͷ૭ޱ ͳͲΛҰखʹ୲͏σΟϨΫλʔ ‣ ( ͳͷ͚ͩͲɺReactॳಋೖͱ͔ͯ͘͠Ε͓ͯΓ͍͢͝ ) ‣ γχΞͳྲྀ͠ͷRubyist (ि2ϦϞʔτ) ‣ ͱɺࢲ @moro ձһࣄۀ෦Ϣʔβʔج൫νʔϜ
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ ιϑτΣΞ։ൃ
ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ
ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ
http://techlife.cookpad.com/entry/2017/04/06/172601
http://techlife.cookpad.com/entry/2017/04/06/172601
‣ πʔϧϑϨʔϜϫʔΫΛͨͩద༻͢Δ͚ͩͰ ͏·͍͔͘ͳ͍ɻ ‣ ʮRailsͭΒ͍ʯ ‣ എܠʹͳ͍ͬͯͦ͏ͳίϯηϓτΛɺࣗͨͪͰ ͪΌΜͱࢼͯ͠ΈΑ͏ɻ ͜ͷ10ͷֶͼ:
αʔϏεͱͯ͠ͷ Form Object ΛΑ͘ߟ͑ͯΈΔ
Value ObjectΛൃݟ͢Δ
ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ
‣ ొதͷσʔλόϦσʔγϣϯΛͨ͘͠ೖྗத σʔλͰͳ͍ɺͱ͔ ‣ ʮϑΥʔϜ͔ΒϝΞυͰϢʔβʔొͯ͠ར༻͢Δʯ Ҏ֎ͷܖػͰϢʔβʔʹͳΔɺͱ͔ ͜Ε·ͰͷϏδωε͔ΒֶͿ
‣ ར༻ऀʹͱ͍͍ͬͯ͢ͷʹͳΔΑ͏ʹɺֶΜ ͩ֓೦ʹج͍ͯม͍͑ͯ͘ɻ ‣ ϦϑΝΫλϦϯάͨ͠Γɺׂͨ͠Γɺ৽نʹ࡞ͬ ͨΓɺ͍ΖΜͳ࡞ઓΛ͍͚ͨΓซ༻ͨ͠Γ͢Δɻ ιϑτΣΞΛҭͯΔ
‣ ҭͯΔํੑॱ൪ɺٕज़తͳཧ༝ͱɺϏδωε ར༻ऀͷؔ৺͝ͱͷόϥϯεʹΑܾͬͯ·Δɻ ‣ ͦͷͨΊʹɺ͍ΖΜͳ৬ೳΛ࣋ͬͨਓ͕ू·Δ νʔϜͰͦ͜ҭͯΒΔɻ νʔϜͰҭͯΔ
‣ ;Γ͔͑Γ ‣ ݟੵΓͱܭըͮ͘Γ ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:
‣ ;Γ͔͑Γ ‣ ͜Ε·ͰʹԿΛ͔ͨ͠ ‣ ݟੵΓͱܭըͮ͘Γ ‣ ͜Ε͔ΒԿΛ͢Δ͔ ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:
‣ ຖि n ϙΠϯτਐΜͰ͍ΔͷΘ͔ͬͨɻ͕ɺ ʮ͍ͭͰ͖Δʯ͔͕ݟ͑ͮΒ͔ͬͨɻ ‣ ࣮ࡍʹॻ͍ͯΈͨΒɺײ͕֮දݱͰ͖ͯͨɻ
‣ ࣾͷϓϥΫςΟεΛ༌ೖͨ͠ɻ ‣ υϝΠϯΤΩεύʔτʹ͞ΘͬͯΒ͏ɻ ‣ େখ༷ʑͷؾ͍ͮͨ͜ͱΛͲΜͲΜ͢ɻ
Χϯόϯʹ5SZΛషΔ
‣ TryΛ͍ͭʹ͢ΔΑ͏ʹɺషͬͨɻ ‣ ͜ΕະମݧͩͬͨΑ͏ͳɻ
‣ ʮ͜Ε·ͰʯʹֶΜͰ ‣ RailsҰൠΞϓϦέʔγϣϯίʔυͷۤ࿑ ‣ ػೳͷΘΕํ ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ ‣ ͪΐͬͱͣͭʮΑ͍ʯઃܭΛ͢Δ
‣ ඞཁͳΒٕज़తෛ࠴ΛआΓೖΕΔ ֶशͱϑΟʔυόοΫ
‣ ʮ͜Ε·ͰʯʹֶΜͰ ‣ ͜Ε·ͰͷνʔϜͷਐΊํɻ ‣ ࡞Ζ͏ͱͨ͠ػೳͰ΄Μͱ͏ʹඞཁͩͬͨͷɻ ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ ‣ Try
‣ ͜Ε·ͰΛ౿·͑ͨݟੵΓͱܭըͮ͘Γɻ ֶशͱϑΟʔυόοΫ
ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ
ʮ͍ͬͯͨʯ͜ͱ
“ ͕ͩɺߴΈʹ౸ୡ͢Δ͜ͱ͕తͰ͋Εɺιϑτ ΣΞ։ൃʮϓϩάϥϚʔͱͦͷଞେʯͰཱ ͢ΔͷͰͳ͍ɻͦΕ͕ɺաڈؒͰࢲֶ͕Μ ͩ͜ͱͩɻ — エクストリーム・プログラミング 「第25章 結論」
‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ ‣ Ϣʔβʔ͞Μʹ͚ͨࢪࡦΛاը͢ΔଞͷνʔϜ ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕ͷνʔϜ ‣ ଞͷج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ ‣ …
ʮϢʔβʔج൫ʯͷؔऀ
‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕ͷνʔϜ ‣ ج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ ‣ Ϣʔβʔج൫νʔϜ ‣ …
ʮϢʔβʔ͞Μʹ͚ͨࢪࡦΛاը͢ΔଞͷνʔϜʯͷؔऀ
‣ ͋ΔࢪࡦͷϦʔνΛ૿ͨ͢Ίɺͦ͜ΛϝΠϯͰקΊ͍ͯΔνʔϜͱڞಉͯ͠ɺ Ϣʔβʔσʔλͷѻ͍ΛΨϥοͱม͑ͨɻ Ϣʔβʔج൫νʔϜͰαʔόଆAPIΛ࣮ͨ͠Γɺ݁Ռͱͯ͠Ϣʔβʔମݧ ͕Ͳ͏͋Δ͖͔Λઃܭͨ͠Γɺ࠷ऴ֬ೝͨ͠Γͨ͠ɻiOSΞϓϦಘҙͳਓ͕ গͳ͔ͬͨͨΊɺࢪࡦνʔϜͷΤϯδχΞ͕ࢪࡦͦΕࣗମͷΈͰͳ͘ɺΞϓϦ ্Ͱͷج൫෦Ұॹʹ࡞ͬͯ͘Εͨɻٕज़ج൫ܥνʔϜ(αʔόଆɺΞϓϦ ଆɺQA)ઃܭɾ࣮ΛҰॹʹਐΊͯ͘Εͨɻ ݁Ռͱ͍͍ͯ͠ײ͡ʹಈ͘ͷΛఏڙͰ͖ͨɻ͕ɺେ͖ͳϦϦʔεͩͬͨͷͰ ଟগͷෆ۩߹ग़ͯ͠·͍ͬͯΔɻαϙʔτܥνʔϜͱڧௐͯ͠ਵ࣌ରԠதɻ
‣ ͱ͍͏ͷΛɺྑ͘ɺϢʔβʔ͞ΜͷํΛ͖ͳ͕ΒΕͨͷͰͨ͠ɻ ઌͷࣄྫ: (͘Θ͘͠WebͰ)
http://techlife.cookpad.com/entry/2017/04/06/172601
“ ʰॊೈͰ͍͍ײ͡ͷϢʔβʔج൫Λࢦ͢ʱͱ͍͏ͷ͕͜ͷ ࠶ߏஙϓϩδΣΫτͷతͰ͢ɻ http://techlife.cookpad.com/entry/2017/04/06/172601
ʮ͔͖ͬͯͨʯ͜ͱ
“ 91ͷՁɺϏδωεͷੈքͰ࣮ફ͖͢ͷͩɻշదʹ ΒͤΔੜ׆ΛૹΔ͚ͩͰͳ͘ɺؔऀશһ͕͓ޓ͍ʹϦεϖ Ϋτͨ͠ਓؒؔʹΑͬͯɺ৽͍͠ಇ͖ํΛ։ൃ͢ΔͷͰ͋ Δɻ׆ൃʹੵۃతʹɺੈքʹߩݙͰ͖ΔιϑτΣΞΛ࡞Γ ग़͢ͷͰ͋Δɻతʹ͍͖͍͖ͱಇ͘ͷͰ͋Δɻ — エクストリーム・プログラミング 「第25章 結論」
ΤϯδχΞಉ࢜Ͱ ίʔυΛॻ͘ νʔϜͰΑ͍ιϑτ ΣΞʹҭͯΔ νʔϜͱνʔϜͷ֎ͷਓͱ ΈΜͳͰαʔϏεΛಧ͚Δ
νʔϜʹΑΔ ͍͖͍͖ͱͨ͠ιϑτΣΞ։ൃ ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ 2018-01-21 ॾڮګհ @moro