ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

今日の反省(プログラミングの進め方について)

スポンサードリンク

個人メモです。役に立つ記事ではないのでよろしく。



集計関連のプログラムの修正のタスクが振られた。


内容をざっと確認する。


あるデータを集計し、表示するのだが、表示のカテゴリをグルーピング化して表示したいらしい。


そして、俺は考えた。。。。



( ・ω・)



( ・ω・)!


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

どうすればよかったのか

  1. 処理全体を把握
  2. 修正内容を羅列する
  3. (修正に対し)影響範囲を想定。
  4. 影響範囲で問題があれば、2に追加
  5. 2〜4をループして、4がなくなるまでやる


処理のつながりを、全部把握した上で、「じゃあ、この処理を追加したいけど、どうする?」って問いかければよかった。。。orz


そうしたら、想定外な事象は少なくなるはず。修正 -> テスト -> 発見 の流れも少なくなり、効率的に進められたかもしれないのに。。。(´;ω;`)

まとめ


反省のメモです。


とりあえず、先週怒涛の消化率に比べ、今日の成果はダサい! ダサすぎる!


一旦リフレッシュして、臨もうと思う。