ボタンをページに書き込む厄介なクラスを持つプロジェクトに参加しました。アプリはドキュメント マネージャーであり、ダウンロード、電子メール、印刷などのボタンのポップアップ リストがあります。ユーザーの役割とドキュメントの状態に応じて、さまざまなボタンが表示されます。
他の WTF の中には、次のようなものがあります。
bool showEditButton = document.docTypeId == documentEnum.docType.text &&
( document.statusId == documentEnum.docStatus.Editable || (user.UserStatus == userEnum.Status.SuperUser) || ( user.UserID == document.CreatedByUserId ) )
何が起こっているのかわからなくなるまで、などなど。
これがより深いアーキテクチャ上の欠陥の単なる副作用なのか、それとも許可とステータス値の混合をチェックするための良い方法があるのか どうかはわかりません. これらのクレイジーな条件をメソッドにすべて入れて、それを忘れるべきですか? ただし、次のプログラマーがプロジェクトを継承するメリットはありません。