ϕϯνϟʔͰυϝΠϯۦಈઃܭΛΔͱͲ͏ͳΔ͔ʁʙ1ZUIPOͰܕʹશʹͯ͠Έͨʙ2019.05.11גࣜձࣾνʔϜϘοΫε ҆ ߶
View Slide
νʔϜϘοΫεͬͯʁ
৽αʔϏεͱػցֶशʹΑΔੳγεςϜ։ൃத
ձࣾͷ࣌എܠ
ˠ࣌ʢۀʣ
ࣾһਓ
ҰਓͰ࡞ͬͨ
͘͞Β714্ʹ1ZUIPO
ࣄۀ͕͏·͘ߦ͖ͩͨ͠
ˠ࣌ʢʣ
ೖࣾ
1ZUIPO͔ͣͬͱଓ͘αʔϏεʹ͍ͨ͠ͳ͊
Ϣʔβཧ͕྆ํʹ͋Δ͜ͱʹؾͮ͘
ϢʔβཧΛ͠Α͏
4QSJOH#PPU,PUMJOͰ࡞ͬͨ
͜ΕʹՃ͑ͯ৽αʔϏεΛ࡞Ζ͏ʂ
1ZUIPOͬͨ͜ͱແ͍͠ڷʹೖΕڷʹै͑·ͣͬͯΈΑ͏
͕͢͞ʹ.7$͚͖͍ͩͭ·ͣϨΠϠʔυΞʔΩςΫνϟʢͱ͍͏໊ͷ͚͚ͨͩʣ
6*ʢ1SFTFOUBUJPOʣ"QQMJDBUJPO%PNBJO*OGSBTUSVDUVSF˔ ϞσϦϯά͋·Γ͍ͯ͠ͳ͍˔ υϝΠϯಠཱ͍ͯ͠ͳ͍ʢଞͷʹґଘ͍ͯ͠Δʣ
ϨΠϠʔΛ͚Έͯ(PPEʂ %#"1*ΞΫηεͷॲཧΛͲ͜ʹॻ͚͍͍͔͕Θ͔ΔB ଞͷਓ͕ॻ͍ͨίʔυͰͲ͜ʹॻ͍ͯ͋Δ͔Θ͔Δ 03ϚούʔͷϞσϧ͔ΒϏδωεϩδοΫഉআͰ͖ͨ#BEʂ ϏδωεϩδοΫͷډॴ͕ᐆດɻॻ͖ํਓػೳʹΑͬͯมΘΔɻB υϝΠϯϞσϧශ݂ঢ়ଶ ͦ͏ͳΔͱ݁Ռతʹ$POUSPMMFS͕ଠΓɺ4FSWJDFͱ͍͏ಾͷDMBTT͕Ͱ͖࢝ΊΔ
த్͋·ΓޮՌ͕ͳ͍ʢ࣮ײʣ
υϝΠϯϞσϦϯάΛ͍ͨ͠ΔͳΒܕ͕΄͍͠ͳ͊ʜ
("&ͷ1ZUIPOΛʹ্͛ͨΑʂ$50߱ྟ
͜Ε5ZQF)JOU͕͑Δ͡Όͳ͍͔ʜ
1ZUIPOͰܕʹ࣮͢ݧͯ͠ΈΑ͏Αʂ͓લͦΕͩͬͨΒ+BWBͰ͑͑Μʂhttps://www.irasutoya.com/2017/08/blog-post_54.html
؟ͷલʹ͋Δͷ1ZUIPOͰ͋Δ1ZUIPOͰܕʹͯ͠ΈΑ͏ʂʢ࣮ڵຯຊҐʣ
جຊܗ
引数の型指定戻り値の型指定コメントで型指定
جຊతʹ5ZQF)JOU͜Ε͚ͩͰ0,ʢ(FOFSJDTͱ͔ඞཁແ͠ʣ
*%&
1ZDIBSNʢ*OUFMMJK*%&"ʣ͜ͷิ͕ͳ͍ͱແཧ
NZQZܕΛνΣοΫͯ͘͠Ε·͢1ZDIBSNʹઃఆ͢ΔͱΑΓྑ͍
little_hand_s さんのqiitaより引用https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752υϝΠϯΛಠཱͤ͞Δʲج४ʳυϝΠϯʹଞͷͷJNQPSUจ͕ແ͍
little_hand_s さんのqiitaより引用https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752"QQMJDBUJPO4FSWJDF͔Β*OGSBTUSVDUVSFʢ%#ΞΫηεʣΛݺͼ͍ͨͰҹ͕ٯʹͳΔ
ͦ͜Ͱ%*
*OUFSGBDF͕ແ͍ͷͰɺܧঝͰදݱ
ɾܕΛCJOE͢Δɾ%*Ͱ"QQMJDBUJPO4FSWJDFΛJOKFDU͢Δɾ"QQMJDBUJPO4FSWJDFͰ*OUFSGBDFͷܕͰݺͼग़͢
little_hand_s さんのqiitaより引用https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752͍͑ʔ͍ґଘ͕ؔٯ͍ͨʂ
ઃܭͯ͠ΈΑ͏
खॱᶃॳظͷυϝΠϯϞσϧΛ࡞Δ ໊લͱৼΔ͍Λநग़ ίʔυʹམͱͯ͠ΈΔ ϦϑΝΫλϦϯά͍ͯ͘͠ᶄυϝΠϯҎ֎Λ࡞͍ͬͯ͘
ᶃॳظͷυϝΠϯϞσϧΛ࡞Δ
Ϣʔεέʔε༷Λ༻ҙͯ͠
ᝦͰग़͢˞ΠϝʔδͰ͢
ॳظͷυϝΠϯϞσϧΛ࣮ͯ͠ΈΔ7BMVF0CKFDUΛ࡞ͬͯΈΔ͔͜͜Β࣮։࢝˞ύοέʔδҠಈΛߟྀͯ͠DMBTT͝ͱʹϑΝΠϧΛ͚ͯΈͨɻ͕ɺ͜Εࣦഊɻ
"QQMJDBUJPO*OGSBTUSVDUVSFσʔλϞσϧઃܭΛ࡞͍ͬͯ͘
6*ʢ1SFTFOUBUJPOʣ"QQMJDBUJPO%PNBJO*OGSBTUSVDUVSF
ϙΠϯτ
ᶃݱ࣮ͷݴ༿Λͦͷ··ίʔυʹམͱ͢ʢϢϏΩλεݴޠʣ
༷ॻ͚ͩͰͳ͘ɺීஈ͍ͬͯΔݴ༿ʹײΛߴΊΔ
ᶄσʔλϞσϧυϝΠϯϞσϧͷޙʹઃܭʢυϝΠϯϞσϧ͕σʔλϞσϧʹӨڹ͞ΕΔͷͰʣ
ᶅϞσϧΛҭͯΔ
いったり来たり俯瞰 詳細
Ϟσϧʹ͑ͳ͍ɻ
ͬͯΈͯͲ͏͔ͩͬͨʁ
ͳ͔ͥͱ͍͏ͱɺߏΛઌʹ࡞ΔͷͰϩδοΫʹͨͲΓண͘ͷ͕࠷ޙͷํͰͲ͔͠͞Λײͨ͡ͷͰͳ͔Ζ͏͔ᶃ࠷ॳগ͠ख͕͔͔ؒΔײ͕͢͡Δࣾൺ
ᶄͲ͜ʹԿ͕͋Δ͔͕Θ͔Γ͍͢ଞਓɺաڈͷ͕ࣗॻ͍ͨίʔυɺͲͪΒͰߏͱ໊લ͕໌֬ͳͷͰɺͨͲΓ͍͢
ᶅมߋ͕҆৺࠷ߴʹؾ͕͍͍࣋ͪɻ݁ߏେ͖ͳमਖ਼҆৺ײ͕͋Δ
ᶆ5ZQF)JOUͰͦͦ͜͜େৎܕ͕͋Δݴޠ͑Αɺͱ͍͏͕ͩɺʢͩͬͯͷલʹ1ZUIPO͕͋ͬͨΜͩͷʣ1ZUIPOͰ*%&͕ิͯ͘͠ΕΔͷͰॆͰ͖Δ1)1Ͱ͍͚ΔͷͰͳ͍ͩΖ͏͔
ᶇ։ൃʹ౷Ұੑ͕ੜ·ΕΔυϝΠϯϞσϧΛআ͘ͱ͋ΔఔɺܗͰ͖ΔϞσϧͷձΛଓ͚Είϛϡχέʔγϣϯίετ͕গͳ͍
ᶈDMBTT͝ͱͳͲࡉ͔͍ςετ͕ඞཁͳͦ͞͏ܕ͕୲อͯ͘͠ΕΔઃܭ͕͔ͬ͠Γ͍ͯ͠Εɺෳࡶͳܭࢉ"QQMJDBUJPO4FSWJDF$POUSPMMFS͝ͱͰ୲อ͍͢͠
ࠓޙͷ՝
ᶃͦ͜·ͰϞσϧ͕ҭͬͯͳ͍ͬͱϦϑΝΫλϦϯά͠ͳ͚Ε
ᶄΓ͗ͨ͢ͱ͜ΖʁDMBTT͝ͱʹϑΝΠϧΛ͚ͨͷࣦഊɻ͍͔ͭ͢ʢ*OUFMMJK*%&"Ͱมߋ͕͘ͳͬͨʜʣ͋Εɺଞʹແ͍ͳʁʁʁ
ᶅ1ZUIPOΤϯδχΞ͕ೖͬͨΒࠔ͢ΔͷͰͳ͔Ζ͏͔ͤΘ͔Δͱ৴͍ͯ͡Δ
ࢥͬͨ͜ͱ
ˠˠˠˠ㱣
ˠˠˠˠ㱣探そう 探しつつ伸ばそうもっと伸ばそうもっともっと伸ばそう
複雑度(変更コスト)が指数関数的に上がっていくˠˠˠˠ㱣サクッと作って検証人が増えてきたなんか開発が遅い感じがするあぁ辛い作り直したい厳しい辛すぎるもう無理だ…
ˠˠˠˠ㱣ここに不可逆な境界線が????
ˠˠˠˠ㱣ここで大幅に設計をしなおすことが大事なのではないか
͜Ε͕ͦͷޙͷมߋίετΛେ෯ʹԼ͛Δ
ここが最も価値がある
৽͍͠ͷΛՃͭͭ͠ෳࡶͳͷΛཧ͠ଓ͚Δ
ෳࡶͳͷΛෳࡶͳ··ѻ͏ෳࡶͳͷ͕୯७ʹͳΔຐ๏ͳ͍
ͦͷͱ͖ʹυϝΠϯۦಈઃܭΛબ͢Δͱྑ͍ͱࢥ͏
ؒΛେେืूதͰ͢ʂ˔ ෭ۀɾϑϦʔϥϯεΤϯδχΞืूʂ˓ ࣌ؒॴࣄ༰ࣗ༝˓ ݁Ռతʹࣄ͠ͳ͍͍ͯ͘ͷͰɺҰ୴4MBDLʹೖΖ͏ʂ˓ 1ZUIPOɺ7VFKTɺ,PUMJOɺJ04ͳͲ˔ ΤϯδχΞࣾһืूʂ˓ ਓͷʹڵຯ͕͋Δํ˓ ಇ͘ॴɺ࣌ؒࣗ༝˓ ձٞใΦʔϓϯ˓ ෭ۀࣗ༝͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂIUUQTXXXXBOUFEMZDPNQSPKFDUT