雑記:未分類

・睡眠時間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かなぁみたいに思い始めている。
という状況か。次回はここらへんを活かそうということで。