早すぎる抽象化
@yuroyoro: 「早すぎる最適化」と同じように、「早すぎる抽象化」も危険だと思うんだけど、抽象化の場合は一概に全部早すぎることもなくケースバイケースなので、わりと経験知によるところが大きいのが難しいところ
/villagepump/早すぎる抽象化
@MinoDriven
クソコード動画「共通化の罠」
https://gyazo.com/c43933333195495bdc8040df52bd4beb
@itchie_tatsumi
格ゲーを開発していた頃、処理を共通化して整理していたら、開発終盤のバランス調整で特殊仕様が次々と追加され、共通関数の中が条件分岐の地獄になっていました。
「このキャラだけ投げ処理が特殊」「この技だけ硬直が違う」など、例外判定の連続です。
RPG開発でも、戦闘ロジックを一本化しすぎて、「攻撃や魔法に新しい属性」を追加した瞬間、相性によるダメージ処理の条件分岐が増えすぎて、とても複雑な構造になってしまいました。
「どこまで抽象化するか」の粒度の判断は、経験を積むとかなり慎重になります。特に昔は、マスターアップ直前までバランス調整を行うことが多かったため、多少の冗長性を残しておくほうが、後々の調整や拡張がしやすいことを痛感しました。
今では、有名RPGのナンバリングタイトルやアクションゲームのシリーズ作品などは、抽象化の粒度をうまく調整し、個性と汎用性、自由度と開発速度を両立していると聞きます。当該タイトルのテクニカルディレクターやリードプログラマーの設計思想の高さを、つくづく感じます。
/nishio/DRYと疎結合のトレードオフ