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

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

一、背景


首先简要介绍写反射技术(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)中即可。
目录
相关文章
|
4月前
|
人工智能
|
5月前
|
JavaScript 测试技术 持续交付
构建高效的开发环境:工具与实践指南
在软件开发中,高效的开发环境对于提升生产力和代码质量至关重要。本文将介绍如何通过选择合适的工具和实践来打造高效环境,包括减少干扰、提高效率和提升代码质量。首先,文章将探讨选择正确的代码编辑器,如 Visual Studio Code 和 Sublime Text,并介绍如何配置编辑器以提高工作效率。接着,文章将讲解版本控制系统的使用,特别是 Git 的基本操作及 GitHub、GitLab 等远程仓库服务的选择。此外,还将讨论代码质量管理,包括代码审查和单元测试的最佳实践。最后,文章将介绍持续集成和持续部署(CI/CD)工具,以及如何利用命令行工具和协作工具来进一步提升开发效率。
|
9月前
|
人工智能 程序员 API
代码生成工具:提升开发效率的利器
随着技术的不断进步,以及在AI浪潮的推动下,代码生成工具逐渐成为开发者们提高效率的得力助手,代码生成工具在现代软件开发中扮演着越来越重要的角色。作为程序开发者,我觉得代码生成工具不是程序员的所有,但是它可以是程序员在开发中的“左膀右臂”,代码生成工具更多的是帮助开发者提高在日常开发中的效率。那么本文就来分享一下关于代码生成工具在开发过程中的应用情况,并对这一领域的未来发展提出些许期待和诉求。
155 7
代码生成工具:提升开发效率的利器
|
人工智能 自然语言处理 Java
AI时代的代码自动生成工具:每个开发人员必须掌握的基本能力
随着人工智能技术的不断发展,越来越多的行业开始尝试将AI技术应用于实际业务中。其中,代码自动生成工具便是AI技术在软件开发领域中的重要应用之一,也倒逼着每一个开发人员学习使用。有专家曾公开表示,利用AI工具辅助软件开发将成为开发人员的基本技能,否则终将被淘汰。
|
9月前
|
搜索推荐 数据可视化 关系型数据库
OneCode AIGC快速无代码构建应用
OneCode是一款基于DDD模型驱动设计的低代码引擎。从2022年底推出以来,现在的最新版本是1.1.0。本文重点是采用OneCode提供的工具来实际搭建一个简单的(员工请销假)业务应用。在搭建过程中穿插讲解一些功能设计思想以及使用方法。
|
前端开发 Java 数据库连接
ZeusAutoCode代码生成工具(开源)(上)
ZeusAutoCode代码生成工具(开源)(上)
326 0
|
监控 前端开发 数据库连接
ZeusAutoCode代码生成工具(开源)(下)
ZeusAutoCode代码生成工具(开源)(下)
202 0
|
数据可视化 搜索推荐 程序员
什么是无代码?无代码应用开发的12大好处!
无代码的一些好处,想必之前听说过的人也会有所耳闻,但因种种原因大家可能对无代码了解的仍然不是很全面。下面,就来和小编一起深入了解一下:无代码应用开发的12大好处,无代码究竟拥有怎样的魅力,让大量的开发人员和企业对它如此关注?
什么是无代码?无代码应用开发的12大好处!
|
测试技术 Python
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
681 0
曲鸟全栈UI自动化教学(八):框架代码讲解和进一步优化
|
SQL 缓存 监控
从零开始打造一个模块化无代码开发平台
从零开始打造一个模块化无代码开发平台
322 0
从零开始打造一个模块化无代码开发平台