为什么阿里巴巴java开发手册里要求禁止使用存储过程?
存储过程不利于移植,受数据库限制,而且阿里巴巴都是大型分布式集群存储过程更是劣势巨大!越是大型的分布式系统越是追求编码业务而不是绑死在数据库上,因为你不知道那一天就要换数据库了
存储过程,最早的概念据我推断是来自于oracle,最早oracle是只有函数的概念,依稀记得是oracle8还是9才加的存储过程package的概念,用于解决函数过于碎片化、不具备复杂的多逻辑功能,同时便于文件管理加入的概念。到后期基本所有数据库也都有了存储过程,如:mysql,sybase等。
存储过程是基于数据库底层的语法,与数据库是相互依存的,且各个类型数据库语法都不一样。
Java语言在很大一部分的优势就是为了解耦合和可移植性,所以也有经典的dao模式,目的也就是把数据库和业务层分开。如果直接调用存储过程,混淆了业务和数据库分层,打破了JAVA模式设计的初衷。而且,如果用存储过程写,比如原来用Oracle数据库,现在客户要求改成免费的Mysql数据库,意味着基本所有的存储过程全部要重写,基本不具备可移植性。
当然,万事没有绝对。阿里的整套体系庞大,数据库的能力强大,中间件的主机也足够横向扩展。像一般的项目没那么多的主机和算力可搭配,有时碰上复杂的报表或复杂的逻辑,也不得不借用数据库存储过程来实现。
一般来说,项目上数据库主机的配置比web主机相对强大得多,且存储过程在数据库操作逻辑上天然的快,在web主机不能横向扩展的情况下,也只能借用存储过程来实现。当然,用存储过程来处理也是占比很少,逼不得已情况下才使用。
存储过程不好移植,如果数据库换了,肯定需要爱重写。单纯的SQL语句一般不用
存储过程不好维护。现在业务逻辑复杂,如果逻辑分散在存储过程和后台程序里先,得关注两部分
学习J***A可以看哪些书?
排名靠前的都列出来了。直接用吧
这本书在第一版的基础上进行的升级,增加了很多重要知识点的原理剖析。很适合新手打基础用,因为很多高效也用第一版本作为教材的。内涵比较多的知识点案例,还充分的考虑到了学生对J***a相关知识点的底层原理的熟知。总之就是基础知识点通俗易懂,并且配合了案例。
《J***a编程思想》出版社:机械工业出版社
这本书,被成为J***a相关书籍的圣经,这里声明,个人认为不适合入门。需要有一定的基础再去看,毕竟书中内容讲了J***a各方面,需要在基础上面花精力去看的。看完了会有茅塞顿开的感觉,也是为后面学习新的技术奠定基础。
《重构:改善既有代码的设计》出版社:人民邮电出版社
是在外部行为不改变的前提下,有条不紊的改善代码。这本书在豆瓣评分9.1,并且几乎和设计模式齐名,被翻译成了众多语言,在世界畅销。作者是:马丁福勒,一步步的告诉我们怎么重构代码,避免我们写出面条代码。
这是一本既注重实战,同时也注重底层“内功”训练的书,非常适合初学者阅读!
2、《程序员修炼之道——从小工到专家》
这本是指导程序员从低等级向高等级转变的必要圣经。每一篇幅都需要仔细阅读,深入思考,作者多年的经验可以给我们在实际项目中处理给予很大的帮助。通过在实践中,摸索,探讨,最终都会发现很多问题都能在这本书找到最好的指导。
《重构:改善既有代码的设计》,这本书确实牛掰,尤其适合当代程序员读。近几年软件开发的门槛降低了很多,好多公司都因为初级程序员的存在累积了一大批shit一样的代码,重构也讲技巧和原则,不是单纯地[_a***_]重写。看了几页就有收获,推荐给各位开发的朋友,没事儿读读,肯定有启发。
不知道您是否自学,如果是的话,光看书还是不够的。建议多看多交流。
祝学业有成~