不喜欢数据库编程
工作中一直不喜欢数据库编程,也要求团队中尽量不要用存储过程和触发器,除非真的能带来很多好处。实话说,我写的存储过程代码一般不超过10行,且与业务无关,触发器就更不说了。但最近看到一些问题,有感而发。不对之处请指教(原想写长点,但水平不行,就写个标题算了)。
一.不能进行版本控制(印象中Ms Sql的好像可以加到vss,其他数据库不知道)
因为不能版本控制,所以就怕代码丢失和回滚。为了保存回滚信息,故有大段的注释的旧代码,有时旧代码量超过了实际代码,也没人删除。更不能保证多人编辑时的同步问题。
二.不能统一代码管理(代码备份)
有点规模的开发过程,都要求有代码管理系统,如vss。但这数据库中的这部分代码却在vss之外,需要单独的管理。也许可以加到vss中去,但也不太方便。
三.编程不便,
1. 错误处理、流程控制、数据类型等,都和现代的编程语言(如C#)差的太远。比如字符串处理不灵活,不支持集合等。看到有人为了复杂循环而大量使用游标,而在dotNet中记录(DataRow)是数组存放的,想怎么定位修改都行。
2. C#是面向对象的,写出来的代码相对要优雅,多点代码也容易懂,对象间的调用也易理解;而存储过程中代码多了就不好玩了,存储过程嵌套调用也好不到哪去。
四.调试不便
虽说现在的存储过程也可以单步调试,但调试一般是应用程序发起的,再跟踪到存储过程,两处调试终归不便。
五.错误隐藏
1. 触发器对不了解系统的维护人员,会造成找不到北的错误,永远也不知错在哪,最后才发现是一条触发器惹的祸。
2. 大而复杂的存储过程,也让人头大。见过上千行的存储过程,也许程序员开始并未想到写这么长,只是后来越改越长,控制不往了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)