Цитата:
Ой, неужели сопоставление было написано уже после того, как Дамгаард продался Навижену?
Так о том и речь, что этот метод рефакторить нужно, а не комментировать.
Цитата:
Оно, конечно, здорово писать такой код, где имена говорят сами за себя, а методы содержат лишь дюжину-другую строк, но если модифицировать код системы не за счет бесконечных условных ветвлений в одних и тех же методах, а за счет использования ООП, то зачастую получаются классы-наследники, где перекрыты отдельные методы, обычно параметрические, или до/после вызова super() есть какой-то кусочек кода.
А при чем тут комментарии. Согласен, что наследование не лучшая часть ООП, хотя бы потому, что оно позволяет нарушить принцип Лисков. Есть куча других способов повторного использования кода, которые на страдают увеличением кол-ва зависимостей между классами.
Цитата:
Так вот, если не помнить наизусть, как работает родительский класс (а у меня лично иерархии наследования достигают подчас 4-х уровней, считая после RunBaseBatch), то код становится ну совсем непрозрачным, а предположения, в нем используемые, - совсем неочевидными. И в такой ситуации комментарий вида "эта переменная уже инициализирована там-то" спустя полгода-год позволяют намного быстрее разобраться в собственном же коде, не говоря даже про чужой.
4 уровня наследвания после RunBaseBatch говорят о том, что надо задуматься и, может быть, пересмотреть иерархию объектов. Вы сами об этом и говорите, когда пишете, что код становится непрозрачным. Только вы предлагаете расставить комментарии, а я считаю это полумерой и предлагаю рефакторинг.
Кроме того, почему то никто не упоминал, что комментарии имеют обыкновение устаревать по мере изменения кода, а устаревший комментарий хуже, чем отсутствующий.
Пойду даже дальше и признаюсь, что я считаю нецелесообразным даже помечать модифицированный код в стиле
В большой консалтинговой конторе с большой историей проектов и большим количеством программистов таких бессодержательных комментариев в коде становится больше, чем самого кода. Особенно это относится к клиническим случаям, когда старый код не удаляется, а комментируется.
Для решения подобных задач предназначены cvs - системы и, если я ничего не пропустил, со своей задачей они пока справляются.