積極的にコードの闇を消していこうな

こんにちは。 開発チームのめろたん(@)です。

マイブームは開発メンバーの写真をトリミングしてSlackの絵文字に追加することです。

f:id:renya-mizuno:20160303111816p:plain:w300

これは哀愁ただよう僕の写真です。こくぼさん(@)が「アイキャッチにどうぞ」と作ってくれたのでアイキャッチにしました。

このブログを書いている今ですらこの写真を貼ったことを後悔しています。

ですがせっかく作ってくれたものなので貼ったままにしておきます。

はい。

今回は無駄なコードや深淵をのぞいてしまった時、「あっあっあっ。」と言いながらフタをするのではなく積極的に闇を消していこう。
という話を書きます。

大量のログイン画面

最近実装した画面でログインモーダルを追加することがあり、単純にログインフォームを実装したのですが上手く動きませんでした。

参考にログイン画面を見ようと思ったら、

  • sessions/new.html.erb
  • sessions/simple_login.html.erb
  • sessions/api_login.html.erb
  • login.html.haml(こいつはlayoutファイルにあった。)

と4つほどログインフォームを実装したものが出てきて、似たようなHTMLが4つ書かれていました。
sessions/new.html.erbに至ってはそもそも使われていませんでした。

あまりにも衝撃的で僕は爆笑し、事情を知らないmzpさんはドン引きしていました。

さらにsessions/login_fail.js.erbというファイルがあり、
ログインに失敗した時なにかやるjsなんかあったっけと思い、見てみると、

f:id:renya-mizuno:20160302185405p:plain *1

としか書かれておらず、そもそも表示されることのないものでした。

ここであまりにも笑いすぎて腹筋が離れてちぎれました。

恐らく以前は使われていたが使われなくなった、または何かのタイミングで入りこんだものがそのままプロダクトに残った状態でした。

深淵を覗いてしまった僕は、とりあえず使われていない不要なファイルは消して、共通化できる部分は共通化しました。

不要なものは消え綺麗になりました。

f:id:renya-mizuno:20160302182741p:plain

今日も平和が保たれた。

他に消したやつ

他にも色々見てみると無駄なものがありました。

  • 使われていないのに残ってたpartial template
    • 消した機能の画面だけ残っていた
  • 長期間pendingしてるspec
    • 外部連携先サービスの開発用サーバにつなげるテストだったが先方での運用が終了したため、pendingにして放置されていた
    • この世に生まれた時からpendingにされていて一度も実行されることなかったspecもあった
  • 無駄なスタイルシート

以上のようなものがあり、いずれも消しました。

まとめ

コードを全部消したり捨てたりするのは、精神的に「うっ。」となることがあり、なかなか消せないことがあったりします(僕個人の問題でもありますが)。 特に苦労したところとか、自分以外が書いた部分とか。

ですがそんなこと言っててもいらないものはいらないし、不要なので消してしまおう。と最近は思うようになりました。

不要なプロダクトコードを消したり整理することで、見通しも良くなり無駄なテストも見えてきてテストコードもキレイになっていきます。

ということで、深淵を覗いてしまった時は積極的に消していこうな。

*1:ネタじゃない。ホントのことさ。