アノテーションのアプリ保守研修を受講してみて
アノテーション インフラチーム所属の髙橋隆太です。
2023年の 1月よりチーム異動でアプリ保守の業務がメインになり、研修を受けたので学んだことをまとめます。
研修では以下の2つの課題のツールの実装、テスト、ドキュメント作成を実施しました。
- Google Apps Script(スプレッドシート連携ツール)
- TypeScript で 実装
- テストコードは jest
- Slack のメッセージを スプレッドシートに書き込む
- Python(サーバーレスアプリ)
- テストコードは pytest
- S3 に Slack の特定のメッセージを 書き込む
- Serverless Framework を利用してAWS Lambda を デプロイし AWS Lambda から cron で特定の時刻に実行
課題内容で印象に残っていることや感想など
API 呼び出し
Slack API を利用して、Slack のメッセージを取得する課題を実施しました。
基本的に以下のように実装しました。
- 公式ドキュメントを読んでどの API が必要か確認する
- 再起処理が必要かどうかなどの細かい動作を確認する
- API を呼び出し json で必要な部分を抽出するコードを記載する
上記の動作はこれから何度も実施することになるので、しっかりと慣れていきたいと思います。
テストコードを書く
人生でほぼ初めてテストコードを書きました。正直とにかくこの作業は難しくて苦痛で、 先輩方に何度も相談しました。
テストコードを jest で書くときは以下のような悩みがありました。
- handller というメイン処理部分に if 文などの判定処理があったり、関数の中に判定処理があったりでテストコードがとにかく書きにくかった。
- グーグル検索しても基本的な内容しか出てこない or 検索にヒットしても難しくてわからない。
Python の課題でテストコードを書く際は Google Apps Script で記載したかなり書きにくいコードの反省を活かしてテストコードを書きました。
今でも苦手ですが、品質を保証するという意味では絶対に必要な過程だと思うので、調べながらでも最適なコードを書けるようにしたいです。
AWS が楽しい
Python のAWS の要件は以下になります。
- 課題要件
- Serverless Framework を利用してAWS Lambda にデプロイ
- 指定したS3 バケット内のファイルから 入力ファイルを読み込む
- 指定したS3 バケットに出力結果を書き込む
- 任意で実装した要件
- 指定した S3 バケットが存在するかどうかの確認判定
まだまだ、実運用する際には 環境変数を SSM パラメータストア を利用するなど 要件を追加することができると思いますが、 時間の関係でこのような設計になりました。 AWS 関連の資格をいくつか持っていて、初めて Lambda での実装をしたのでとにかく AWS での実装は楽しくやっていました。
課題管理
backlog を利用して課題管理を実施しました。リーダーの観点とメンバーの観点を意識して課題管理を実施してきました。 個人的には以下のような観点を持ちました。
- リーダーとしての観点
- メンバーの更新が遅くて不安
- 課題が多くて、期限に間に合っていないものがある
- メンバーとしての観点
- 複数の課題がある中それぞれ、課題のチケットを更新するのはめんどくさい
- 最終的に終わればいいのでは?
- A と B の課題があるとき、期限日に関わらず気分で B をやりたい。
- 全部終わったら更新すればいいかな。。。
こんな感じで研修していました・・・
まあリーダーとしては迷惑だなーと思いつつメンバーとして実装していました。
素直にこれは反省して現在の実務ではチケットの更新を頻繁に行うようになりました。
研修で特に気をつけようと思ったこと
進捗や他のメンバーに相談などありますが、研修を通して特に活かしたいことは以下になります。
- 初めて使う API などはドキュメントを読み、考慮点が抜けていないかしっかりと確認する
- テストコードの書きやすいコードを書く(メイン処理と関数内のコードの役割をしっかりと決める)
- 課題管理において、リーダーが不安にならないようにチケット管理をする
アノテーション株式会社について
- アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。