LoginSignup
2
5

More than 5 years have passed since last update.

プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則読んでみた

Posted at

概要

先輩から勧められたプリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則を読んでみた。せっかくなのでシステムエンジニア歴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)

名前を知った途端それが見えるようになること!!これまで見えてなかったけどデザインパターンで名前を勉強して改めて見ると、あ〜それかということある!

まとめ

そう言われればそうだなぁということがたくさん書いてあった。どこかのタイミングで振り返ってまた読んでみたい。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5