大家好,我是TJ
程序员励志推荐1万个开源项目和工具
TJ几天前,我和一个在银行科技部工作的同学聚会。我的同学和我一起TJ君吐槽,
例如,一旦学生委托一个需求,检查另一个系统的一些数据汇总显示,实际上是一个非常简单的需求,学生的第一反应是要求负责另一个系统的技术同事到背景数据白皮书,即系统背景表结构文档,结果被告知不。..嗯。就是没有。
然后学生不得不到处找人问,做源系统开发背景表结构(这里解释开发不是银行科技人员,一般小银行开发外包给第三方制造商),结果由于第三方制造商人员流动快,开发人员改变了一波,现在开发人员没有交接内容,不得不从底部检查代码,最后,我终于告诉学生我需要检查什么表格和字段,担心什么特殊情况会导致错误。按照同学的说法
我相信很多程序猿合作伙伴也遇到过学生的经历。项目越大,后台数据库表的复杂性就越高。如果你想编写一份完整清晰的数据库表结构文档,开发人员需要付出大量的时间和责任感。很多人懒惰的时候,这个文档就是纸上谈兵不存在,稍微好一点的项目上线初期可能会有这样的文档,但是一旦后续的维护变化改变了。也许新字段没有继续维护,导致文档不完整,然后人们接管相关工作很容易出错,这就是我们常说的
虽然TJ你认为改进其他系统的表结构文档不是学生应该做的,但你仍然认为有什么工具可以帮助学生吗?
于是TJ君想起了以前见过的一个GitHub开源项目,,一款简洁好用的数据库表结构文档生成器,似乎天生就是为了解决同学这个问题而存在的。
screw工具的主要特点如下:
设计简单,重量轻,设计好
各种格式文档
可灵活扩展
支持自定义模板
支持的主流数据库包括:
MySQL
MariaDB
TIDB
Oracle
SqlServer
PostgreSQL
Cache DB(2016)
其余的像 DB2、H2、HSQL、SQLite数据库作者正在开发中。
导出的表结构文档可以按用户的要求导出成三种格式,html、word、markdown
使用工具并不难,只需要先Maven在插件配置文件中引入依赖
<dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>${lastVersion}</version> </dependency>
然后导入主方法类,将数据库连接部分和导出部分修改为您需要的内容,然后操作程序。
//数据库配置,将您自己的数据库连接成 hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database"); hikariConfig.setUsername("root"); hikariConfig.setPassword("password"); ///生成文件的配置,看看你想在哪里生成什么格式 EngineConfigengineConfig=EngineConfig.builder() ///生成文件的路径 .fileOutputDir(fileOutputDir) //打开目录 .openOutputDir(true) //文件类型 .fileType(EngineFileType.HTML) ///实现生成模板 .produceType(EngineTemplateType.freemarker) //自定义文件名称 .fileName("自定义文件名称").build();
导出的数据库表结构文档如下:
很清楚,但让TJ君失望的是,同学告诉我,TJ君银行不允许使用开源工具,但我相信这个工具一定会对你的程序猿合作伙伴有所帮助。快来看看。仓库地址如下:
点击下面的卡片,关注微信官方账号”
回复“获取仓库地址
关注我,每天了解一头牛x、好用有趣的东东