= Local Rules
== Design
1. '''命名規則: Source File Names / Class Names / Variables'''
1. 単語を省略しない
1. 関連する file が並ぶように命名する
* NG例[[br]]ParseImageForIcon[[br]]DefineFunctionForIcon
* OK例[[br]]IconParseImage[[br]]IconDefineFunction
1. '''Display controls, User Inputs, Functions それぞれ分けて考える'''
* NG例[[br]]Mouse down処理作成後、Touch start処理を追加すると2つの関数で重複する処理が多く発生してしまうパターン
1. '''外部との入出力は1ヵ所でやりとりする'''[[br]]【理由】
1. Log出力漏れ防止
1. 入出力データ全てに影響する変更を入れるときに影響範囲を絞り込むため[[br]]【例】
* Thread間 Message送受信用 Classを用意する
* Mouse, Keyborad入力受信・振り分け用 Classを用意する
1. '''入力データに変更が発生したときに差分を吸収できる場所を設ける'''[[br]]Format変更が発生したとしても、設計段階で要件を満たすために必要なデータを抽出していれば必要項目が増えることはそうそうないはず
1. Save data format 変更
1. 通信 data format 変更
1. 入力 Text data format 変更