Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software
MOROHASHI Kyosuke
January 21, 2018
Programming
3
2.6k
チームによるいきいきとしたソフトウェア開発/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
moro
1
870
moro
4
630
moro
2
1.4k
moro
0
1.5k
moro
5
360
moro
7
17k
moro
0
9k
moro
0
9k
moro
0
8.9k
Other Decks in Programming
See All in Programming
line_developers_tw2
0
590
yaamaa
0
410
kenmaz
1
100
rshindo
2
290
hanhan1978
0
290
anchorcable
1
120
nbkouhou
0
770
zsmb
1
120
77web
4
1.4k
sullis
0
110
komagata
1
1.8k
hanakla
2
3k
Featured
See All Featured
bkeepers
408
57k
searls
204
35k
philnash
8
490
maggiecrowley
8
400
addyosmani
1348
190k
frogandcode
127
20k
sugarenia
233
830k
reverentgeek
168
7.1k
mongodb
23
3.8k
lemiorhan
626
42k
jakevdp
774
200k
reverentgeek
27
1.9k
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