摸鱼集|二次改造“PDManer 元数据建模”

1,235 阅读6分钟

摘要

本期结合了之前的部分代码生成实践及关于低代码相关的技术交流还有之前的部分设计做一下总结,主要聊一聊应用及硬伤还有代码生成的扩展前景在哪里。

正题

实践经历

  • 数据库生成 早些年通过codesmith基于数据库的表进行了整站前后端的构建,能够在单兵作战中起到良好的效果,之后因前端快速更迭,放弃了这种方式。
  • curd化 这块用的周期最久,特别适用全栈,前端主要定制好Page-Curd、Form-Curd主要是简化常规页面的开发改造周期,服务端回归本质->为前端提供专供服务,同时服务端放弃多层级结构,回归2层即业务和数据库,放弃CRM模型化,采用JObject通用扩展对象便于快速的改造,主旨其实就是快,像是当下绝大多数快速开发平台基本是这种模式。
  • 解析生成 在之前有分享过一篇代码生成代码,主旨是通过解析源码分析获取页面构成字段,在保留服务适配的同时重写前端,目的是避免拷贝字段过程中的差异化人工cv错误及接口的适配调试,能够很快把两端不对等的状况快速对等。
  • 低代码 近期的技术交流中,有整体介绍,算是当下我见到过的最全面的,功能交互及设计相对最合理的一种,即有仿Asure那种编排设计,又有代码生成部分,同时也包含了大屏、页面、H5、App,畅想的很完美,定位也感觉很有市场,但是一个还是一个核心本质的问题
    💖 作为快速更迭的基础版,改为某些功能无法支持,需要用代码去开发的时机点不可控,支持更新频次达不到要求。
    💖 场景不适应,最好的情况是产品能够把交互情况,基本构型先处理出来,随后前后端依次补齐相关块,完成从0到1之后,主动选择源码开发时机,但实际出发点又是应对项目实践要求紧急的这种情况,具体的操作变成前端或者后端 (很可能不用拖拉拽很快就搞定的事情)->拖拉拽过程,实践耗费量其实本质上是没有减少的,还存在后期可能涉及的框架不支持问题。
  • 元数据建模 之所以选择这个工具做改造的原因是 "元数据"->"描述数据的数据",本质上是对数据库数据的扩展定义,基础的数据库设计文档,ddl转换,根据元数据扩展出前后端的生成配置,都有一些基础,定制一些功能还是比较轻松的,我本着程序的约定比人要靠谱,在工作量都会减少的前提下,约定和标准也被顺利的推行下去了。

改造内容

我的主要思路是
💖1. 扩展页面部分生成配置支持,在数据库表设计的时候就能够轻度完成。
💖2. 原本的程序生成少了很重要的批量功能,如果有多个,那么就得一个一个去配置。
💖3. 初始固化模板的改造,这个是约定的基础,避免胡乱去开发标准,无法起到约定前后端的目的。
💖4. 单机版最大的问题就是配置无法共享,此处有两种思路,一种是“云保存”改造,另外就是接管文件保存及初始的加载,扩展“存库”的读写,以达成多人共享的目的。
💖5. 我理解不了一个设定就是,外键不需要设定到数据库,但也应没必要完全放在关系图中设定,符合习惯的外键设定,去自动生成关系图反倒是符合日常习惯,这部分其实也不费啥精力就能实现。
💖6. 至于网页版,我反倒觉得没那么迫切,因为现有只是小范围工具,没必要耗费大精力去做这个事儿。

改造过程

fork和Pr 【蠢笨没此类经历的我不懂,所以多提了一嘴】

首先,我这种没Pr经验的人,对这方面的含义其实不咋个动,直到我产生了疑问,别人更新了我改的咋办? 🚲1.fork源项目

首先码云是基于gitlab,操作方式与github类似。码云的协作是基于fork源项目的基础上,才能进行pull request。 对要进行协作开发或者学习的项目,fork一份到自己的远程仓库。
只有fork下来的副本你才拥有修改的权限,等同于一个拥有开发权限的分支。在这个开发分支中,你可以进行代码学习或者开发,提交修改到远程仓库的副本工程。

🚲2. 拉取源项目最新内容
及时获取原作者最新的项目更新,同时保留自己的更改。

遇到的一个运行问题是electron的问题

最可能的问题就是之前的package.json中 electron的版本已经被移除了,查看一下有的版本 image.png

编辑属性扩展

💖主要是对默认模板的属性进行扩展,react的代码相对可读性还是比较高的,可能但代码里面的数据流感觉不是很清晰,可能是周期比较长的原因 image.png 💖 在模板处增加了批量功能,一个一个配置有点儿要命 image.png 💖 调整还算比较顺利,改的文件也不算多,主要试了一下改造性,还算比较好改,大概几个文件就能改造 image.png

扩展

本质上这个工具几经改版,我偶尔用也主要是为了生成数据库设计文档,改造顺利的话能解决绝大部分文档及设计部分的内容,基本也算是生产摸鱼利器了。 image.png 早先其实有过思考,但感觉代价太大,渐进式的改造符合我的实际情况,但更或者说,其实网页插件才是我最终想要的追求,比如英文命名的问题,快速表设计的问题,简化设置,多样化产出才是摸鱼的精髓。

闲话

程序人的心理历程大概就是敬畏、学习、自大、再到重新敬畏或者脱离之后反贬低,心态也始终是在反复的自我否定中成长,矛盾性一直存在,如何避免自我怀疑,自我否定,眼高手低,或是脱离实际,一直是我反反复复在拷问自己的问题,不知道各位老哥有没有相同的困惑,顺手解个惑。