# Coding Guide 💅
## Using Cache
### Database Model Cache
日常的に変化しないアプリケーション共通のデータを毎回データベースから呼び出すことはスマートではありません。そこで、キャッシュを作成し発行されるクエリ数を減らします。
#### Read cache data
アプリケーションでは、モデルの特定のカラムをキャッシュさせるtraitを用意してあります。これは、キャッシュのキーの命名規則を担保するためのものであり、キャッシュさせる場合は必ず利用してください。
使用方法: Modelクラス内でtraitを呼び出し、引数としてカラム名を渡します。
```php
# in the Model Class
use App\Traits\HasModelCache;
$this->modelCache('category');
```
> 🚨 **引数はカラム名であり、単数系でなければなりません**
#### Create/Update cache data
キャッシュさせる場合は、必ず `Observer` を利用してください。これは、モデルの状態を常に監視し、キャッシュするべきタイミングをシステムで監視できるからです。また、コードの可読性を担保するために、キャッシュを行うロジックは集約するべきだからです。