2013-09-23

さすらい

とあるプロジェクトフロントエンジニアとして手伝っていて、2500行程度のそびえ立つクソなJavaScriptの改修を頼まれていた。

git blame しただけで最低でも10人このJSファイルコードを追加していることがわかった。最初コミット2010年2月ごろだから最初からいるエンジニアの人に話を聞いてみたらこのJS20人近い人がいじっているらしい。

別に関わっている人数とかはどうでもいいんだけど、変数名が謎すぎたり、関数名前と中身の挙動が合っていなかったり、まぁひどいコードで、それを半月ぐらいかけて、個人的な安心感を高めるためにも最初はheadless testとかcapybaraでテストをもりもり書いて、カバレッジを高めて(期間的に100%にはできなかったけど、C0で70%ぐらい)からリファクタリングしていたら最終的にCoofeeScriptに変換して700行ぐらい(JS1000行ぐらいかな)になる予定(追加開発があればまだ増えるかも)。消えた部分は使われていない関数とか無駄な処理とかコメントだったかな。

だいたいなんでこんなことになったかっていうと、経営者がアホな要求ばっかり今までドキュメントを用意していなかったりするからそびえ立つクソコードが生まれたという感じ。CoofeeScriptにしたのもある程度書式を固定したかたから。

同時にGithubPRベースの開発も導入した。俺が入った時には他に3人のフロントエンジニアがいてその人達コードを見ながらもやってた。その人たちはあんまりプログラマとしての能力が高くなかったのでPRベースJSの基礎なんかを教えながらやってた。プロジェクトに入ってからは俺はずっとテスト環境を整備していて、今いるプロジェクトメンバーはまだテストをかける状態じゃないから、PR送られてきたらそのブランチに対してテストを追加したコミットをぶん投げるという感じで進めていた。

もちろん、PRからJenkins連携してテストを走らせるようにしたらフロントエンドチーム、3人ともかなり安心感をもって開発をすることができましたとさ。俺はこのプロジェクトとは今月末でさよならから、俺の仕事ドキュメント書いたりレビューをする文化根付かせて終わりって感じかなー。

あと、JSテストとかViewテストの仕方3年前にくらべるとだいぶ情報が増えてきたし、フロントエンジニア〜な人達テストに身を委ねてみるといいと思った。

あー楽しかった。この世のクソ(ただし金は生んでる)コードをまたひとつ潰せた。

  • CoofeeじゃなくてCoffeeな。 MacbookAirを小脇に抱えてスタバの看板を観察してみてくれ。

  • なんだろ、元増田はネットで調べた擁護を散りばめただけのくだらない釣りだと思うんだが、 「coofee」ってのは、どういう意図が。。。? わざとなんだろうか?でも、このわざとって意...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん