V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lasuar  ›  全部回复第 6 页 / 共 88 页
回复总数  1744
1 ... 2  3  4  5  6  7  8  9  10  11 ... 88  
@liuhan907 #10 首先哈,现代化的 IDE 可以帮助你写 SQL ,其次需要维护的 SQL 都是简单的 DDL sql ,并不复杂。最后哈,基本的 sql 能力是开发人员的必备项。
我的技术栈是 go 微服务,多年经验。

以我个人经验哈,不要去依赖工具的 migration api ,这在做项目迁移/重构时是噩梦,并且对于日常的表维护不够透明。当我希望查一个表结构时,我需要去数据库才能查到,通过代码始终是不直观的,部分开发者为了图方便有时候会绕过代码直接修改表结构,这就使得代码中的映射成为摆设,长期以往,这其中的工程复杂度是难以想象的。!

我项目中对于表维护的开发流程:

1. 对于新表,在项目根目录建立 `docs/`目录,以业务为名称建立`.sql`文件,其中可以存放业务相关的一张或多张表的原始 CREATE sql 。这些文件将受到版本控制!

2. 对于旧表的更改, 例如增删字段,首先修改文件中的 CREATE sql ,其次建立`docs/log/`子目录,在子目录中新建`yyyymmdd.sql`(时间为上线日期),其中存放用于上线日改表的 ALTER sql 。

3. 上线时,上线人员(这个一般不会给脚本操作)手动执行 sql ,以及其他更新服务步骤。

这样的好处:

1. 通过`docs/`目录可以直观的看到系统中有多少业务(建了表),每个业务建表数量开发人员是基本清楚的,所以整体来说也是一目了然;
2. 在需要做整体的表结构优化时,通过`docs/`目录可以快速浏览现有表的结构特征,并制定优化方案;
3. 在需要迁移时,直接执行`docs`目录下的所有 sql 文件即可。
4. 对于做了按日期/ID 拆分的表,CREATE SQL 中的表名也要加上类型的 pattern ,以便识别:`create table xxx_$yyyymm ...`;
5. 利好开发新人;
6. 不与开发语言绑定。极端情况下,使用其他语言重构服务时会减少很多不必要的麻烦;
56 天前
回复了 xiaopapa 创建的主题 上海 明天大暴雨,还要正常来公司上班
参考 #18 ,毕竟年假还能换钱,能不请就不请
56 天前
回复了 datocp 创建的主题 职场话题 如何拎得清工作中的责任
你本来就不该代劳,或者在代劳的时候,就提前说明原来的人干嘛去了,你不熟悉不知道不负责
56 天前
回复了 wtj688 创建的主题 问与答 你有多久没看追剧和看电影了?
上周看的毒液,放松还行
@justlazydog #5 开店先准备 个 8w 10w ,咋的,这不是钱啊
56 天前
回复了 Jax2000 创建的主题 职场话题 低学历中年能干啥?
苦力也可做散工吧,这么干,迟早趴下
56 天前
回复了 aa514758835 创建的主题 git 请教一下各位有没有这么用版本控制的
你自己都察觉不合理了,还问。
你反正是 gap ,可以小试一个月
62 天前
回复了 cdring 创建的主题 程序员 请教多域名请求问题
你后来 多数据库的一致性问题呢
62 天前
回复了 brokensword2018 创建的主题 编程 你觉得编程是门技术吗。
做 CRUD 的人当然觉得不是技术,做高性能或偏底层开发的才会觉得是技术;没有人强迫你一直 CRUD 。
63 天前
回复了 punish19 创建的主题 随想 愚孝是心理疾病了吧?
登高山,行长路,至远方,观世界。
楼上说的中肯,我就没这么有底气敢狮子大张口
63 天前
回复了 aldehyde 创建的主题 职场话题 要不要跑路?
你的规划真是 “花里胡哨”,既然还能去“追梦”,那还在这里搬砖干什么,浪费生命吗
64 天前
回复了 mouyase 创建的主题 程序员 服务端开发错了,客户端就应该错着适配
找 leader ,没有懂技术的 leader 那就莫得法了。
1 ... 2  3  4  5  6  7  8  9  10  11 ... 88  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3219 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 12:46 · PVG 20:46 · LAX 04:46 · JFK 07:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.