Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コードレビューが好きになるプログラミングの原則

 コードレビューが好きになるプログラミングの原則

Web Developers Meetup Gotanda ~ MC Open Lab. #6 ~で利用した資料です。
https://memberscareer.connpass.com/event/106254/

KakiageSeiro

November 22, 2018
Tweet

More Decks by KakiageSeiro

Other Decks in Programming

Transcript

  1. DRYݪଇʢυϥΠݪଇʣ (Don’t Repeat Yourself.) • ҙຯ • ܁Γฦ͞ͳ͍ • ίʔυΛผͷॲཧʹίϐϖ͠ͳ͍

    • ͳͥʁ • มߋ͢Δ࣌ʹɺίϐϖ෦෼Λ͢΂ͯมߋ͠ͳ͚Ε͹ͳΒ ͳ͍
  2. SRPݪଇʢ୯Ұ੹೚ݪଇʣ (Single Responsibility Principle.) • ҙຯ • ҰͭͷϞδϡʔϧͷมߋ࣌ʹɺཧ༝͕ೋͭҎ্͋ͬͯ͸ͳ Βͳ͍ •

    Ϟδϡʔϧͷ໾ׂ͸̍ͭʹ͢Δ • ͳͥʁ • A͞ΜͱB͞Μ͕ಉ͡ϞδϡʔϧΛผͷཧ༝Ͱमਖ਼ • όάൃੜʂˠόάͷݪҼ͸Ͳͬͪͷमਖ਼ʁ
  3. SLAPݪଇʢந৅ԽϨϕϧͷ౷Ұʣ(Single Level of Abstraction Principle.) • ҙຯ • ཻ౓Λ߹ΘͤΔ •

    ຊͷ”໨࣍”ɺ”ষ”ɺ”ஈམ” ͷΠϝʔδ • ͳͥʁ • Ͳ͜ʹԿ͕͋Δ͔ɺ • Θ͔Γ΍͍͢
  4. SLAPݪଇʢந৅ԽϨϕϧͷ౷Ұݪଇʣ (Single Level of Abstraction Principle.) • ҙຯ • ཻ౓Λ߹ΘͤΔ

    • ຊͷ”໨࣍”ɺ”ষ”ɺ”ஈམ”ͷΠϝʔδ • ͳͥʁ • Ͳ͜ʹԿ͕͋Δ͔ɺΘ͔Γ΍͍͢
  5. KISSݪଇʢ؆ܿʹ୯७ʹʣ (Keep It Short and Simple.) • ҙຯ • γϯϓϧʹ͓ͯ͘͠

    • ͳͥʁ • ຊ౰ʹ΍Γ͍ͨ͜ͱ͕Θ͔Γʹ͍͘ • ίʔυಡΈʹ͍͘
  6. YAGNIݪଇʢඞཁͰ͸ͳ͍ʣ (You Aren’t Going To Need It.) • ҙຯ •

    ඞཁͳ΋ͷ͚ͩॻ͘ • ʮ͋ͱͰ࢖͏͔΋ʯΛॻ͔ͳ͍ • ͳͥʁ • ࢖Θͳ͍͜ͱ͕΄ͱΜͲ • ʮ͋ͬͨ΄͏͕ศརʯʹΰʔϧ͸ͳ͍ʢແݶʹ࡞ΕΔʣ
  7. ςετ༰қੑ • ҙຯ • ςετΛ۱ʑ·ͰͰ͖Δ͜ͱ • ςετ࡞੒ͷίετ͕௿͍͜ͱ • ͳͥʁ •

    ςετ͕ͳ͍ͱมߋ͕͏·͍͔ͬͨ͘Θ͔Βͳ͍ • ςετ༰қੑ͕ͳ͍ͱɺςετΛαϘΓ͕ͪ
  8. ͦͷଞͷݪଇʁ • ؔ৺ͷ෼཭ʢػೳ΍໨తͰ෼཭ʣ • ΠϯλʔϑΣʔεͱ࣮૷ͷ෼཭ʢར༻ऀ͸ΠϯλʔϑΣʔε͚ͩΘ͔Ε͹ػೳΛར༻Ͱ͖Δʣ • طଘίʔυͱಉ͡ॻ͖ํ • ڻ͖࠷খͷݪଇʢಈ࡞Λ༧ଌ͠΍͘͢ʣ •

    ࠷ॳ͸ύϑΥʔϚϯεΛҙࣝ͠ͳ͍ʢύϑΥʔϚϯεͷͨΊͷίʔυ͸௚ײతͰͳ͍͜ͱ͕ଟ ͍ʣ • υοΫϑʔσΟϯάʢϢʔβʔͷؾ࣋ͪʹͳΔʣ • ϥόʔμοΩϯάʢ໰୊Λ୭͔ʹઆ໌ͯ͠ΈΑ͏ʣ • ׂΕͨ૭ͷ๏ଇʢ୭͔͕ѱ͍͜ͱΛ͢ΔͱɺपΓ͸΍ͬͯ΋͍͍ͱߟ͑Δʣ • δϣγϡΞπϦʔͷ๏ଇʢ໊લΛ஌Βͳ͍΋ͷ͸ɺݟ͑ͳ͍ʣ
  9. ·ͱΊ • Why͕͋Ε͹ • Α͍ϓϩάϥϜ͕ॻ͚ΔΑ͏ʹʂ • ࢦఠΛཪʹ͋ΔҙਤΛਪ࡯ • ҙਤͷݩʹͳͬͨʓʓݪଇ͕͋Δ͔΋ʁ •

    ࢦఠͷຊ࣭ΛཧղͰ͖Δʂ • ͞Βʹɾɾɾຊ౰ʹΑ͍ϓϩάϥϜʹͳ͍ͬͯΔ͔Ͳ͏͔Λٞ࿦Ͱ͖Δ͔΋ʁ ָ͍͠ϓϩάϥϛϯάϥΠϑΛʂʂ
  10. Q