## 概要

ソフトウェアを開発・設計する際に使用されている技法についてまとめる記事になります。

## 設計

### ドメイン駆動設計

[ドメイン駆動設計入門](https://digitalsoul.hatenadiary.org/entry/20101027/1288180208)

[「実践ドメイン駆動設計」を読んだので、実際にDDDで設計して作ってみた!](https://qiita.com/APPLE4869/items/d210ddc2cb1bfeea9338)

[ドメインモデルとは(「現場で役立つシステム設計の原則」より)](https://qiita.com/jimpei/items/93671b4b09407f9d4111)

### 配色の設計

[マジで使える最強配色テクニック](https://twitter.com/dezaeru/status/1488106896402038786)  
[エスdesign](https://twitter.com/dezaeru)

## 手法

### テスト駆動開発

プログラムを書く前に、そのプログラムを試験するための**テストプログラム**を書く。
その後、テストプログラムを通過できる最小限のプログラムを書く。  
これを繰り返していくことで、無意味なプログラムを書くことなく、素早いサイクルで目的のプログラムを書き上げる。

この手法のすごいところは、**テストのことを考える**ことでプログラムを書くそもそもの**目的**に**焦点を当てられる**というところ。

プログラミングが好きな人ほど、先にプログラムを書きなぐってしまう傾向にある(筆者の体験より)。
目的が置いてけぼりになることも多々ある。  
これが改善されるだけでも、かなりの時間削減になる。