719
679

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

新人プログラマが知るべきプログラミングの原則6選!

Last updated at Posted at 2016-06-28

#この記事について
この記事は筆者がプリンシプルオブプログラミングを読んで、備忘録的にまとめたものです。
これから紹介する6つの原則を用いて、「よいプログラマ」に近づきましょう!

#新人プログラマが知るべきプログラミングの原則7選
##KISS

Keep It Simple,Stupid
シンプルにしておけ、愚か者よ

コードを書くとき、「単純性」や「簡潔性」を最重要項目ということ。

コードは、自然に任せて修正していくと、無秩序になり、複雑になる。その結果、読みにくく、修正しにくくなっていく。コードをシンプルに保つことで、修正に容易にすることができる。

具体的には、プログラミングをする際に、「動作させるために、もっともシンプルなものは何か」と常に問いかけることが必要である。

##DRY

Don't Repeat Yourself.
繰り返すな。

同じコードを重複して書くなということ。

なぜかというと、コードの改善が難しくなるからである。まず、同じコードが複数あると、量的に「より多く」、質的に「より複雑」になるため、コードを読む作業が難しくなる。また、修正するときにも、一つ直すときにも、重複して書いたコードに対しても漏れなく直さなければならないので大変である。

具体的には、処理のまとまりには「関数化」「モジュール化」をし、データは名前をつけて定数を定義することで重要である。
##YAGNI

You Aren't Going to Need it.
それはきっと必要にならない

コードが必要最低限にしろということ。

あらかじめ、いろいろな事態に備えてコードを盛り込んでおいても、結局は利用されないことが多い。そして、それによってコードに「余計な」複雑性を盛り込んでしまうことになり、KISSに思想にも反することになる。つまり、予想が外れた場合、時間が無駄になるどころか、邪魔にもなってしまうのである。そして、単純なコードの方が、汎用性が高いことさえある。

具体的には、汎用性よりも、単純性を考えることが重要。コードは「今」必要なものだけにすること。
##PIE

Program Intently and Expressively
意図を表現してプログラミングせよ

コードは意図を明確に表現するように書くということ。

コードが「人」が読むためのものであり、コードだけがソフトウェアの動作を「正確に」「完全に」知るための手がかりである。よって、ソフトウェアの動作を把握するには、わかりやすいコードを書いて、コードで意図を伝えるしかない。

具体的には、コードを書くときには、「書きやすさ」より「読みやすさ」を重視すること。コードは「書かれること」よりも「読まれること」の方がずっと多いものであるからである。

##SLAP

Single Level of Abstraction Principle
抽象化レベルの統一

コードを書くとき、高いレベルの抽象化概念と低いレベルの抽象化概念を分離するようにすること。

コードがレベルに揃った関数に分割されることで、「要約性」「閲覧性」を同時に満たすことができる。同じところには、同じ抽象度の処理といったように、コードが統一されることで、コードはよどみなく流れ、理解しやすくなる。

具体的には、関数を構造化することが重要である。一つの関数で、ある部分ではデータベース接続という低水準の処理を行い、他の部分ではビジネスロジックの実行という高水準な処理行うという書き方はしないことが重要である。

##参考文献
上田勲 『プリンシプルオブプログラミング』 秀和システム

719
679
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
719
679

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?