CodeSOD:为这一条找个酒吧
该文本批评了一款设计不良的“数据泵”应用程序,用于在 Foo 和 Bar 实体之间同步数据。该应用包含一个使用 Quarkus 编写的夜间批处理作业,并与遗留系统交互。该批处理作业的主要功能是根据 Foo 实体识别并更新 Bar 实体。然而,代码会检索所有 Foo 实体,而非仅筛选出缺失对应 Bar 实体的记录,导致效率低下。核心问题在于更新过程发生在事务中,且该事务会发起多次 Web 服务调用。这种设计引发了性能问题,包括超时、竞争以及数据库连接耗尽。长事务、Web 服务调用数量过多以及缺乏适当的连接池配置,均加剧了这些问题。作者批评了手动管理事务的必要性以及 Web 服务的不可靠性。根本问题在于批处理作业本身,它导致了引用不一致数据的产生。作者指出,重新设计将彻底消除该批处理作业,从而改善现状。文本最后附带了一个包管理平台的广告。