ちゃんなるぶろぐ

プログラミングを覚えた新卒ゴリラ

3分でわかる!プログラミング〜YAGNI原則について〜

読み終えるまで約3分

 

どうも、ちゃんなるです。

今回はこの本の内容を元に投稿します!

『プリンシプル・オブ・プログラミング』

 

この本から得られるもの

いいコードを書くための『プリンシプル』

(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』『近道』である)

 

本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。

 

『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。

そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。

*抽象的な内容のため、解釈は皆さんにお任せします!

YAGNI原則とは

YAGNI:You Aren't Going to Need It.(それはきっと必要にならない)

どういうことか?

『コードは、必要になった時に必要になっただけ書くべき』ということ。

 

なぜそうするのか?

「後々必要になるかもしれないし〜」で書いたコードは結局使われず、余計なコードとなる可能性があるから。

余計なコードは拡張性を著しく低下させる。

また、なぜこのコードがあるのか、時間が経つとわからなくなるから。

YAGNI原則をどう実践するか

まずは汎用性よりも単純性を意識しましょう。

必要になった時にコードを抽象化して汎用度を高めるようにしましょう。

 

例えば…

  • ある1つのスコープ内で定義した変数は、他のスコープで必要になった際に初めてグローバル変数に変更すること
  • ある処理のまとまりが一箇所でしか使われていない場合は、一旦関数化をせず、他箇所で同じ処理のまとまりが必要になった際に関数化をすること

まとめ

後々必要になるかもだし〜」

「クラスに切り出しておいた方が後で便利だし〜」

『後』ではなく『今』にフォーカスしてコーディングを行うのがベストです!

 

*より深く知りたい方は、ぜひ本書を手にとってみてください!

書籍情報 

プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ]

価格:2,420円
(2021/8/28 14:24時点)
感想(2件)

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ]

価格:2,178円
(2021/8/28 14:24時点)
感想(1件)

【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

【著者名】上田勲

【出版社】秀和システム

【出版日】2016年3月

【ページ数】303p

 

著者紹介

f:id:Chan-Naru:20210828142858p:plain

著者:上田勲

横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる

上田勲|プロフィール|HMV&BOOKS onlineより)

 画像は上田勲に関する記事一覧 - ログミーより

3分でわかる!プログラミング〜DRY原則について〜

読み終えるまで約3分

 

どうも、ちゃんなるです。

今回はこの本の内容を元に投稿します!

『プリンシプル・オブ・プログラミング』

 

この本から得られるもの

いいコードを書くための『プリンシプル』

(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』『近道』である)

 

本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。

 

『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。

そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。

*内容は抽象的であり、どう解釈するかは皆さんにお任せします。

DRY原則とは

DRY:Don’t Repeat Yourself.(同じことをするな)

 

どういうことか?

『同じロジックを複数箇所に書いてはいけない』

同じ関数・条件文・定数リテラルを複数箇所で書いてる場合は排除しましょう。

 

どうして排除するべきなの?

重複箇所があると、『コードの改善が困難になるから』です。

その理由は主に下記の3つ

  1. コード量が増え、また複雑になり、読みにくくなる
  2. 一つの改善作業のために、複数箇所のコードを修正する必要が出てくる
  3. 重複してる部分はたいていレガシーコード*である

*レガシーコード:テストのないコードのこと

DRY原則をどうやって実行するか

『コードを抽象化する』

抽象化:同一処理を関数やモジュールに閉じ込めること、データであれば定数化してそれを使い回すこと

 

抽象化のメリット

  • コード量減少→読む時間短縮
  • ロジックやデータに名前が付き、読みやすくなる
  • コードの修正が容易になり、品質が担保しやすくなる
  • 再利用しやすくなり、新たな機能実装の際に最小限のコード量で要件を記述できる

抽象化のデメリット

  • 時間がかかる
  • デグレード(前より悪くなること)の可能性がある

③その他

WET:Write Every Time(同じことがたくさん書かれている)

皮肉にもDRYの対義語として定義されたらしいです笑

(DRY:乾燥してる⇆WET:湿っている)

まとめ

DRY原則は、Don't Repeat Yourself(同じことを繰り返すな)ということです。

コーディングの際に、重複する処理があればそれを抽象化し、関数やクラスに切り出すようにしましょう!

 

*より深く知りたい方は、ぜひ本書を手にとってみてください!

書籍情報 

プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ]

価格:2,420円
(2021/8/28 14:24時点)
感想(2件)

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ]

価格:2,178円
(2021/8/28 14:24時点)
感想(1件)

【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

【著者名】上田勲

【出版社】秀和システム

【出版日】2016年3月

【ページ数】303p

 

著者紹介

f:id:Chan-Naru:20210828142858p:plain

著者:上田勲

横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる

上田勲|プロフィール|HMV&BOOKS onlineより)

 画像は上田勲に関する記事一覧 - ログミーより