Язык волшебников считается вредным? - PullRequest
2 голосов
/ 02 ноября 2008

Мастера могут запускать функции. Они также могут запутывать ваш код и против YAGNI.

В целом, как вы думаете, волшебники более полезны или более вредны?

Ответы [ 4 ]

7 голосов
/ 02 ноября 2008

Они более полезны, чем вредны , если и только если вы понимаете код, который они генерируют. Только после того, как вы освоите проблему, мастер пытается решить ее, они действительно полезны. В противном случае вы столкнетесь со стенами позже в проекте, потому что сгенерированный код будет нуждаться в модификации в какой-то момент.

«Закон прохудившихся абстракций» действительно прибивает его к голове.

2 голосов
/ 02 ноября 2008

Мастера хороши тогда и только тогда, когда вы можете сойти с никогда редактирования кода, который они генерируют. В этой ситуации они по сути являются языком программирования очень высокого уровня. Когда вы передумаете о том, что было сгенерировано мастером, вы можете снова запустить его.

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

2 голосов
/ 02 ноября 2008

Они здесь по причине - чтобы попытаться сделать вашу жизнь проще. Они могут быть полезны и сэкономить вам 5 или 10 минут набора текста. Конечно, лучше прочитать и убедиться, что вы понимаете, что они написали для вас.

Если вы используете их без понимания, то их можно считать вредными в том смысле, что они позволяют вам не учиться чему-то, что вы, вероятно, должны знать, но в целом я думаю, что это хорошая вещь.

1 голос
/ 02 ноября 2008

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

На другом конце спектра находится мастер, который генерирует скелетный код, который необходимо расширить и изменить. Это особенно хлопотно, если вы не можете изменить некоторые опции мастера позже, не потеряв свои правки.

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

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

...