Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

プログラミングをする上で覚えておくべき原理原則

More than 3 years have passed since last update.

はじめに

コードを書き始めると参考書や自己流の規則に染まってしまいますが、早い段階から原理原則を学ぶことによって、今後チーム開発をする際の共通認識となり便利かと思います。本記事では7つの原則をメモしていますが、個人的にエッセンスを抽出・解釈すると以下の3つが大切だと感じました。

Minimality(最小性)
Reusability(再利用可能性)
Readability(可読性)

それでは詳しく各原則をみていきましょう。

説明

KISS : Keep it simple, stupid
// シンプルにしておけ!この間抜け

  • コードを書くときに簡潔・単純にすることを意識する
  • それが本当に必要なコードなのかを吟味する
  • 今、必要とされているコードだけを書く
  • 勝手に要件を付け加えない

DRY : Don't Repeat Yourself
// 繰り返しを避けろ

  • それぞれのコードに唯一無二で明確な意味を持たせる
  • オブジェクト指向プログラミングを活用する
  • コードの再利用によって生産性を高める

YAGNI : You Ain’t Gonna Need It
// それはきっといらないよ

  • ソフトウェアの変化予測は不可能である
  • 不必要なコードを書くことは複雑性を生む
  • 今、必要とされているコードだけを書く

PIE : Program Intently and Expressively
// 意図が明確に読み取れるコードを書け

  • ソフトウェアの動作を完全・正確に知ることのできるものはコード以外存在しない
  • 書いていた時間よりも読まれる時間の方が長い
  • 読むときに効率を上げるためにWhy, What, Howをコメントする

SLAP : Single Level of Abstraction Principle
// 抽象度を統一せよ

  • 抽象度によってコードを分離するべきである
  • 外部公開されたユーザー側のコードは高水準である
  • 処理や計算、API利用に関わる非公開のコードは低水準である
  • 序文(コメントによる要約)、目次(関数の一覧)、セクション、章、段落

SRP : Single Responsibility Principle
// 単一責任の原則

  • クラスを変更する理由は複数存在してはいけない
  • 変更の理由が変更の理由たるのは、実際に変更の理由が生じた場合だけである
  • 結合している役割を見つけそれらを分離する作業は、ソフトウェア設計の本質である

OCP : Open-Close Principle
// オープンクローズドの法則

  • モジュールは拡張に対して開いていなければならない
  • モジュールは修正に対して閉じていなければならない

参考: 【脱初級プログラマ】プリンシプル オブ プログラミング まとめ - Qiita

iyuku
シリコンバレーでコンピューターサイエンスを学んでいる大学生です。1996生まれ。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away