手続き型からオブジェクト指向コードへの変換
大規模なASP.NET Webフォームアプリケーションの既存のコードベースのクリーンアップを開始する方法に関する戦略を学習することを目的として、「レガシーコードとクリーンコードの効果的な使用」を読んでいます。 このシステムは2005年から使用されており、それ以来多くの機能強化が行われています。もともと、コードは次のように構成されていました(そして、まだ大部分はこのように構成されています): ASP.NET(aspx / ascx) コードビハインド(c#) ビジネスロジックレイヤー(c#) データアクセス層(c#) データベース(Oracle) 主な問題は、コードがオブジェクト指向のように手続き的に偽装されていることです。これは、両方の本で説明されているすべてのガイドラインに事実上違反しています。 これは、ビジネスロジックレイヤーの典型的なクラスの例です。 public class AddressBO { public TransferObject GetAddress(string addressID) { if (StringUtils.IsNull(addressID)) { throw new ValidationException("Address ID must be entered"); } AddressDAO addressDAO = new AddressDAO(); return addressDAO.GetAddress(addressID); } public TransferObject Insert(TransferObject addressDetails) { if (StringUtils.IsNull(addressDetails.GetString("EVENT_ID")) || StringUtils.IsNull(addressDetails.GetString("LOCALITY")) || …