0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[プリンシプルオブプログラミング] UNIX思想

Posted at

UNIX思想

UNIX思想とは、UNIXの文化で育まれたプログラミングの経験に基づいた実践的な技の集合体です。
以下の17個の原則があります。

  • モジュール化原則
  • 明確性の原則
  • 分離の原則
  • 単純性の原則
  • 倹約の原則
  • 透明性の原則
  • 安定性の原則
  • 表現性の原則
  • 驚き最小の原則
  • 沈黙の原則
  • 修復の原則
  • 経済性の原則
  • 生成の原則
  • 最適化の原則
  • 多様性の原則
  • 拡張性の原則

UNIXの設計判断の正しさ

1969年にUNIXは生まれ、今なお使われ続けているこのソフトウェアのプログラミングから生まれた思想は、UNIXの堅牢さを見れば分かるとおり、このような設計判断は正しいことがわかります。

モジュール化の原則

  • 肥大したモジュールは作らない
    • 控えめなモジュールを心がける
  • クリーンなインターフェースを持つ
  • モジュールの入り口を狭くする
    • 余分な他のモジュールと関係を持たない

明確性の原則

  • 巧妙なコードより、明確なコード
    • パフォーマンスではなく読みやすさ
  • 明確なコードでなければ改善する

組み立て部品の原則

  • フィルターにして組み立てる
    • ソフトウェアは、他のソフトウェアと組み合わせられるように作成する
  • 独立性を高くし、相互接続を簡単にする

分離の原則

  • メカニズムからポリシーを話す
    • メカニズム
      • ソフトウェアに依存しない独立した部分
    • ポリシー
      • ソフトウェアに依存した部分

単純性の法則

  • コードをシンプルにする
    • コードは自然状態で複雑になる
      • 技術を誇示しようとするプログラマの気持ち
      • 機能に対する外部からの要求
  • シンプルなコードを美しいとする文化を育てる

倹約の原則

  • 大きなコードは書かない
    • 大きなコードは制御不能
  • コードは継ぎ足し続けない

透明性の原則

  • ソフトウェア動作の見える化
    • 透明性
      • ソフトウェアの動作を見てすぐに動作内容が理解出来ること
    • 開示性
      • ソフトウェアの内部状態を監視、表示出来ること
  • デバッグが簡単に行える状態にする

安定性の原則

  • ソフトウェアを安定させる
    • 堅牢なコードを書く
      • 透明性と単純性を保つコードを書く

表現性の原則

  • 情報はデータを寄せて表現する
    • データはロジックよりも御しやすい
  • 複雑さをデータに寄せる

驚き最小の原則

  • 予想通りのコードやインタフェースを作成する
    • 学習コストが下がる
  • ユーザーの既知を活用した表現をする

沈黙の原則

  • 重要な情報のみを表示する
  • 不必要なデータは出力しない

修復の原則

  • エラーを起こした時には処理を停止させる
  • エラー通知はすぐに気づくように派手にする

経済性の原則

  • プログラマの時間の使い方
    • プログラマに投資する
      • ハードウェアやソフトウェアなど
      • インターネット環境

生成の原則

  • 次のコードが書きやすいようなコードを書く
  • 生成コードは安価で高品質
  • コードジェネレータを作成する

最適化の原則

  • 早く動くコードより正しいコードを書く
  • 動くプロトタイプを作る
  • 正しい動作を確定させて早くする

多様性の原則

  • 選択の多様性を受容する
  • 正しい方法などは場面によって変わることを意識する
  • よりよいやり方を求め続ける

拡張性の原則

  • 拡張できる設計にしておく
  • ソフトウェアは成長していく
  • プラガブルな設計をする
    • ブラガブル 接続可能
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?