こんにちは~ Webエンジニアのマッシュルーム🍄です!
以前、「101点って、考えたことありますか?」という記事を書きました^^
今回は少し視点を変えて、「コード」に置き換えて考えてみたいと思います。
エンジニアなら一度は、
もっと良い実装があるんじゃないか
と考えたことがあるのではないでしょうか!
もちろん、その姿勢はとても大切です。
ですが最近、「101点」を目指すことが、必ずしも正解ではないと感じる場面が増えてきました。
📋 目次
1.100点のコードとは?
僕が思う100点のコードとは、
- 要件を満たしている
- 読みやすい
- 保守しやすい
- テストも通る
そんなコードです。
十分に品質が高く、実運用にも問題ありません。
ここまでは、多くのエンジニアが目指す理想だと思います。
2.101点のコードとは?
僕が思う101点のコードは、
「さらに良くしよう」と思った結果、必要以上に複雑になってしまったコードです。
例えば、
- 将来使うかもしれない設定項目
- まだ存在しない要件への対応
- 汎用化しすぎた共通処理
- 必要以上に細かく分割されたクラス
どれも善意から生まれています。
「後で困らないように。」
「将来の拡張に備えて。」
そんな気持ちで実装したことがある方も多いのではないでしょうか。
3.将来は、意外と来ない
開発をしていると、
将来こういう機能が追加されるかもしれないよね~♪
という話はよくありますよね。
ですが実際には、
その"将来"が来ないことも少なくありません。
結局、
- 使われない設定
- 呼ばれないメソッド
- 拡張されないインターフェース
だけが残ることもあります。
未来に備えたはずのコードが、未来まで保守対象になってしまうのです。
4.シンプルさも品質の一つ
コードレビューをしていて思うのですが、
短いコードだから品質が低いわけではありません。
逆に、設計が立派すぎて理解に時間がかかるコードより、
「なるほど、これならすぐ分かる」
と思えるコードの方が、長く生き残ることも多いです。
シンプルさは、決して妥協ではありません。
立派な品質の一つだと思っています。
5.完璧を目指すより、伝わることを目指す
コードは、自分だけが読むものではないですよね。
数か月後の自分。
同じチームのメンバー。
将来プロジェクトに参加する誰か。
その人たちが理解できることも、コードの品質です。
「賢いコード」より「伝わるコード」
最近は、そんなコードを書く方が難しいと感じています。
6.最後に
いかがでしょうか^^
もちろん、101点を目指すこと自体は悪いことではありません。
技術を磨こうとする姿勢は、とても大切です。
ただ、
「もっと良くできる」
と思ったときに、一度立ち止まって考えてみるのも悪くありません。
その1点は、本当に価値のある1点でしょうか。
それとも、
未来の自分やチームにとって、余計な1点になってしまうのでしょうか。
100点のコードを書くことは難しいですよね。
でも、100点で止める勇気も、同じくらい難しいのかもしれません。
それでは、また次回の記事でお会いしましょう~🍄

