
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了程序员需要掌握的一些编程开发方式等内容,而本文我们就通过案例分析继续来学习一下,面向数据库编程开发常见问题分析。
面向数据库编程的问题是,我们从一开始就钻到底层的细枝末节上,而不是以居高临下的角度设计和审视业务系统内在的、本质的逻辑规则。这种设计方式,由于没能深入地设计建模,很容易就事论事,往往迷失在细节森林中。另外,由于数据库设计和业务建模是同时进行的,表设计中往往会带进过多的当前业务逻辑。由于业务规则会随着不同时期需求变化而变化,因而这种表结构是不稳定的。的体现是一个字段表示多方面的状态值,这些状态之间遵守(目前的)固定的业务规则。数据库设计不可能完全脱离具体的业务,但一定要尽量识别并减少不稳定业务规则的摄入。
面向数据库编程思维是自始至终的,而不仅仅在初期表设计阶段。编程过程中,我们习惯将增删改查字段这种数据库术语带进业务代码中,操作也是直接面向数据库进行的。
这种编程方式中,往往没有实体,就算有,也是仅仅作为数据传输对象(DTO)使用(算不上DAO,因为连个CRUD的方法都没有),这些对象往往没有方法,其属性基本和数据库表一一对应。模型(Model)也沦为数据库表的对象化表述(DAO),自带CRUD。
面向数据库编程之所以那么流行是因为简单快捷,会敲代码就能做,完全不用考虑对象建模,而且其弊端在简单的业务复杂度面前并不会暴露。然而当业务复杂度达到一定规模后,其弊端是致命的。大量的面条式代码牵一发而动全身,业务逻辑零散各地。需求迭代越频繁,这些弊端就越早暴露,前期的大步流星扯得后面蛋疼不已。
要想深入地进行业务建模,必须在建模时忘掉数据库,要意识到数据库仅仅是持久化存储的一种手段而已,这样才能将你的思维从表结构中解放出来,深入到领域模型本身中去。
面向服务编程和面向数据库编程正好是两个思维极端:前者将全部注意力放在功能(行为)上,后者则将全部注意力放在数据上。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。