がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

で、一発目

振り分け君
1画面内に「1つのformに囲まれたn個のsubmitがあって処理を振り分ける」ようなときのやり方。
まず「振り分け君model」作って、そこでは振り分け処理&再帰処理のみを行う。
で、振り分け先で処理。
これなら「後で別画面になっても」mapファイル書き換えで片付く。


class内singleton
普通のsingletonが「あれってようはglobalだよねぇ」を理由に嫌いなのは周知の事実として。
ただ、1クラス内に限定されたsingletonは結構便利。
具体的にはたとえばmodelクラスがDBハンドルを持つときに「毎回DB connectする」のは狂気の沙汰。
なので「constructでクラス変数にnullぶち込んどいて」、getの時に「nullならnewしてconnectして保存してreturn」「nullぢゃなければその値をreturn」ってのはよくある処理。


stringクッション
たとえば「ファイルから設定を読み込む」とか「ファイルに書き出す」とか「標準出力に出力する」とかその手のパターンの場合。
かならず、一回「文字列を読み込む」「文字列に書き出す」「出力用文字列を作成する」メソッドを作って、そのラッパーとしてファイルにごにょりとかstdoutにごにょりとかする。
これによって、後で「なにか」あったときに楽ができる。


持ち上げる
基底クラスは「はじめに作る」もんじゃなくて「必要性が見えたらその時点でまとめて持ち上げる」もの。


データabstract
ファイルに読み書きとかDBに読み書きというロジックがある場合、いったんその手前で「abstract write」と「abstract read」にしておいてから作る。
これで、後で何かが増えたり変更になったりしても処理がしやすい。