見出し画像

30分で意味のあるコードを書くために

去る12月1日、会社でt-wadaさんの講演会があった。

エンジニアとして学び続けるための工夫について、2時間半たっぷり話を聞くことができた。私の質問にも多く答えていただくことができ、とても幸せな時間だった。

講演の中では、アウトプットをすることがインプットを引っ張るという話を強調していた。今回の講演の内容について、Blogなどでレポートを書くのも一つのアウトプットであるとのこと。このため、講演中の質疑応答の一部を抜粋した上で、感想をまとめる。

質問:「1日30分でもいいので、コードを書く」ということだが、短時間で成果を出すのは難しいと思う。そのために何か「仕込み」をしているのか?

回答:30分で成果を出すためには、仕込みが大事。「問題を小さく分解する」というのが仕込みに当たる。そのために、個人的には、テスト駆動開発で書いている。大きなゴールは30分では到達できないが、テストから書くことでゴールを小さく分解することができる。

自分のプログラミングスタイルとしては、「ボトムアッププログラミング」である。動いているものを組み合わせて、最終的に大きいものをつくるという考え方。このスタイルを取ると、30分で成果を出しやすい。その癖が自分についていることが、短時間でアウトプットを出すということに繋がっていると思う。

これはスキルの話であって、訓練すると上手になるが、いきなりできるというものではないとは思う。個人的には、テスト駆動開発やLispを学ぶことで鍛えられた。

感想:レガシーコードでは、毎日「仕様化テスト」を書くのがよいかも

個人的には、今年は「息をするように」テストを書くことができた年であった。たしかに、テスト駆動開発であれば短時間で成果を出しやすい。Tomcatの起動時間を待つこともなく、E2Eテストだと準備に時間がかかるケースもすぐにテストすることができる。

単体テストのないレガシーコードにおいても、新しく「仕様化テスト」を書くことは有効である。今年、業務で書いたコードのほとんどは、仕様化テストを書いた上で実装することができた。これを習慣化させるかたちであれば、毎日、意味のあるコードを書き続けることが達成できるかもしれない。


講演で用いられたスライドはこちら。

Cover photo by Agê Barros on Unsplash

この記事が気に入ったらサポートをしてみませんか?