На DZone появился материал Ганеша Самартьяна (соавтора книги «Refactoring for Software Design Smells») о десяти распространённых code smells в Java-коде: антипаттернах, с которыми код скомпилируется и запустится, но будет «плохо пахнуть».
В их число включён, например, «класс-клон»: ситуация, когда один класс полностью совпадает с другим, но при этом не связан с ним наследованием. Как пишет Самартьян, если у двух классов общие данные и поведение, то им следует задавать общий родительский класс; кроме того, зачастую классы-клоны появляются при бездумном копипейсте, когда никакой реальной потребности во втором нет и стоит просто ограничиться одним.
Впрочем, в комментариях немедленно обнаруживается возражение: «В “классах-клонах” я усматриваю DTO, а они, по-моему, относятся к лучшим практикам». А затем идёт возражение на возражение. В общем, в мире всё как обычно: вопрос «как кодить хорошо, а как плохо» по-прежнему вызывает разногласия.
В их число включён, например, «класс-клон»: ситуация, когда один класс полностью совпадает с другим, но при этом не связан с ним наследованием. Как пишет Самартьян, если у двух классов общие данные и поведение, то им следует задавать общий родительский класс; кроме того, зачастую классы-клоны появляются при бездумном копипейсте, когда никакой реальной потребности во втором нет и стоит просто ограничиться одним.
Впрочем, в комментариях немедленно обнаруживается возражение: «В “классах-клонах” я усматриваю DTO, а они, по-моему, относятся к лучшим практикам». А затем идёт возражение на возражение. В общем, в мире всё как обычно: вопрос «как кодить хорошо, а как плохо» по-прежнему вызывает разногласия.