unity模型聚焦功能代码_聚焦:代码生成

unity模型聚焦功能代码

在本文中,我将讨论代码生成,为什么需要代码生成以及如何进行代码生成。 我将描述使代码生成成为必要和一些理论(不是太多)的一般问题。 我还将讨论软件开发的不同阶段,在这些阶段中可以以编程方式生成源代码,并比较不同的方法。 我还将描述在特定阶段生成代码的特定工具的体系结构和想法(尤里卡时刻的种类)。

为什么我们生成代码

问题是要生成代码还是不生成代码。 我们可以问莎士比亚。 就像《哈姆雷特》中那样,实践给出了答案。 我们确实生成代码。 许多开发人员生成代码。 即使我们不喜欢那样。 工具生成的代码给我们带来了一些不好的感觉。 它使我们感到某些事情不是专业的,或者至少不是最优的。 但这就是生活。 只有少数几项是最佳的,我们仍然必须忍受这些。 自动代码生成也是如此。

自动生成代码的主要原因是我们并不了解。 手动代码生成可能很麻烦且容易出错,并且语言,框架或仅凭我们的经验和知识无法提供简单的解决方案。 这篇文章的主要内容一开始就是在这里。 在决定使用代码生成之前,我们必须确定原因,为什么需要它。

除非确实需要,否则不应该生成代码

很奇怪的说法,尤其是当我“推广”一个完全针对Java代码生成的FOSS工具时。 我知道并且仍然声明​​,您必须手动编写所有代码。 不幸的是,或者为了使用该工具,在很多情况下不能选择手动代码生成,或者至少自动代码生成似乎是一个更好的选择。

为什么要产生?

如果最好的选择是生成源代码,那么系统中就会出现错误或至少不是最优的。

  • 创建代码的开发人员低于标准水平,
  • 编程语言是低于标准的语言,或者
  • 在环境方面,一些框架是低于标准的。
代码生成

图1:生成代码的原因

不要感到冒犯。 当我谈论“低于标准的开发人员”时,我并不是说你。 最后,您远高于一般开发人员,但并非最不重要,这是因为您开放并且对新事物感兴趣,这是您正在阅读本文所证明的。 但是,在编写代码时,您还应该考虑普通的开发人员Joe或Jane,他们将在将来的某个时候维护您的程序。 而且,普通开发人员有一个非常特殊的功能:他们不好。 它们也不错,但是,顾名思义,它们是平均水平。

标配开发商的传奇

您可能会发生几年前发生在我身上的事情。 它像下面这样。

解决了一个问题,我创建了一个微型框架。 并不是像Spring或Hibernate这样的框架,因为单个开发人员无法开发类似的框架。 (尽管其中有些人甚至在专业环境中尝试也没有停止,这是矛盾的,因为它不是专业的。)您需要一个团队。 我创建的是一个单一的类,该类正在做一些反射“魔术”,将对象转换为地图并返回。 在此之前,我们需要所有需要此功能的类中的toMap()fromMap()方法。 它们是手动创建和维护的。

幸运的是我并不孤单。 我有一个团队。 他们告诉我取消编写的代码,并继续手动创建toMap()fromMap() 。 原因是必须由跟随我们的开发人员来维护代码。 而且我们不知道它们,因为甚至没有选择它们。 他们可能仍在大学学习。 他们甚至可能没有出生。 我们知道一件事:他们将是普通的开发人员,而我创建的代码比普通的技能还需要一点点时间。 但是,即使维护容易出错,维护手工制作的toMap()fromMap()方法也不需要掌握一般技能。 但这只是成本问题,需要在质量检查方面投入更多的资金,并且比雇用高级开发人员要少得多。

您可以想象我的矛盾情绪,因为我出色的(讽刺的)代码被赞美我的自我所拒绝。 我必须说,他们是对的。

低于标准框架

好吧,从这个意义上讲,许多框架都低于标准水平。 “ sub-par”一词也许并不是最好的。 例如,您从WSDL文件生成Java代码。 为什么框架会生成源代码而不是Java字节码? 有充分的理由。

生成字节码很复杂,需要特殊知识。 它具有与此相关的成本。 它需要一些字节码生成库,例如Byte Buddy。 对于使用代码的程序员而言,调试起来更加困难&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值