今年の4月からGMOペパボでエンジニアとして働いています。
研修が終わりプロダクトに直接携わる
エンジニア研修が終わり、すべての研修を終えました。
8月18日からはそれぞれ事業部に配属され、実際に業務を始めました。
研修に関する記事
https://.pepabo.com/2022/07/26/web3-conference-tokyo-2/
https://.pepabo.com/2022/07/22/tdd-shop-2022/
https://.pepabo.com/2022/07/21/12th-datacenter-tour/
https://.pepabo.com/2022/07/14/12th-training-frontend/
社会人になって1週間
GTB振り返り
OJT
配属後のOJTでは、最初に開発環境の構築や、必要なツールのアカウント作成等を行いながらツールが何のために使われてるのか把握し、プロダクト開発に必要な基礎知識を学びました。
その後は、以下のようなgood first issueに取り組みました。(どこまで言ってもいいのかわからないので結構ぼかして書きます)
- 日本語のみのページを翻訳して英語にも対応する(i18n [1])
- 管理画面における新機能の実装
研修と違ったところ
既存のコードを理解して、開発する
プロダクトのコードに触れ、どこにどんなコードが書かれているかの学びつつ、既存のコードを参考に機能の実装をしていきました。研修では、一から作ることが多かったので、今あるコードを理解し、実装するのは戸惑いました。
先輩の助言や大学の研究で既存のコードをもとに開発を進めて行くという経験を活かし、実装の流れを掴むことができました。
リリース作業
研修ではローカルで動かすだけだったり、mainブランチにプッシュしたら自動的にデプロイされるので、しっかりとしたリリース作業は行ったことがないです。
検証環境で実際に動作を確認して、本番環境にリリースするといったリリース作業を行いました。
英語対応のリリース作業中、検証環境で翻訳漏れを見つけました。それを修正するためのブランチを切って、検証環境に取り込むという事も行いました。本来であれば、問題ない状態でリリース作業を行うべきですが、早い段階で問題があった時の対応も学べたのでそれはそれで良しということで...
ユーザーさんがいる
当たり前ですが、サービスを利用してくださるユーザーさんがいます。自分で作った個人サービスの場合、ユーザーは自分か友人なのでバグや障害でデータが復旧できなくても問題にはなりません(もちろんデータを復旧できるほうが良い)。
会社で運営している以上、そのようなことはあってはならないので、自分の書いたコードの確認やリリース作業はとても慎重になりました。コードを書いてからもこれで本当に正しいのかという納得するまでに時間が掛かりました。
管理画面における新機能実装では、新しくテーブルを作り、バックエンドのプログラムを書いていました。バックエンドはフロントエンドよりもサービスの稼働に影響が大きいと思っているので、リリースをしてからその日は障害が起きないか不安になっていました。
ここまでで学んだこと
コード以外も見てもらう
「どの様に要件定義をして、なぜこの実装に至ったのかを考えるのもエンジニアリング」というレビューを頂きました。
それからはコードを書く前に、どんな要件で、なぜその実装に至ったのかをまとめて、分報に書き込こみました。後から自分がなぜこの実装にしたのか知る事もできる上に、他の人に実装の意図を伝える際にも利用出来ます。
テストは書くと良い
機能を実装する際に、テストも書いていました。
テストの実行結果から仕様を読み取れることができれば、書いた本人がどういう意図でテストケースを書いたかがわかり、コードのメンテナンス性が向上します。
t_wadaさんによるTDDワークショップを開催しました
テストを書くことで、テストが仕様を示すドキュメントとして機能します。レビュー時に「テストがあったのでわかりやすかったです」というコメントを頂き、嬉しかったです。
既存のコードを読んでいるときも、テストがあると仕様が分かり、コードリーディングがしやすかったです。テストを書くことで既存のコードを理解しやすくなり、メンテナンス性は本当に向上すると改めて実感しました。
感想
コードレビューは恥ずかしさ、怖さがありましたが、コードレビューを何回かして頂く事で、慣れました。
コードレビューで自分では思いつかなかった実装を知ることができ、大変ためになることもわかりました。
これからもたくさんのgood first issueが待っているので楽しみです!
internationalization. 国際化対応。 ↩︎