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