ソフトウェア開発の現場では、属人化を避けるために「なんでもドキュメント化しよう」という文化がよく見られます。 ナレッジを共有し、誰がいなくなっても困らないチームを作るという考え方自体は、合理的で正しいものだと思います。 しかし、「なんでもドキュメント化しよう」という文化は、捉え方次第では技術の習得という観点で思わぬ弊害を生むことがあります。 属人化とドキュメントのジレンマ 例えば、ある...

続きを読む

はじめに 担当しているプロダクトには 「広告を入稿する」機能 があり、これは社内のユーザ部門の業務効率化が主な目的です。 今までのフローとして、お客様に「広告設定確認書」という書類を提出して、 その「広告設定確認書内の広告設定」を元に「当該の広告媒体へ入稿を行う」業務フローがありました。 このフローをシステム化することで、業務効率を上げていました。 システムの内部の処理は、 「独自ド...

続きを読む

Symfonyのretry_failed optionsを活用すると、APIリクエストが失敗した際に指数バックオフアルゴリズムによる再試行が簡単に実装できます。 本記事では、その設定方法と検証結果を紹介します :saluting_face: 指数バックオフアルゴリズム (Exponential Backoff Algorithm)とは ネットワークやAPIリトライなどで使われる「待ち時...

続きを読む

近年のWebアプリケーションでは、画面構成やUXの多様化にともない「より柔軟で効率的なデータ取得」の重要性が高まっています。 特にフロントエンドでは、不要なデータ取得や複数回のAPIリクエストが開発体験やパフォーマンスに影響を与えるケースも増えてきました。 よく使われているREST APIでは、エンドポイントごとに決まったレスポンスが返ってくるため、 フロント側の要件に合わせて「不要な...

続きを読む

はじめに 今年に入りチーム編成が変わり、バックエンドエンジニアからフロントエンドやインフラも触ることになりました。 詳しくはこちらをご覧ください。 その中でAngular v18環境でのフォーム実装に関わる機会があり、特にリアクティブフォームの「型の付け方」や「構成パターン」で混乱があったので、 本記事ではTyped Forms(型付きフォーム)におけるフォームオブジェクトの生成、型推論...

続きを読む