ファットコントローラの修正は大変

ブログ開始後早くも全然更新せず。
たぶん慣れというか、習慣化できるかどうかなんだろうな。
最初くらい頑張りたい。ということで、今日は簡単に更新。
最近勉強した内容ではないけれど、MVCモデルで最近改めて思ったことについて。

ファットコントローラはやはりよくない

散々いろんな人が言ってることだし別に言う必要もないと思うけど、 仕事でプログラムをいじっていて最近よく思います。

仕事はというと、今の会社に入社して現在2ヶ月で、 既存サイトの保守がメインタスク。

あるコントローラを最近見ていたのですが、1つのアクションで500行くらいあり、 これがどこで何をやってるかがとても把握しづらい。

変数のスコープはだいたい大きく、 ビューに渡す値はいたるところで入れられていたりしてかなり厳しい。

アクションの最初で宣言された変数が300行目あたりでぴょこんと出てきて ビューに渡すために使われてたり。

破壊的代入も当然のごとくガンガンされていたり。

コード規約やテストを作る文化もないというのを入社後知り、 ある程度覚悟していましたが、なかなかまぁ大変だなぁと。

できる人は余裕で修正できるのかもしれませんが、 自分には無理だなぁと感じました。

テストを作ろう

そんなわけで、こいつをなんとか改善したい。
モデルに処理を移動して、テストコードを作って、
ガシガシリファクタリングしていきたいなと画策中。

以前いた会社では先輩に教わりながらテストを必ず作っていたのもあり、 改めて勉強しようとレガシーコード改善ガイドを入手。
普段Java使ってないのでサンプルはなんとなくでしか理解していませんが、 読み応えのある書籍だなーと読ませていただいてます。

さっきTDDについて調べてたらビヘイビア駆動開発なんて言葉もあるんですね。 ここらへんもいいとこ取り込んでやっていきたいな。

あとモデルも粒度が細かすぎるとわけわかんなくなってしまいがちなの気をつけたいところですが、 そこらへんは名前のつけ方なんかに気をつけて対応していきたいと思っています。 リーダブルコードも読み返そうかな。

眠くてだいぶ雑な文章になりましたが、今日はこんなところで。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)