社会人2年目エンジニアが1年目に心がけたこと。

記憶が曖昧になってしまいそうなので、忘れぬうちにメモ書きとして残しておきます。

いまは社会人2年目のWebエンジニア。サーバサイドエンジニアのつもりなのだけれどフロントも書くし(だが苦手)、インフラも気になる生活をしています。

Web系の開発初めてで学生時代はC++Javaぐらいしか書けなかった自分が、社会人1年目の時に教えられたことを書いてみました。


フレームワークのドキュメントを参照する

入社後の3ヶ月の新人研修を終えて、アサインされたのは Laravel へのリプレイスプロジェクトでした。 Laravel の基礎は社内勉強会で身につけていたものの、本格的な開発は未経験でした。

プロジェクトに配属されて、一番はじめに言われたことは「Laravelの公式ドキュメントを読みなさい」でした。 英語で書かれたこちらのドキュメントです。

laravel.com

ぐぐると日本語の情報がたくさん出てくるのですけど、それを読んでたら「そのページって、うちの開発で使ってるLaravelのバージョンとは限らないし、そもそも誤った情報の可能性あるよね」と叱られました。1

というわけで、実装に困ったら公式ドキュメントの該当部分を参照する習慣をつけました。ドキュメントは体系的に書かれているので、とりあえず通勤中に他の項目も読んでみることにしました。そしたら、普段の開発であまり使わないMVC以外の部分、例えば middleware の役割や Collection の機能、Custom Validation の実装などを知ることができました。開発で必要なライブラリは既に実装されていたのですが、足りないものは実装してみようかなと思うようになりました。

フレームワークの実装を確認する

次に言われたことは「わからない処理があったらまずはプログラムの定義元を確認してね。もちろんLaravelの部分もね。」でした。

ここで、壁にぶつかりました。テキストエディタだと定義元に飛べないときがあるぞ、、!と。 テキストエディタでもアドインを入れたら大丈夫だと思うのですが、自分の場合はIDEに乗り換えました。PhpStormをインストールしました。

諸々設定をして、定義を確認しながら実装を進めるようになりました。定義元の実装を確認してみると、自分がこれから実装しようとしている内容が既に他で実現されていることが多々ありました。余談ですが、PHP7だと戻り値も含め型宣言ができてガチガチに書けるのが好きです。

Laravelの実装も確認する習慣もついたのですが、読み進めるとドキュメントに載っていない機能が実装されていることに気がつきました。結構あります。はい。最近は「これ実装されてるんじゃないかなー」と探すと大抵実装されています。

コードレビューする

そんなこんなで開発を進めていくと、ある日メンションのついたプルリクエスト(プルリク)が飛んでくるようになりました。

チームは自分以外ベテランのエンジニアだったのでコードレビューするなんて恐れ多い(というか指摘するところない・・・)と思っていると、どうも“一年目”のコードレビューの目的は「他でどんな開発が行われているか」「他の人の実装方法から学ぶ」「わからないところは質問する・調べる」ことなのだと理解しました。

自分の初めてのプルリクは100件ぐらいコメントがつくぐらいのとんちんかんな実装でした。ですが、他の人のプルリクに目を通していると、スマートな実装方法を知れたり、変数や関数のイケてる命名などを学べました。そんな過程を経て、プルリクで「修正してね」系のコメントは減っていき、逆に実装方針についての議論のコメントは増えていきました。

そして、気がついたらAssigneeに指定され、自分がコードレビューをするようになっていました。


他にも大切なことは多々あるのですが、技術面で特に心がけたのはこの3つでした。総じてコードを読む習慣はとても役に立っていて、不具合が発覚した際になぜその不具合が起きたのか、他で同じ不具合を防ぐためにはどうすべきか、他に発生しうる箇所はないのか考える癖がつきました。

そんなこんなで2年目を迎えています。

これから

開発環境が整っている会社だとアプリケーションやツール、インフラは当たり前のように動き、ブラックボックスとして使えてしまいます。ですが、それらはどれも誰かが作った・整備したものです。デプロイツールのコードからミドルウェアのパラメータ、運用ツールなど会社の中にはその道のプロが用意したものが沢山溢れています。最近はその構築の話やチューニングの話を伺ったり自分の環境で試してみたりして、知見を増やしているところです。

次に書くのは3年目でしょうか。2年目の夏休みに書いてみました。以上です。


  1. 正確には全く読んでいけないというわけではなく、一次情報を確認してね。という意図が含まれています。