未経験からロボット関連システムのバックエンド開発へ。PRをマージするまでに学んだこと
Photo by Emilipothèse on Unsplash
未経験からIT業界に入り、現在はロボット関連システムのバックエンド開発案件に参画しています。
以前は、開発案件への参画に向けて、先輩が書いたコードを読み、分からない点を調べることを中心に学習していました。新しい機能を次々と実装するというよりも、既存コードの処理の流れや、設計の意図を理解する時間が多く、「なぜこの書き方になっているのか」を考えることの大切さを学びました。
現在の案件では、Go / GraphQL を中心としたバックエンド開発に携わっています。直近では、GraphQL APIの軽微な機能追加、DBマイグレーションによるカラム追加、シードデータ投入、Resolver経由でDBの内容を返却する処理などを担当しました。
機能としては大きなものではありませんが、DBスキーマを変更し、初期データを用意し、APIとして返却するところまでを実装する中で、バックエンド開発の一連の流れを実務として経験できたことは、自分にとって大きな学びでした。
また、Goのログ基盤改善にも関わりました。Contextを利用した認証情報の取り扱いや、Datadog連携を意識したJSONログ出力、既存のlogger呼び出しとの互換性などを考えながら実装を進めました。
その中で、単にコードを書くことだけでなく、既存のパッケージ構成や依存関係、import cycleを避けるための設計、nilの場合にも安全に動作することなど、実務ならではの観点を意識する必要がありました。
特に印象に残っているのは、GitHubを用いた開発フローです。PRを作成し、レビューを受け、指摘に対応し、Conflictを解消し、最終的にマージするところまでを経験しました。
最初はPRを出すこと自体にも緊張がありましたが、実際にレビューを受けながら修正し、チームの中で確認を進めていくことで、「自分の変更をチーム開発の流れに乗せる」という感覚を少しずつ掴めてきたように感じています。
もちろん、まだ分からないことは多くあります。既存コードの意図をすぐに読み取れなかったり、影響範囲の見積もりに迷ったり、レビューコメントの背景を考える必要があったりと、日々キャッチアップの連続です。
それでも、以前のように「コードを読むだけで精一杯」だった状態から、実際に機能追加を行い、PRを作成し、レビュー対応を経てマージまで進められたことは、自分の中で一つの区切りになりました。
未経験から開発に入ったからこそ、分からないことをそのままにせず、調べること、質問すること、確認しながら進めることを大切にしています。
今後は、Go / GraphQL / React / AWS などの理解を深めながら、実装だけでなく、設計や品質、運用面にも少しずつ関われるエンジニアを目指していきたいです。