・睡眠時間6時間半くらい。なんとか通常のタイミングで起き上がれたが、眠いことに変わりなし。昨日はまぁ床につくのが遅れたのは仕方ない。1時までに寝れたので良しとしよう。今日はちょっと早めに寝たいとこだが。
・そこまで眠くもないし、作業に支障もないし、やりたいこともやれたが、創造欲がないのかやる気がない。寝れば直るかなー。
あとあれか。入ってきた情報の影響もあるのか。仕事とは関係ない方向で。E3のやつとかモッチーまわりの意見とか。
・そいや、前回のプロジェクトのバグは「何がどうしてこうなるのかさっぱりわからん」というのが多かったけど、今回は「たぶんあそこがああなってこうなるんだろうなー」というのが多いので、対応は楽なのか。
・久々に自分の案件が来た。問題としては中程度(見た目の問題)だけど、すげーめんどくせー。
と思ったけどコード見たら意外となんとかなった。まだ「マテリアル」まわりの理解が浅いっつーか、「マテリアルを扱うコード」への理解が浅いというか。問題が起こるのはこっち方面か。「設計の未熟さ」じゃなくて「理解の浅さ」の方で起こるか。まぁ設計は「美しくない」だけで「ちゃんと想定どおりに動く」ようにはしてるからなぁ。でもそれだとマイナスの学習がされずに改善の動機付けが云々。
・で、修正の際に自分のコードを見て「関数長っ!」とか思ったのでそのまわりのメモ。
長いコードが嫌われる原因として現状理解しているのは「区切りがわからない」「コードの意味の流れがわからない」あたり。「区切り」の方はスコープで区切るようにしてからだいぶ改善されたものの、「意味の流れ」は「一覧性」においてまだまずい。
例えば理想は
void InitModel(){ //モデルの生成 CreateModel(); //モデルの色変更 ChangeModelColor(); //モデルの表示開始 ShowModel();
みたいな感じだが、現状では
void InitModel(){ //モデルの生成 { int option = HOGE; m_spModel = ModelFactory.GetInstance("HOGE", option); } //モデルの色変更 { m_spModel->ChangeColor("HOGE"); } //モデルの表示開始 { HOGE.Register(m_spModel); } }
みたいな感じになってる。(実際にはそれぞれのスコープの中がもう少し長いような感じ)
で、理想どおりにいかない理由としては「レイヤー分けがちゃんとできてない」みたいなのと「関数化すんのめんどくせ(あと、関数名でスコープ汚すのが嫌)」みたいなのがある。
「レイヤー分け」は「どの関数(処理)が同じレイヤーに相当するか」で、関数のネスト構造はここらへんば考えんばいかんとたいなーという感じなんだけど、まだちゃんとできていない。例えば上の例で言えば「モデルの色変更はモデルの生成にまとめるべきじゃないか(生成というレイヤーの下にあるんじゃないか)」とかの問題。部分だけ見ても解決しないかもなー。
「関数化のコスト」は、「めんどくささ」と「やたら関数が増えると、それはそれで一覧性悪くね?」あたりの問題。「めんどくささ」に関しては「スコープですでに区切ってるから、あとは関数名とか付けて移動すればそれでOK」で多少は軽減してるし、「一覧性」の方も「レイヤーごとに分けて、さらにカテゴリーで分ける」という風にすればOKかなぁみたいに思い始めている。
という状況か。次回はここらへんを活かそうということで。