读书随笔:为什么我选择把代码写在数据库里?
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。
为什么我选择把代码写在数据库里?
大家好,今天我想分享一下我的编程理念——为什么我特别喜欢把业务逻辑直接写在数据库里。
数据库就是我的"万能工具箱"
对我来说,数据库就像一个神奇的万能工具箱。只要把功能实现在数据库里,我就能把这个工具箱带到任何地方使用。不管是Windows电脑、Linux服务器还是其他操作系统,Oracle数据库都能完美运行。
这就像Java程序能在任何安装了Java虚拟机的电脑上运行一样。数据库就是我的"虚拟机",它帮我屏蔽了不同操作系统的差异。我可以在自己笔记本上的Oracle数据库开发好功能,然后直接部署到客户的服务器上,完全不用担心系统兼容性问题。
我的编程优先级清单
当需要实现一个功能时,我的选择顺序是这样的:
-
首选SQL语句:能用一条SQL语句解决的就绝不用两条。现在的SQL功能非常强大,90%的需求一条SQL就能搞定。
-
其次PL/SQL:如果SQL实在搞不定,就用PL/SQL写存储过程。但我会尽量写得简短,因为代码越少,bug就越少。
-
不得已用C语言:只有在需要极致性能,或者要调用C写的第三方库时,才会考虑用C写外部程序。
-
最后的选择:如果连C都实现不了,可能就要重新考虑这个需求是否合理了。
为什么这样选择?
PL/SQL的优势:它和SQL是天作之合,配合起来特别自然。经过30多年的优化,PL/SQL现在运行效率非常高。在其他语言里调用SQL总感觉别扭,但在PL/SQL里就像说母语一样流畅。
Java的作用:当数据库确实处理不了时,我会用Java来补充。现在Java通过"原生编译"技术,运行速度已经能和C语言媲美了。
C语言的定位:除非是特别追求性能,或者必须用C调用的特殊接口,否则我很少直接用C。
实际工作中的分工
这种开发方式还有个好处:作为开发者,我不用太操心操作系统层面的问题。这些交给DBA(数据库管理员)去处理就好。他们才是操作系统专家,我的精力可以集中在业务逻辑上。
当然,如果开发的是传统的客户端-服务器程序,主要代码都在数据库外面,那就还是得关注操作系统特性。但如果是数据库应用开发,这套方法能帮我省去很多麻烦。
总结
简单来说,我的编程哲学就是:
- 能用数据库解决的就用数据库
- 代码能少写就少写
- 优先选择与数据库配合最好的工具
这样做出来的系统不仅开发效率高,而且性能好、容易维护、方便移植。这就是为什么我如此推崇这种"数据库优先"的开发方式。
------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

浙公网安备 33010602011771号