Метапрограммирование, сколько это слишком много? - PullRequest
3 голосов
/ 22 июня 2009

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

Ответы [ 4 ]

10 голосов
/ 22 июня 2009

Когда становится слишком сложно

  • тест
  • отлаживать
  • понять
  • 1010 * поддерживать *

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

8 голосов
/ 22 июня 2009

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

На полном серьезе, метапрограммирование может очень быстро стать чрезмерным, но пока код читабелен, он не влияет на что-либо глобальное в жутких тонах, а эффекты хорошо содержатся, и это нормально. Тем не менее, часто, когда вы входите в мышление метапрограммирования, вы забываете, как делать вещи обычным способом программирования. Метапрограммирование и ООП имеют много общего в функциональности, поэтому вы должны посмотреть, есть ли более простой способ достижения вашей цели. Иехуда Кац рассказывает забавную историю о таком злоупотреблении: http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/

5 голосов
/ 22 июня 2009

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

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

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

Но лучше рискнуть оказаться слишком мета. Возможно, вы читали типичное «некоторые программисты более продуктивны в 10 раз» ... Я считаю, что ключевым фактором для того, чтобы стать одним из этих 10х суперзвезд, является мета-мышление.

0 голосов
/ 22 июня 2009

если вы и ваша команда чувствуете себя комфортно с вашими приемами и своевременно достигаете целей проекта ... тогда вы не слишком углубились в метапрограммирование.

...