【3分でわかる!】プログラミング〜YAGNI原則について〜
読み終えるまで約3分⏰
どうも、ちゃんなるです。
今回はこの本の内容を元に投稿します!
『プリンシプル・オブ・プログラミング』
この本から得られるもの
いいコードを書くための『プリンシプル』。
(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』で『近道』である)
本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。
『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。
そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。
*抽象的な内容のため、解釈は皆さんにお任せします!
①YAGNI原則とは
YAGNI:You Aren't Going to Need It.(それはきっと必要にならない)
どういうことか?
『コードは、必要になった時に必要になっただけ書くべき』ということ。
なぜそうするのか?
「後々必要になるかもしれないし〜」で書いたコードは結局使われず、余計なコードとなる可能性があるから。
余計なコードは拡張性を著しく低下させる。
また、なぜこのコードがあるのか、時間が経つとわからなくなるから。
②YAGNI原則をどう実践するか
まずは汎用性よりも単純性を意識しましょう。
必要になった時にコードを抽象化して汎用度を高めるようにしましょう。
例えば…
- ある1つのスコープ内で定義した変数は、他のスコープで必要になった際に初めてグローバル変数に変更すること
- ある処理のまとまりが一箇所でしか使われていない場合は、一旦関数化をせず、他箇所で同じ処理のまとまりが必要になった際に関数化をすること
まとめ
「後々必要になるかもだし〜」
「クラスに切り出しておいた方が後で便利だし〜」
『後』ではなく『今』にフォーカスしてコーディングを行うのがベストです!
*より深く知りたい方は、ぜひ本書を手にとってみてください!
書籍情報
プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ] 価格:2,420円 |
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ] 価格:2,178円 |
【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
【著者名】上田勲
【出版社】秀和システム
【出版日】2016年3月
【ページ数】303p
著者紹介
横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
画像は上田勲に関する記事一覧 - ログミーより
【3分でわかる!】プログラミング〜DRY原則について〜
読み終えるまで約3分⏰
どうも、ちゃんなるです。
今回はこの本の内容を元に投稿します!
『プリンシプル・オブ・プログラミング』
この本から得られるもの
いいコードを書くための『プリンシプル』。
(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』で『近道』である)
本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。
『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。
そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。
*内容は抽象的であり、どう解釈するかは皆さんにお任せします。
①DRY原則とは
DRY:Don’t Repeat Yourself.(同じことをするな)
どういうことか?
『同じロジックを複数箇所に書いてはいけない』
同じ関数・条件文・定数リテラルを複数箇所で書いてる場合は排除しましょう。
どうして排除するべきなの?
重複箇所があると、『コードの改善が困難になるから』です。
その理由は主に下記の3つ
- コード量が増え、また複雑になり、読みにくくなる
- 一つの改善作業のために、複数箇所のコードを修正する必要が出てくる
- 重複してる部分はたいていレガシーコード*である
*レガシーコード:テストのないコードのこと
②DRY原則をどうやって実行するか
『コードを抽象化する』
抽象化:同一処理を関数やモジュールに閉じ込めること、データであれば定数化してそれを使い回すこと
抽象化のメリット
- コード量減少→読む時間短縮
- ロジックやデータに名前が付き、読みやすくなる
- コードの修正が容易になり、品質が担保しやすくなる
- 再利用しやすくなり、新たな機能実装の際に最小限のコード量で要件を記述できる
抽象化のデメリット
- 時間がかかる
- デグレード(前より悪くなること)の可能性がある
③その他
WET:Write Every Time(同じことがたくさん書かれている)
皮肉にもDRYの対義語として定義されたらしいです笑
(DRY:乾燥してる⇆WET:湿っている)
まとめ
DRY原則は、Don't Repeat Yourself(同じことを繰り返すな)ということです。
コーディングの際に、重複する処理があればそれを抽象化し、関数やクラスに切り出すようにしましょう!
*より深く知りたい方は、ぜひ本書を手にとってみてください!
書籍情報
プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ] 価格:2,420円 |
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ] 価格:2,178円 |
【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
【著者名】上田勲
【出版社】秀和システム
【出版日】2016年3月
【ページ数】303p
著者紹介
横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
画像は上田勲に関する記事一覧 - ログミーより
【3分でわかる!】プログラミング〜KISS原則について〜
読み終えるまで約3分⏰
どうも、ちゃんなるです。
今回はこの本の内容を元に投稿します!
『プリンシプル・オブ・プログラミング』
この本から得られるもの
いいコードを書くための『プリンシプル』。
(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』で『近道』である)
本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。
『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。
そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。
①KISS原則とは
KISSとは、
Keep It Simple, Stupid.(シンプルにしておけ、愚か者よ。)
または
Keep It Short and Simple.(短くシンプルに保ちなさい。)
です。
どういうことか?
コードを書く際に意識する最良の価値を、『単純性』『簡潔性』にしましょう。
②KISS原則をどうやって実践するか
「コードに余計なことをしない」や「同じ動作をするために、もっとシンプルに書くことはできないか?」を考えながらコーディングしましょう。
新たに覚えた技術でも、闇雲にそれを使ってはいけません。
ユーザーに価値を提供するのがプログラムコードを書く目的であり、その達成のためにシンプルな技術を採用すべきです。
「将来必要そう」と思えるコードは書く必要がなく、今必要なものだけを書くべきです。
要件を決めるのはユーザーで、彼らが定義した要件だけを完璧に満たすような機能を実装すれば良いのです。
③その他
KISS原則に関連するものとして、下記のものがあります。
- Less is more:より少ないことは、より豊かなこと
これはプログラミングに限った話ではありませんね。
「物や情報に溢れてしまっても対処することが難しいので、必要なものを選別しよう」といったニュアンスです。
日頃の生活でも意識できるといいでしょう。 - オッカムの剃刀:「ある事柄を説明するために、必要以上に多くの前提を仮定するべきでない」という考え方です。
言い換えると、「何かについて説明する方法が複数あるなら、最もシンプルなものが正しい」ということです。
まとめ
KISS原則は、抽象的で、具体的なコーディング手法を言っているわけではありません。
シンプルに書くことが最良のコードである、という概念です。
Simple is the best!!!
を念頭においてプログラムを書きましょう。
*より深く知りたい方は、ぜひ本書を手にとってみてください!
書籍情報
プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ] 価格:2,420円 |
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ] 価格:2,178円 |
【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
【著者名】上田勲
【出版社】秀和システム
【出版日】2016年3月
【ページ数】303p
著者紹介
横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
画像は上田勲に関する記事一覧 - ログミーより