はじめに
Webエンジニアにキャリアチェンジして、3ヶ月が経過しました。
今回は直近約2ヶ月間(6〜7月)の振り返りとなります。
目次
おもな仕事内容と得られた知見
入社直後にアサインされたプロジェクトを、7月のリリース完了まで引き続き担当しました。
(アサイン当初の話はこちら👇)
プロジェクト内で担当する領域としては、LaravelによるバックエンドとVue.jsによるフロントエンドの開発となります。
様々な機能の実装を行なったのですが、その中で特に印象に残ったこととして以下の3点があります。
- フレームワークの機能の把握
- 適度なドキュメント整備
- テストコード
フレームワークの機能の把握
今回のプロジェクトで作る各画面では、社内外のユーザーの権限やデータの状態に応じて、各データへの参照可否や更新可否を制御する必要がありました。
それらをどう実現するか・・・と、Laravelの公式ドキュメントを調べているとGateやPolicyといった認可の機能が見つかったので、これらの使い方を公式ドキュメントで調べながら順次実装していきました。
この認可に関しては自らフレームワークの適切な機能を選択して実装することができましたが、他の認可以外の機能に関してはレビュアーから
「Laravelではこれこれという標準的な機能があるのでそれを使った方が良い」
と指摘を受けることもあったので、フレームワークの様々な機能を幅広く把握しておくことは重要だと感じました。
そのフレームワークを選択しているからには、フレームワークの思想や設計に準じて実装していくことが求められる・・・と考えるからです。
このあたり、経験や知識量が多分に関係してくると思うので、
- 日頃から公式ドキュメント等でインプットしておく
- 一方で、そのフレームワークでの開発経験が長い周囲のエンジニアに早めに相談して手戻りの発生を抑える
といったことをバランス良く行うことが大切かな、と思います。
適度なドキュメント整備
前述の認可では、ユーザーの権限やデータの状態、操作内容といった可否の組み合わせが多岐に渡りました。
そのため、実装漏れが無いよう、いったん対応が必要な箇所をドキュメントに洗い出した上で、順次実装していくことにしました。
前職でIT関連の利用部署にいた時は膨大なドキュメントと付き合っており、それに対して現職ではドキュメント作成は必要最低限とする文化にあると思っていますが、この認可の仕様に関しては抜け漏れ防止の面であらかじめドキュメントを整備しておいて良かったと思います。
テストコード
今回のプロジェクトで、最も重要な機能のひとつが、バッチ処理や画面での入力に応じて金額の計算を行う、というものでした。
これに関しては、テスト駆動開発、とまでは行きませんでしたが、金額計算の実装がある程度終わってから、それを追いかけるようにテストコードを書きました。
職場の環境では、開発したコードは必ず自動でテストが実行される仕組みになっています。
ですので、いったん完成した金額計算のコードに新たに追加・修正を行う必要が生じた際も、作成済みのテストがあれば非常に安心感がありました。
適切なテストを書いていれば、追加・修正したコードを起因としてこれまでうまくいっていた金額計算に不備が生じる、ということを避けられるからです。
テストコードに対しては、
「こんな便利なものはもっと早くから書き始めれば良かった・・・」
という思いがあり、テストコードを書き始める前の自分を読者として想定して、チュートリアル風の記事をQiitaに投稿しました。
こちらがありがたいことに好評で、一時期デイリートレンド1位まで獲得し、200以上のいいねをもらうことができました。
社内のSlackでも、トレンド入りを採り上げてもらい、とても励みになりました。
初めてQiitaのトレンド1位取りました!
— やんばる@Webエンジニア (@shonansurvivors) August 1, 2019
読んでくださった方、ありがとうございます!
社内のSlackでもトレンド入りしたことを採り上げてもらい、みんなから
Cool!!😎
とのコメントもらえました😌https://t.co/HKbHqZuVR6 pic.twitter.com/NObrrzreMf
今後について
そんなこんなで3ヶ月目も経過したのですが、このたび職場で新チーム体制の発表があり、私はSREチームへの配属が決まりました。
職場で新チーム体制の発表があり、私の新しい所属は
— やんばる@Webエンジニア (@shonansurvivors) August 6, 2019
なんとSREチームになりました😆
入社以来Larave + VueのWebアプリ中心にやってきましたが
今後はAWSでのインフラ構築や、言語であればGoを書く感じになりそうです(他にも仕事は多岐に渡りそうです)
大変だと思いますが、がんばります😌
実際には9月からの配属なので、まだSREとしての実務には入っていないのですが、
- AWS全般
- Ansible
- CI/CD
- Go
などがキーワードになりそうです。
もともとSREには関心があって、いずれはやってみたいとは思ってたのですが、予想外に早くそのタイミングがやってきましたw
キャッチアップは非常に大変だと思いますが、SREという考え方や自社のインフラを細部まで把握できる(しなければならない)良い機会となるので、何とか頑張っていきたいと思います。
最後に
以上、Webエンジニア3ヶ月目の振り返りでした。
今後SREや、その他エンジニアとして学びや気づきがあった際にはまた報告したいと思います。