概要
先輩から勧められたを読んでみた。せっかくなのでシステムエンジニア歴2年弱の私がほほぉと思ったところを自分なりに抜粋。
ほほぉな部分(抜粋)
基本的には「KISS」「DRY」「OCP」的な考えを意識し複雑にせずシンプルにシンプルに!という風に読めたが、以下個人的にほほぉな部分を記載
7つの設計原理(Seven design Principles)
コードに対する革新的な7つの価値観。コードレビューなどではコレをもとにぶれないレビューを行う!
安全原理(Safty Principle)
状況として起こり得なくともDefaultやelseの処理を記載する!自動消火機能のように大事故を防ぐ!!
UNIX思想
UNIXにおける17の思想のうち以下抜粋
表現性の原則(Rule of Representation)
情報はロジックではなくデータに寄せることでより簡単に表現しよう!
経済性の原則(Rulr of Economy)
積極的にプログラマに投資しよう!プログラマの時間を浪費させ無いことで生産性が高まる!!
生成の原則(Rule of Generation)
コードを生成するコードを作ろう!そのほうがとっても高品質!!
最適化の原則(Rulr of Optimization)
速いコードより正しいコード!正しいコードを作成してから速さを考える。
UNIX哲学(UNIX Philosophy)
速攻プロトタイプ(Build a Prototype as soon as possible)
出来る限り早くプロトタイプを作成しよう!試行錯誤無くして最適解は導かれない!!
効率性より移植性(Choose portability over efficiency)
時間がかかったとしてもハードウェアに依存しない移植性の高いコードを書こう!!
レバレッジソフトウェア(Use software levarage to your advantage)
ソフトウェアのテコを用いて大きな力を生む!とくに手作業の自動化には有効!!
シェルスクリプト活用(Use shell scripts to increase levarage and portability)
シェルスクリプトをグルー言語(ノリ的なくっつける言語)として利用しレバレッジ(テコ)の力を増長!!
個人的にシェルスクリプトをどこまで活用するか悩んでいたが、グルー言語として意識しすれば積極的に使っていけそう!!
対話インターフェース回避(Avoid captive user interface)
ユーザーインターフェースを過度に入れることをやめる!人間がボトルネックになったり、「大は美なり」的なアプローチを生み出しやすい
手法
ラバーダッキング(Rubber ducking)
説明するというデバッグ!話してるうちに自己解決した的なことよくあるけどラバーダッキングっていうんだ!というほほぉ
法則
ジョシュアツリーの法則(Joshua Tree Principle)
名前を知った途端それが見えるようになること!!これまで見えてなかったけどデザインパターンで名前を勉強して改めて見ると、あ〜それかということある!
まとめ
そう言われればそうだなぁということがたくさん書いてあった。どこかのタイミングで振り返ってまた読んでみたい。