The Daily WTF 日本語
フォロー
CodeSOD: この一件のためにバーを見つけろ
このテキストは、FooとBarエンティティ間のデータを同期するために使用される、設計の悪い「データポンプ」アプリケーションを批判しています。このアプリケーションは、Quarkusで書かれ、レガシーシステムとやり取りする夜間バッチジョブを含んでいます。バッチジョブの主な機能は、Fooエンティティに基づいてBarエンティティを特定し、更新することです。コードは、Barエンティティの欠落をフィルタリングする代わりに、すべてのFooエンティティを取得するため、非効率的です。中核的な問題は、複数のWebサービス呼び出しを行うトランザクション内の更新プロセスにあります。この設計は、タイムアウト、競合、データベース接続の枯渇といったパフォーマンスの問題につながります。長期間続くトランザクションの使用、Webサービス呼び出しの数、適切な接続プール設定の欠如がすべてこれらの問題に寄与しています。著者は、トランザクションを手動で管理する必要性と、Webサービスの不安定さを批判しています。根本的な問題は、参照的に不正なデータを作成することにつながるバッチジョブアプローチそのものです。著者は、再設計によってバッチジョブが完全に排除され、状況が改善されることを示唆しています。テキストは、パッケージ管理プラットフォームの広告で締めくくられています。