Язык волшебников считается вредным?
Мастера могут запускать функции. Они также могут запутать ваш код и против YAGNI.
В целом, как вы думаете, волшебники более полезны или более вредны?
4 ответа
Они более полезны, чем вредны, если и только если вы понимаете код, который они генерируют. Только после того, как вы освоите проблему, мастер пытается решить ее, они действительно полезны. В противном случае вы столкнетесь со стенами позже в проекте, потому что сгенерированный код в какой-то момент нуждается в модификации.
"Закон неглубоких абстракций" на самом деле прибивает его к голове.
Они там по причине - чтобы попытаться сделать вашу жизнь проще. Они могут быть полезны и сэкономить вам 5 или 10 минут набора текста. Конечно, лучше прочитать и убедиться, что вы понимаете, что они написали для вас.
Если вы используете их без понимания, то они могут считаться вредными в том смысле, что они позволяют вам не учиться чему-то, что вы, вероятно, должны знать, но в целом я думаю, что это хорошая вещь.
Мастера хороши тогда и только тогда, когда вы можете избежать редактирования кода, который они генерируют. В этой ситуации они по сути являются языком программирования очень высокого уровня. Когда вы передумаете о том, что было сгенерировано мастером, вы можете снова запустить его.
Волшебники являются ужасно злыми, если вам когда-либо приходится редактировать код, который они генерируют. Если вы сделаете это, а потом передумаете об одном из вариантов, которые вы сделали в мастере, то вам придется выбирать между двумя очень плохими вариантами. Вы можете перезапустить мастер и повторно применить ручное редактирование, или вы можете попробовать отредактировать несколько копий стандартного кода, который мастер создал в первый раз. В первом случае вы, скорее всего, забудете хотя бы одно из ваших правок, а во втором случае вы, скорее всего, пропустите хотя бы одно из мест в коде, на которое повлиял ваш выбор во время работы мастера.
Мастера "в основном безвредны", когда они генерируют инкапсулированную сущность - функцию, класс или набор классов - которые вам не нужно изменять и с которыми вы взаимодействуете через четко определенный, хорошо спроектированный интерфейс.
На другом конце спектра находится мастер, который генерирует скелетный код, который необходимо расширить и изменить. Это особенно хлопотно, если вы не можете изменить некоторые параметры мастера позже, не теряя свои правки.
Это все еще хорошо для профессионала, который может написать тот же код сам и использует мастер, чтобы сэкономить время. Однако, когда они используются для того, чтобы что-то сложное выглядело легко для новичков, они разрисовывают ржавую машину: они помогают продавать то, что иначе вы бы не купили.
На практике они все еще могут быть полезны для облегчения принятия платформы. Но это бизнес-аспект, и вопрос о том, могут ли бизнес-аспекты оправдать грубые ошибки кода, является вопросом среды разработки.