ちゃんなるぶろぐ

エンジニア5年生🧑‍💻 オライリーとにらめっこする毎日。

【3分でわかる!】プログラミングの普遍的な事実

読み終えるまで約3分

 

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

今回の内容は、この本と自分の経験を元に書きます!

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

 

この本から得られるもの

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

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

 

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

 

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

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

①プログラミングに特効薬はない

 ソフトウェア開発の場では、日々のプログラミングが突如混乱に陥る場合があるが、その際の特効薬がないということ。

 

理由は、ソフトウェアには下記の4つの困難性があること。

  1. 複雑性:開発規模によっては数千、数万行の規模のコードも珍しくない。
    構成要素間の依存関係は、規模が大きくなるほど非線形に増大する。
  2. 同調性:ソフトウェアは、ハードウェア、ネットワーク、他のソフトウェア、人間の行動習慣などの実世界の様々なものと関係を持つ(同調)。
    実世界は困難であるがゆえ、プログラミングも困難であると言える。
  3. 可変性:環境は刻々と変化しており、ユーザーのニーズを満たすためにソフトウェアは常に変化し続けなくてはならない。
  4. 不可視性ソフトウェアは概念の集積であり、製品そのものやプロセス、意思決定の経緯など全体を見ることができない。

 

では、混乱に陥らないようにするには、どうしたらよいのでしょう?

 

ソフトウェア開発の際の偶有的な部分改善することです。

(ここでの偶有的とは、副次的、付随的、を意味する)

 

ソフトウェアの偶有的な部分とは、それがなくてもソフトウェアが成り立つような性質のことです。

例えば、ビルド環境、プログラミング言語、ライブラリ、フレームワークなどが挙げられます。

 

ソフトウェアにおいて偶有的要素はとても重要であり、本質的な開発部分とは対照的に、容易に改善できます。

例えば、適切な言語やライブラリを選択することで生産性が劇的に向上します。

 

偶有部分の改善で、過去大きな実績を上げてきたのが『自動化』です。

テスト、ビルド、環境構築などを『自動化』して、作業の効率や品質が大きく向上しました。

 

偶有的部分を適切に改善することで、私たちのソフトウェア開発における生産性を高めましょう。

②プログラムコードは設計書である

 システム開発を行う際、設計という工程があります。

設計は、今後システム開発を進めるために重要な計画を立てる工程のことです。

その際に作成されるドキュメントを、設計書と言います。

 

エンジニアにとってプログラムは設計であり、コンパイルやビルドが製造ということになります。

そのため、ソフトウェア開発の中で作成されるあらゆるドキュメントの中で、真にエンジニアリングドキュメントと言えるのがプログラムコードになります。

 

プログラムコードは最重要のドキュメントである、と認識しましょう。

 

 一般的な設計書は、自然言語(私たちが普段使う日本語とか)で書かれています。

しかし、プログラムはプログラミング言語で書かれています。

将来の保守担当者に向けて、プログラムコードというドキュメントをいかに理解しやすいかという視点を意識して書くべきです。

読みやすいコードであること、コメントを適切に記載すること、保守・運用のための手引書を別途用意することなどをしましょう。

③プログラムコードは必ず変更される

『コードは変更される』という事実を、コードを書く際の様々な『判断』『選択』『決断』において最優先で考慮するべき、ということです。

 

なぜ変更を余儀なくされるのか?

それは、そのコードで作っているソフトウェアを使うユーザーがおり、そのユーザーの要求はいつ何時も変化し、その変化した要求に対応するためです。

 

必ず変更されるということは、変更に強いコードを書けばいいのです。

変更に強いコードに必要な要素はいくつかありますが、『コードは書いてる時間よりも読まれる時間の方が長い』という点で、読みやすいコードを書くべきです。

 

読みやすいコードを書くには知識や経験が必要になり、時間もかかります。

ですが、変更されるという前提に立つと、『書くのにどれだけ時間がかかっても、読む時間を短縮できるなら十分に元を取ることができる』と言えるでしょう。

まとめ

下記の3つのポイントを紹介しました!

  1. プログラミングに、「これさえやればOK」という特効薬はなく、さまざまな要素を考慮して取り組むべきである。そのため、適切な技術の選択や、要素の自動化などを駆使するべきである。
  2. 将来の保守担当者に向けてプログラムコードを書くべきである。
    コードは私たちプログラマにとっての設計書である。
  3. コードは必ず変更されるので、変更に強いコードを書くべきである。

 

感想:

私も、いいコードを書くために日々試行錯誤をしています、、、難しい。

いいコードを書くための具体的な要素については、下記の書籍をおすすめします!面白く具体的なので、すぐに真似して実践できる内容でした!

 

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

書籍情報 

プリンシプルオブプログラミング 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より)

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