【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」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
画像は上田勲に関する記事一覧 - ログミーより
【3分でわかる!】プログラミングの普遍的な事実
読み終えるまで約3分⏰
どうも、ちゃんなるです。
今回の内容は、この本と自分の経験を元に書きます!
『プリンシプル・オブ・プログラミング』
この本から得られるもの
いいコードを書くための『プリンシプル』。
(プリンシプルとは原理・原則のことで、これを知ることがプログラマとして成長するための『王道』で『近道』である)
本書の目的は、『プリンシプル』を通して良いコードを書けるようになることです。
『プリンシプル』は抽象的な内容であり、本書にはプログラムコードによる具体例もありません。
そのため、自分なりに内容を咀嚼し、自分なりの具体例を考えようとする姿勢が大切です。
①プログラミングに特効薬はない
ソフトウェア開発の場では、日々のプログラミングが突如混乱に陥る場合があるが、その際の特効薬がないということ。
理由は、ソフトウェアには下記の4つの困難性があること。
- 複雑性:開発規模によっては数千、数万行の規模のコードも珍しくない。
構成要素間の依存関係は、規模が大きくなるほど非線形に増大する。 - 同調性:ソフトウェアは、ハードウェア、ネットワーク、他のソフトウェア、人間の行動習慣などの実世界の様々なものと関係を持つ(同調)。
実世界は困難であるがゆえ、プログラミングも困難であると言える。 - 可変性:環境は刻々と変化しており、ユーザーのニーズを満たすためにソフトウェアは常に変化し続けなくてはならない。
- 不可視性:ソフトウェアは概念の集積であり、製品そのものやプロセス、意思決定の経緯など全体を見ることができない。
では、混乱に陥らないようにするには、どうしたらよいのでしょう?
ソフトウェア開発の際の偶有的な部分改善することです。
(ここでの偶有的とは、副次的、付随的、を意味する)
ソフトウェアの偶有的な部分とは、それがなくてもソフトウェアが成り立つような性質のことです。
例えば、ビルド環境、プログラミング言語、ライブラリ、フレームワークなどが挙げられます。
ソフトウェアにおいて偶有的要素はとても重要であり、本質的な開発部分とは対照的に、容易に改善できます。
例えば、適切な言語やライブラリを選択することで生産性が劇的に向上します。
偶有部分の改善で、過去大きな実績を上げてきたのが『自動化』です。
テスト、ビルド、環境構築などを『自動化』して、作業の効率や品質が大きく向上しました。
偶有的部分を適切に改善することで、私たちのソフトウェア開発における生産性を高めましょう。
②プログラムコードは設計書である
システム開発を行う際、設計という工程があります。
設計は、今後システム開発を進めるために重要な計画を立てる工程のことです。
その際に作成されるドキュメントを、設計書と言います。
エンジニアにとってプログラムは設計であり、コンパイルやビルドが製造ということになります。
そのため、ソフトウェア開発の中で作成されるあらゆるドキュメントの中で、真にエンジニアリングドキュメントと言えるのがプログラムコードになります。
プログラムコードは最重要のドキュメントである、と認識しましょう。
一般的な設計書は、自然言語(私たちが普段使う日本語とか)で書かれています。
しかし、プログラムはプログラミング言語で書かれています。
将来の保守担当者に向けて、プログラムコードというドキュメントをいかに理解しやすいかという視点を意識して書くべきです。
読みやすいコードであること、コメントを適切に記載すること、保守・運用のための手引書を別途用意することなどをしましょう。
③プログラムコードは必ず変更される
『コードは変更される』という事実を、コードを書く際の様々な『判断』『選択』『決断』において最優先で考慮するべき、ということです。
なぜ変更を余儀なくされるのか?
それは、そのコードで作っているソフトウェアを使うユーザーがおり、そのユーザーの要求はいつ何時も変化し、その変化した要求に対応するためです。
必ず変更されるということは、変更に強いコードを書けばいいのです。
変更に強いコードに必要な要素はいくつかありますが、『コードは書いてる時間よりも読まれる時間の方が長い』という点で、読みやすいコードを書くべきです。
読みやすいコードを書くには知識や経験が必要になり、時間もかかります。
ですが、変更されるという前提に立つと、『書くのにどれだけ時間がかかっても、読む時間を短縮できるなら十分に元を取ることができる』と言えるでしょう。
まとめ
下記の3つのポイントを紹介しました!
- プログラミングに、「これさえやればOK」という特効薬はなく、さまざまな要素を考慮して取り組むべきである。そのため、適切な技術の選択や、要素の自動化などを駆使するべきである。
- 将来の保守担当者に向けてプログラムコードを書くべきである。
コードは私たちプログラマにとっての設計書である。 - コードは必ず変更されるので、変更に強いコードを書くべきである。
感想:
私も、いいコードを書くために日々試行錯誤をしています、、、難しい。
いいコードを書くための具体的な要素については、下記の書籍をおすすめします!面白く具体的なので、すぐに真似して実践できる内容でした!
*より深く知りたい方は、ぜひ本書を手にとってみてください!
書籍情報
プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則 [ 上田勲 ] 価格:2,420円 |
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則【電子書籍】[ 上田勲 ] 価格:2,178円 |
【書籍名】プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
【著者名】上田勲
【出版社】秀和システム
【出版日】2016年3月
【ページ数】303p
著者紹介
横浜国立大学経営学部卒。キヤノンITソリューションズ勤務。Webアプリケーション自動生成ツール「Web Performer」の開発に、立ち上げ期より関わる。現在、テクニカルリーダー、スペックリーダー、アーキテクト、デザイナーを担いつつ、自らもプログラミングに携わる
画像は上田勲に関する記事一覧 - ログミーより
【3分でわかる!】仕事に追われない仕事術〜優れたシステム編〜
読み終えるまで約3分⏰
どうも、ちゃんなるです。
今回紹介するのはこの本!
『仕事に追われない仕事術』
今回は本書の第三部であるさらに優れたシステムへの内容を紹介します!
対象読者
本書では、次のような人を対象にしています。
- 「時間がない」と嘆いている人
- 日々「忙しい」と感じつつ、なぜ忙しいかわからない人
- 仕事術関連の本を読んでみたものの、うまく仕事が捗らない人
- 『TODOリスト』『仕事の優先順位付け』『スケジュールの一覧化』といった主要な仕事術を試してみたが、効率よくなっていない人
今回の内容をかんたんにまとめると…
重要なタスクは、5分でいいから一点集中で着手することが大事!
また、仕事に追われず抱えたタスクを全て完了させるには、『やらないタスク』を決めるのも大事
前回は同じ本の別の部分を要約しました↓↓↓
本書の第三部『さらに優れたシステムへ』部分における要点3つにまとめました。
ここからお伝えします。
①タスクの先送りをなくす!
先送りを防ぐには、防止法と対処法の2種類があります。
先送りをしないようにする方法と、先送りしてタスクが溜まってしまった状態を脱する方法です。
防止法:
- 採点方式(先送りしなかった日は+1点。毎日採点をし、週ごとや月毎に比較をする。点数制にするとモチベが上がる可能性がある。)
- ダッシュ法(後述)を活用する
- 仕事の終了時間をあらかじめ設定する
- 新しいタスクの着手直後や仕事の途中で休憩を挟む
- 小さく始める(レポートを提出する→レポートを開く、1行だけ書く、等。小さく始めると続けたくなる。)
対処法:
- WILL DOリストを作成
- やり残しタスクをファーストタスクにする
*WILL DOリストに関しては過去の記事を↓↓↓
②ダッシュ法を活用し、タスクを終わらせる
ダッシュ法とは、一定時間集中してタスクに着手する方法のこと。
やり方:
- なかなか手をつけられてないタスクを選択する
- ○分間のタイマーをスタートする
- そのタスクだけに向き合い続ける
- ①〜③を抱えるタスクが終わるまで繰り返す
○分間は、例えば5分間、10分間、20分間、、、と設定してください。
最初は短い時間で取り組み、慣れてきたら徐々に伸ばすことを著者は勧めています。
注意点・ポイント:
- 必ず制限時間を厳守すること
- 時間になったらタスクが途中でも中断して休憩すること
- 休憩は短く数分で
- 着手するタスクは小さく分割しておく
- タスクが完了したタイミングではなく、途中のタイミングで休憩すること
これらを意識することで、締め切り効果、シングルタスク*の効果を得つつ、休憩後もモチベーションが高く維持できます。
*シングルタスクについて↓↓↓
③抵抗感をバネに
抵抗感とは、チャレンジ精神や努力が必要なタスクに対して抱く気持ち、また『やりがいのあるタスク』に直面した合図です。
「めんどくさいなあ。」「やりたくないなあ。」「後でいいかなあ。」などといった気持ちになることでしょう。
抵抗感を感じると、私たちはタスクに着手しにくくなります。
著者は次のように抵抗感をなくす方法を述べています。
- 抵抗感を感じているタスクに着手してしまう
- 抵抗感を感じているタスクをやらないと決めてしまう
着手する場合は、ダッシュ法を活用したり小さく始めたりしましょう。
タスクをやらないと決めることも有効です。
そうすることで一気にゆとりが生まれ、他のタスクに十分に時間を割くことができるようになります。
まとめ
- 「とりあえず着手」が大事!
- 「シングルタスクで着手」が大事!
- 「やるものはやる」、「やらないものはやらない」が大事!
*より深く知りたい方は、ぜひ本書を手にとってみてください!
書籍情報
仕事に追われない仕事術 マニャーナの法則 完全版 [ マーク・フォースター ] 価格:1,650円 |
仕事に追われない仕事術 マニャーナの法則・完全版【電子書籍】[ マーク・フォースター ] 価格:1,650円 |
【書籍名】仕事に追われない仕事術 マニャーナの法則・完全版
【著者名】マーク・フォースター
【出版社】ディスカバー・トゥエンティワン
【出版日】2016年10月22日頃
【ページ数】279ページ