Нежелание рассматривать шаблонный код как главную проблему?Зачем?Контрмеры? - PullRequest
6 голосов
/ 13 июля 2010

Почти везде, где я работал, я встречал множество людей, которым было все равно, что они производили огромное количество шаблонного кода.

Для меня это одна из худших вещей за всю историю, это приводит к ошибкам, скучно и увеличивает шум.

Наихудшим примером может быть даже нежелание Microsoft придумать лучший синтаксис для этого надоедливого материала «INotifyPropertyChanged». Вы не можете использовать автоматически сгенерированные свойства, вы должны создать большую избыточность (реплицировать имя свойства в вызове «OnPropertyChanged» или как там вызывается ваш метод raiser).

Некоторые люди зашли так далеко, что согласились с тем, что большинство программ на многих языках программирования состоят в основном из одного и того же повторяющегося кода (шума), а не интересного материала (сигнала). См. MSDN - примеры, например, повсюду столько ненужного повторяющегося кода (ужасный «INotifyPropertyChanged» - паттерн, который разрушает весь поток, являясь лишь верхушкой айсберга).

Однако, когда я поднимаю эту проблему и предлагаю решения, такие как AOP (PostSharp.NET) или использую делегаты (для не-C # -фолков: анонимные функции, часто реализуемые с помощью лямбда-оператора), все, что я получаю, это «мы не все равно ".

Кто-нибудь еще здесь обеспокоен безумным количеством шума, вносимого стандартным кодом, и кто хочет подумать о способах продвижения решений к шаблону - проблема?

Ответы [ 2 ]

9 голосов
/ 13 июля 2010

Как бы то ни было, я полностью на вашей стороне.

Обычные люди утверждают, что повторяющийся избыточный код является «автоматическим» или «последовательным» и, следовательно, не способствует сложности кода. Часто, когда язык заставляет разработчиков создавать шаблон, индустрия создает IDE и другие костыли для автоматизации процесса. Затем, когда очевидная стоимость производства этого стандартного кода приближается к нулю, люди думают, что это ничего не стоит.

Они не правы: код Boilerplate вносит свой вклад в объем кода, и любой, кто обслуживает код, должен копаться в нерелевантном коде, чтобы добраться до важных частей. Кроме того, поскольку автоматически сгенерированный код можно и часто редактировать, он может скрывать ошибки, вызванные опечатками, неполным переименованием или другими происшествиями. Стоимость стандартного кода заключается не в его создании, а в его обслуживании, которое многие проекты пытаются полностью игнорировать.

В 80-х годах я видел торговые магии, намазанные рекламой отладчиков утечки памяти для C ++, и для меня это был очевидный признак того, что управление памятью в C ++ серьезно нарушено. Теперь, в окрестностях Java и C #, я вижу увеличение числа помощников по генерации кода, и это указывает на то, что у этих языков есть проблемы, которые лучше решать в других местах.

У Scala есть свои проблемы, но мне нравится то, что они сделали со свойствами и автоматически инициализирующими конструкторами.

5 голосов
/ 13 июля 2010

Просто убей их.Нет, действительно, если кто-то пишет шаблонный код и не хочет его улучшать, я сомневаюсь, что мы можем назвать его профессионалом.Часто случается, что руководство хочет, чтобы задачи выполнялись быстро, и единственное, что осталось, - это вытолкнуть некоторый шаблонный код только для записи, чтобы сделать их счастливыми.Если ваше руководство поощряет такой подход - смените работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...