個人メモです。役に立つ記事ではないのでよろしく。
集計関連のプログラムの修正のタスクが振られた。
内容をざっと確認する。
あるデータを集計し、表示するのだが、表示のカテゴリをグルーピング化して表示したいらしい。
そして、俺は考えた。。。。
( ・ω・)
( ・ω・)!
1. 配列の詰め方をこういうふうにすればいいんじゃない!
# No. -> 配列で生成される連番の数字です # $date -> 日付 # $id -> 値のidです。 # $type -> グループ化するタイプ array( No. => array( $date => array( $id => $value, $type => $sum_value // これを追加した。 ) ) )
しかし、これでは問題になることが動作させてわかった。
- problem : view側で、$type毎にグループ分けしたいレイアウトだった
上記配列だと、色々入れ子が存在する中で、typeが最終のループじゃないと取れないので、グルーピング化が面倒くさい
( ・ω・)うーむ
〜 すごく悩む 〜
( ・ω・)!
2. ! こうすればいいじゃん!
array( No. => array( $type => array( $date => array( $id => $value ) ) )
これだとグループ化できるからView側のループが楽になる。
(動作確認中)・・・・・・あれ?
- problem : 修正を確認したら、type毎の合計値も必要になった。
(´・ω・) うーむ
〜 すごく悩む 〜
( ・ω・)!
3. 修正した配列ではごちゃごちゃになるので、結局配列は元に戻し、配列の変数を増やす。
一緒にするのではなく、それぞれ集計に必要な配列を用意。(今回タイプが3つ存在したので、変数は3つ用意した)
これで、集計データのカテゴリ毎の表示は完了した!
(^ω^ = ^ω^)おっおっおっ(テスト中)
( ・ω・)!!?
( ・ω・)入力テストで集計値がおかしくなった。。。。?
- problem : view側のJavaScriptで問題が発生。JavaScriptは3の修正に対応していなく、詰め方を再修正する必要がでてきた。
( ・ω・)・・・・・
( ´;ω;)ブワッ
どうしてこうなったのか
単純に、「変更に対する影響範囲」を把握していなかったからだと思います。
これまで、「ボトムアップ」に近いプログラミングしてきましたが、仕事では速さが要求される。営業時間は休憩を抜いて1日8時間しかありません。
修正 -> テスト -> 発見 -> 修正 -> テスト -> 発見 -> 修正....
これでは非効率でダメダメだぁー。
あー、時間をめちゃくちゃ無駄にした感が・・・orz
どうすればよかったのか
- 処理全体を把握
- 修正内容を羅列する
- (修正に対し)影響範囲を想定。
- 影響範囲で問題があれば、2に追加
- 2〜4をループして、4がなくなるまでやる
処理のつながりを、全部把握した上で、「じゃあ、この処理を追加したいけど、どうする?」って問いかければよかった。。。orz
そうしたら、想定外な事象は少なくなるはず。修正 -> テスト -> 発見 の流れも少なくなり、効率的に進められたかもしれないのに。。。(´;ω;`)
まとめ
反省のメモです。
とりあえず、先週怒涛の消化率に比べ、今日の成果はダサい! ダサすぎる!
一旦リフレッシュして、臨もうと思う。