【平台开发】技术整合思考(五)代码生成代码

简介: 【平台开发】技术整合思考(五)代码生成代码

一、背景


首先简要介绍写反射技术(reflect)。


反射技术(reflect)是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制。它可以完成以下几个功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法

七镜在开发语言的深度理解上其实并没有多深入,知道写技术框架的那些大神,经常会使用反射技术(reflect)来复用一些逻辑代码,实现高度的可复用性。


对反射技术理解的不深入的前提下,有没有其他办法来来编写框架呢?有的,有个简单好理解的路子:代码生成代码




二、以七镜的博客平台服务端里常见的增删改查为例,代码生成代码的步骤如下:


  1. 正常实现业务逻辑:包含实体结构体名、数据库访问代码、graphql schema定义、graphql endpoint定义等等。
  2. 从大量的重复代码中,找到复用点:结构体名。通常一个实体A的结构体名,对应一串A的增删改查代码,将实体A的增删改查代码里的结构体名A修改成另一个结构体名B之后,就变成了实体B对应的一串增删改查代码了。
  3. 编写生成代码的代码。根据第2步里的复用点,将实体A的代码文件(比如user.go)读取成字符串,将字符串里的结构体名A,替换成结构体名B,保存到实体B的代码文件(比如comment.go)中即可。
目录
相关文章
|
10月前
|
敏捷开发 API
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
|
7月前
|
测试技术 持续交付 开发者
Xamarin 高效移动应用测试最佳实践大揭秘,从框架选择到持续集成,让你的应用质量无敌!
【8月更文挑战第31天】竞争激烈的移动应用市场,Xamarin 作为一款优秀的跨平台开发工具,提供了包括单元测试、集成测试及 UI 测试在内的全面测试方案。借助 Xamarin.UITest 框架,开发者能便捷地用 C# 编写测试案例,如登录功能测试;通过 Xamarin 模拟框架,则可在无需真实设备的情况下模拟各种环境测试应用表现;Xamarin.TestCloud 则支持在真实设备上执行自动化测试,确保应用兼容性。结合持续集成与部署策略,进一步提升测试效率与应用质量。掌握 Xamarin 的测试最佳实践,对确保应用稳定性和优化用户体验至关重要。
90 0
|
10月前
|
机器学习/深度学习 人工智能 机器人
深入理解自动化测试:框架、工具与实践
【4月更文挑战第30天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速市场交付的关键环节。本文将探讨自动化测试的核心框架、常用工具以及实际应用的最佳实践,旨在为软件测试工程师提供深入的理解和有效的策略,以改进其自动化测试流程。我们将分析几种流行的测试自动化框架,包括Selenium、Appium和JUnit,并讨论如何根据项目需求选择适合的工具。此外,文中还将介绍持续集成(CI)环境下的自动化测试策略,以及如何通过测试结果分析和报告来优化测试过程。目标是帮助读者构建更健壮、更高效的自动化测试系统。
|
10月前
|
人工智能 程序员 API
代码生成工具:提升开发效率的利器
随着技术的不断进步,以及在AI浪潮的推动下,代码生成工具逐渐成为开发者们提高效率的得力助手,代码生成工具在现代软件开发中扮演着越来越重要的角色。作为程序开发者,我觉得代码生成工具不是程序员的所有,但是它可以是程序员在开发中的“左膀右臂”,代码生成工具更多的是帮助开发者提高在日常开发中的效率。那么本文就来分享一下关于代码生成工具在开发过程中的应用情况,并对这一领域的未来发展提出些许期待和诉求。
172 7
代码生成工具:提升开发效率的利器
|
前端开发 Java 数据库连接
ZeusAutoCode代码生成工具(开源)(上)
ZeusAutoCode代码生成工具(开源)(上)
336 0
|
搜索推荐 数据可视化 关系型数据库
OneCode 低代码平台 AIGC快速构建无代码应用
OneCode是一款基于DDD模型驱动设计的低代码引擎。从2022年底推出以来,现在的最新版本是1.1.0。本文重点是采用OneCode提供的工具来实际搭建一个简单的(员工请销假)业务应用。在搭建过程中穿插讲解一些功能设计思想以及使用方法。
|
监控 前端开发 数据库连接
ZeusAutoCode代码生成工具(开源)(下)
ZeusAutoCode代码生成工具(开源)(下)
204 0
自动化测试技术笔记(三):如何编写技术方案
首先这个要求我觉得挺正常,一方面评审可以查漏补缺完善细节,另一方面也可以考察具体的落地经验和能力。其次,我认为技术方案其实有个通用的模版,或者说抽象的经验参考,这也是本篇文章我想聊的话题。
|
数据可视化 搜索推荐 程序员
什么是无代码?无代码应用开发的12大好处!
无代码的一些好处,想必之前听说过的人也会有所耳闻,但因种种原因大家可能对无代码了解的仍然不是很全面。下面,就来和小编一起深入了解一下:无代码应用开发的12大好处,无代码究竟拥有怎样的魅力,让大量的开发人员和企业对它如此关注?
什么是无代码?无代码应用开发的12大好处!
|
测试技术 Python
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
698 0
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化