可以编写代码的代码:代码生成的利与弊
Athena 2019-11-11 来源 : 阅读 1192 评论 0

摘要:代码生成的当前状态是无处不在的

如今,代码生成发生在软件堆栈的每一层


可以编写代码的代码:代码生成的利与弊


1、包括Java库(如swagger CodeGen)

2、最新的交叉编译器/编译器(如针对JavaScript应用程序的Babel)

3、以及全栈生成器(如Starter StackGen(tm))

REST API的数量激增,导致在过去十年中针对各种编程语言和环境开发的API客户端生成器种类繁多。

就像某种巨大的数字Turducken一样,REST API及其生成的客户端似乎能够将任何事物连接到任何事物。

因此,让我们看一下代码生成管理中涉及到的事物


代码重写

自动编码的一种广泛形式是代码重写-用于将一种语言版本的语法转换为另一种语言,有时甚至完全转换为另一种语言。


例如,诸如Scala之类的语言实际上是将您的代码重写为与Java兼容的代码。


著名的奇怪的Lombok项目基本上在您键入时重写Java代码,生成幻像方法,因此您可以专注于出色。


就像Babel一样,任何优秀的JavaScript开发人员都可以证明“编译器”是如何将您的高级ES2017重写为已使用了10年的,与浏览器兼容的旧版JavaScript,因此您可以编写现代代码,而不必担心浏览器的行为方式


可以编写代码的代码:代码生成的利与弊


模板的生成


React生态系统在创建基于模板的应用程序框架(包括React的“ create-react-app” CLI命令)方面特别活跃。


在整个软件行业中,其他基于模板的代码生成也很普遍。HTML模板和流行的新静态站点生成器通常利用流行的胡须或车把模板引擎来利用模板解析。


在服务器模板引擎(例如Velocity)以及基于服务器的胡须和车把实现中,吐出了预渲染的源文件(例如HTML和越来越多的JavaScript)。


可以编写代码的代码:代码生成的利与弊


时动态代码


模板并不是生成代码的唯一方法。

通过自省,例如Java和Java Reflection API等语言以及Ruby Metaprogramming,运行代码可以是“自我感知”的,一旦您的代码自我感知,构建真正动态应用程序的选项就会真正扩展。


在Starter,我们使用Java构建了StackGen生成器引擎,这意味着我们能够使用便捷的JavaPoet库来动态构建Java类文件,其中包括在运行时动态合成的功能。有趣的是,这些类可以在内存中编译并由类加载器加载,而无需写入磁盘。


他们说Java不是动态语言!

这种类型的动态生成的代码令人兴奋,因为它不仅节省了我们手动编写代码的时间和金钱,而且还提供了机会在运行时在应用程序中创建响应行为,而无需人工干预(可能基于AI决策)使我们的应用程序和数字体验比以往更具吸引力和实用性。

可以编写代码的代码:代码生成的利与弊


代码生成的优点

1、无需手动编码=更少的错误

2、实现更大,更复杂的模式可能节省大量时间

3、简单应用和PoC的快速上市周期

4、稳定的基础架构意味着更少的时间浪费

5、CI / CD友好,可以将代码生成作为步骤添加到任何CI管道或开发工作流程中

6、端到端生成消除了处理多个源文件和文件类型时的错误

7、可以将新功能集成到基础模板中,以在单个构建中跨大型代码库实现

8、但这并不是说代码生成没有缺点。


代码生成的缺点

1、并非所有应用程序都将从代码生成中受益

2、与手动选择每个代码库,模式和编码样式相比,代码生成更加不灵活

3、对基础模板的更改将推广到所有生成的文件,因此更改必须高度兼容并经过全面测试

4、生成的代码必须在代码库中与开发人员代码仔细隔离- 存在覆盖开发人员代码的风险,并且应该可以在不影响任何现有代码的情况下进行重新生成

5、代码生成会增加一些复杂性-例如,要真正了解生成器并与之合作,您需要了解生成的代码及其原因-除了代码库的常规问题之外

6、编写其他代码的编写代码的思维模式可能会变得松散,尤其是在编写生成其他应用程序的应用程序时


LCDP和将创新推向边缘

LCDP(低代码开发平台)作为“无代码开发”的最新形式以及桥接高级用户/ jr的新方法而受到关注。开发者差距。

随着对新功能和新系统需求的增长,开发人员变得捉襟见肘,许多用户被超载的Excel电子表格所束缚,或者由于各个级别的开发人员资源稀缺而根本没有所需的软件功能。

消费者SaaS解决方案可以完成许多一次性任务,但是一堆杂乱无章的Web应用程序和服务并不是满足许多需求的可靠基础。

另一方面,对于许多组织来说,昂贵的企业系统根本不是一个选择。

除了节省开发成本外,授权“公民开发人员”在适当时构建自己的解决方案是LCDP价值主张的主要驱动力。


代码生成器直接位于解决方案域的中间。

OpenAPI和StackGen

StackGen采用整体方法来生成代码-基于OpenAPI / Swagger模式。

开发从一开始就开始,重点是使用OpenAPI / Swagger设计出色的API 。

然后,该设计准则使您可以生成具有可预测行为的健壮堆栈,并使用此处的任何自定义逻辑和前端设计对其进行精确扩展。

为了达到这种灵活性,StackGen使用了3种代码生成步骤以及3种不同的实现方式。

系统的3个主要组件使用了多种生成技术:Swagger CodeGen,MyBatis生成的DAO和映射,以及即将到来的StackGen PRO,ReactJS前端生成。Swagger CodeGen和StackGen React代码都使用Mustache从Mustache模板文件生成React内容。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

本人对待工作认真负责,善于沟通、协调有较强的组织能力与团队精神 ; 活泼开朗、乐观上进、有爱心并善于施教并行 ; 上进心强、勤于学习能不断提高 自身的能力与综合素质。在未来的工作中,我将以充沛的精力,

  • 2
    推荐岗位
  • 2668
    人气
  • 0%
    受欢迎度

已有0人表明态度,0%喜欢该职业规划老师!

进入TA的空间
资讯动态 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
何为互联网思维,IT人必须知道的思维方式!
就业趋势 100% 的用户喜欢
编程小白看过来,一招教你学会前端开发必备技能
就业趋势 100% 的用户喜欢
如何解决编程语言之间的差异性?从这几点出发!
就业趋势 0% 的用户喜欢
哪三大计算机专业人才缺口大,毕业就高薪!
就业趋势 0% 的用户喜欢
创始人退休后的Python却即将起飞?
就业趋势 0% 的用户喜欢

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程