Web開発経験ゼロの新卒が入社半年を経て気付いてしまったこと

こんにちは、18年度新卒の田島です。前回は新人研修の模様についてお話しさせていただきましたが、今回は私が入社半年を経て気付いたことについてまとめたいと思います。

はじめに

私は現在メディアユニットに配属し、Milly や暮らしニスタなどの運用保守や機能改善を行っています。Web メディアという媒体の特性上開発するべき機能は大きくないものの大量に存在するため、常に優先順位付けを行いつつ着手しています。リリースしたものから順に効果検証を行い、更なる変更や改善を行うこともあります。そのため、非常にスピード感のあるアジャイル開発といってもよいのかもしれません。

そんなめまぐるしい環境で学んだことの中から特に感じたことを、設計や開発の観点から3つ紹介いたします。

コーディング規約の重要性

入社前私は個人で Java などのコーディングを行っていたのですが、入社前と入社後で最も大きく違いを感じたのはチーム開発であることによるコーディングに対する意識の違いでした。特に、コーディング規約が開発スピードや成果物の質に非常に影響を及ぼすということに気付きました。コーディング規約が守られているコードはそうでないコードと比べて読みやすさが段違いであり、読んでいてとても理解しやすいものでした。また機能拡張を行う際にどのような場所にどのようにコーディングすれば良いのか明確であるために実装もとても捗ることが分かりました。

入社当初はその重要性に気づかず、正直なところ周りのコードに合わせてなんとなく規約に違反しないよう実装するだけでしたが、最近はソースコードやモデルの持つ役割を考えて適した実装ができるように心がけています。またこれは余談ですが、レスポンスの変数名や形式などが統一されていない外部 API に苛立ちが湧くようになりました。

f:id:tajima-ryo:20181205173725p:plain

プルリクエストのテンポ感

次に強く感じていることは、コードレビューのためのプルリクエストは早く出せば出すほど良いということです。もちろんプルリクエストを出す前に規約違反やつまらないミスなど、レビュアーに指摘されると恥ずかしい(+そもそもレビュアーの時間を取らせてしまい申し訳ない)点を修正する確認作業は必要です。しかし、指摘を恐れて必要以上に自分のコードを点検したりプルリクエストを出すのをためらうのは良くないことだと気付きました。

入社から数ヶ月経ち最近は自分自身も他の人のプルリクエストをレビューするようになりました。そこで特に感じることは、レビュアーがコードレビューに取れる時間やタイミングは限られているということです。プルリクエストを遅らせることはレビューのタイミングを遅らせることになり、アドバイスの数やタイミングも遅くなってしまいます。特に期日が明確なタスクではテンポ感を大事にしていきたいと感じました。

f:id:tajima-ryo:20181205173753p:plain

テストの難しさと重要性

そして、最後の気付きはテストの難しさと重要性についてです。十分なテストは非常に難しく、フロント側のテストはある程度フォーマット化して進めようとしても抜け漏れが発生してしまう場合があります。また API に対してはテストコードを書いているのですが、想定されるデータや考えるべき状況を把握しなければならないのは非常に大変です。

しかしテストを十分に行うことで、リリース後に不具合が発生することを抑えられるのはもちろん、実装した機能が今後拡張された際にうまく動かなくなるということを避けることができます。そのため、テストを行うことは非常に意味のあることだと感じました。まだまだ自分のテストには抜け漏れが多いのですが、今後も継続的に取り組むことで解消していきたいです。

終わりに

今回まとめたことは熟達したエンジニアの方々にとっては当たり前のことかもしれません。しかし、こういった当たり前の気付きを自分の実体験として重ねていくことでエンジニアとして一歩一歩成長できるものと考えております。今後もこういった当たり前の気づきを糧に成長できるように努力を続けていきます。それでは、次回もよろしくお願いいたします!