プログラミング

プログラミングとは

前提

原則

思想

法則

プログラマとは

視点

習慣

手法

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

ソフトウェアは本質的に困難

なぜ

可変性がある

複雑性がある

同調性がある

不可視性がある

対策

容易に改善出来るポイントを探す

自動化

テスト

ビルド

環境構築

本質的なことに注力

コード = 設計書

優秀な設計者(プログラマ)が必要

プログラミング = 創造的な行為

基本的に実装が出来ない設計者は役に立たない

速くコードを書くべき

不明確な点が必ず残る

Whyをコメントとして残す

修正の判断材料となる

コードは必ず変更される

変更に強いコードを書く

読みやすい

KISS(コードは短く、シンプルに)

DRY(繰り返すな)

なぜ

対策

読みやすくなる

変更が簡単になる

コードを抽象化する

YAGNI(きっとそれは必要にならない)

PIE(意図を表現せよ)

SLAP(抽象化レベルの統一)

要約性

閲覧性

関数の一覧が目次に

小さなコードの塊

OCP(オープン・クローズドの原則)

インターフェースを用いる

柔軟性が出る

拡張に対して開いている

修正に対して閉じている

修正による他への影響を出さない

複雑になり過ぎないように注意する

デザインパターン

命名は重要

必要最低限

価値観は原則を通じてコードに反映

価値観

コミュニケーション

シンプル

柔軟性

なぜ

価値観は技術選択基準になる

原則

結果の局所化

繰り返しの最小化

ロジックとデータの一体化

対称性

宣言型の表現

変更頻度

円滑な開発

変更が容易である

コードは必ず変更される

拡張性を上げる

適用しやすい

影響が出ない

分かりやすい