2023年4月のふりかえりです。 引き続き B 社(週4日)にて Rails 製の EC サイトの開発業務と Engineering Manager / Scrum Master 業務に携わっています。

B 社

4 月はマネジメント 2 割、プレイヤー 8 割といった割合で対応していました。

マネジメント系

  • エンジニア育成
  • TechLead 業務
    • ひきつづき各エンジニアの成果物のレビューや、設計方針の相談・レビューなどに時間を使っています。
    • ひきつづき 2023 年の開発チーム全体の方向性に思いを馳せる時間をとっていました。
      • スキマ時間で資料を作り始めています。

プレイヤー系

  • フロントエンド全般
    • storybook 7 が来たのでバージョンアップしました。マイグレーションコマンドが大変すばらしくてほぼそのまま実行しただけでバージョンアップできました。
    • webpack から vite に載せ替えようかな〜とも思いましたが、特にビルドが遅いなどもないので一旦据え置きとしています。
    • Core Web Vitals の CLS が高すぎるページが大量にあり、いくつかの対応をおこないました。
      • bxslider を使っているページが異常に高い CLS 値になっていた問題に暫定対応を入れました。
        • bxslider 自体レイアウトシフトを完全になくすことは難しそうだったためさっとできる範囲で暫定対応をいれましたが、本対応としては作り直す前提で設計を始めています。
      • bxslider を撤去して新しいカルーセルUIを実現するためのReactコンポーネントを実装中です。
        • この開発中に画像の lazy ロードについて調査していく中で、 img loading=lazy を使っても大丈夫な時代になってきたのを確認できたので、このコンポーネントからすべて img loading=lazy を使うようにし始めました。
        • Can I use の状況は こちら のとおりです。IE11 終了に伴い移行できるようになっていました。
  • 検索関連
    • 検索の新しい設定を投入しました。
  • レガシーなUIの調整
    • レガシーRailsのフレームワークとしてSolidusを利用しています。また、認証機構として Solidus Devise という gem も利用しており、この gem が出力する認証まわりのUIに意図したスタイルがあたっていない問題などがあったため、これらを改修していきました。
  • b-dash へ新しいデータの同期を行うことになったため、各種調整、データ定義、実装など行いました。
  • レガシーRailsからCloudFrontと通信する部分で OpenTimeout が結構な頻度で発生していたため対応を行いました。
    • モノ日期間に入っているため rps が上昇している背景からのエラー発生数が上昇しているだけという認識です。
    • rails=>CF間の通信に open-uri を使っていましたが、このgemの通信のデフォルトタイムアウト値が60secsだったため、エラー発生毎に60secsアプリケーションサーバーのプロセスが掴まれてしまうのがよろしくないということで、タイムアウト値を5secs程度に下げる対応をいれました。
    • またこの通信自体毎回行う必要はない通信であることから結果をキャッシュしてrails=>CFへの通信自体を削減する対応も合わせて入れました。
    • 上記の対応を入れたあとは OpenTimeout 発生はゼロになりました。完璧ですね。
  • Developer Productivity Engineering 関連
    • Datadog のログ流量の調整をおこないました
      • Lambda や ECS のコンテナが増えてきたこともあり、ログ量が結構増えてきていまして、そちらへの対策になります。
    • Datadog の契約まわりのみなおしを行いました。
      • annually の契約に回したほうがいいアイテムを切り替えていく対応をおこないました。
    • これまでパッケージ更新に renovate を利用していましたが、Dependabot にも同様の機能が搭載され始めているのを見かけていくつかのリポジトリで移行してみました。
      • renovate よりも若干機能が劣っており、特に特定の条件で一括で複数のパッケージを更新する機能がないのが痛いところです。
      • 一方で renovate よりも大変安定して動作する様子が見受けられているため、折を見てすべてのリポジトリを Dependabot に移行しようと思っております。
    • Elasticache Redis のセキュリティパッチが来ていたので該当インスタンスたちにパッチを当てました。
      • 停止時間が長めになる予想だったためメンテいれて対応が必要となり、ひと仕事な感じでした。

おわり