【问题标题】:Metaprogramming how much is too much?元编程多少算太多?
【发布时间】:2010-11-04 22:52:05
【问题描述】:

随着我越来越习惯于使用元编程技术,我也发现了越来越多的元编程应用。我现在正在做一个小项目,在这个项目中我正在动态创建类和这些类的实例,我想知道我是否将元编程做得太过分了?是否存在过多的元编程?如果是这样,在哪里划界?

【问题讨论】:

  • 当它不再有用并且它比它解决的更复杂时? :)
  • 当你玩得开心而不是把事情做好时。

标签: ruby metaprogramming


【解决方案1】:

当它变得太难时

  • 测试
  • 调试
  • 明白
  • 维护

那么它可能太多了。 元编程应该简化您的日常开发。如果您最终花费越来越多的时间来维护复杂的代码库,您可能需要对其进行简化。

【讨论】:

  • 我想说,如果它变得更难测试、调试、理解和维护——对你团队中的任何人,而不仅仅是你自己(请注意,初始编码不在此列表中!少打字是绝不是增加最终流程复杂性的好借口)。这应该是所有编程特性的选择规则——工作是做什么的,然后是完成工作的东西,下一个人维护的最简单的东西。期间。
【解决方案2】:

元编程就像暴力,如果它不起作用,你就没有使用足够的东西。

说真的,元编程很快就会变得过度,但只要代码是可读的,它就不会以令人毛骨悚然的方式影响任何全局性的东西,而且效果得到很好的控制。也就是说,通常当您进入元编程思维模式时,您会忘记如何以正常的编程方式做事。元编程和 OOP 在功能上有很多重叠,所以你应该看看是否有更简单的方法来实现你的目标。 Yehuda Katz 有一个关于这种虐待的有趣故事:http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/

【讨论】:

    【解决方案3】:

    当你永远无法结束你的原始项目(你应该做的事情)时,你可以知道你做了太多的元编程,但要继续开发许多有用的可重用组件。

    多年前,Enrique 是一家初创公司的合伙人,他是元编程狂热分子。我记得他开始为他正在开发的系统编写报告,这是一两天的任务。一周后,报告还没有出现,但他脑海中正在形成一个用于构建您想要的任何类型报告的出色通用库。

    顺便说一句,我和 Enrique 一起了解了更多关于编程的知识,在之前的几年工作中,他的观点很鼓舞人心……只是他过去做得太过分了,我们真的需要完成一些工作……

    但最好冒太多元数据的风险。也许你已经读过典型的“一些程序员的生产力提高了 10 倍”......我相信成为那些 10 倍超级明星之一的关键因素是思考元。

    【讨论】:

      【解决方案4】:

      如果您和您的团队对您的技术感到满意,并且您及时实现了项目的目标......那么您还没有在元编程方面走得太远。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 2011-02-04
        • 1970-01-01
        • 2010-09-22
        • 2012-09-23
        • 2012-01-20
        • 2014-01-15
        相关资源
        最近更新 更多