很久没写什么东西,也很久没上来看看帖子了。模拟项目磕磕绊绊总算做完了,很久没看帖觉得整个人都变得龌龊了很多,连照镜子的想法都没有了,也没有了面向对象的感觉,真是的,跳进代码里面就不知道东南西北了:-)
(PS:我从来没隔这么久没梳过头,到上海快三个月了吧,还没梳过头,^_^)
模拟项目做完之后,总有些意犹未尽。这倒不是说,还想继续做点什么,而是觉得项目中还有很多东西其实是可以做得更好一点的。而我们又没有做,不是没有具体发现这些工程上的缺点,而是要鼓起勇气去改,还是很难的,提出这个意思也是要受到很多人的反对的,因为重构或者说是改进,往往不是一个人的事情,是一个整体的事,动一发而牵动全身。
这让我更觉得需求和high-level-design(或许说是DDD更准确)的利害了。
我们常常说做软件要有拥抱变化的勇气,但是对于很多人来说大部分变化都不是源于需求的变更,而是源于需求的不完善和设计的不成熟。
今天看了Jdon 的“数据库岂能不亡”之后,终于大概了解了,为什么banq说数据库已死( 之前居然看了两遍的banq的“数据库已死”都没有看懂,难道是做了项目之后脑袋变聪明了)。我之前对一个项目中数据库的位置看来也很有问题。总是以为数据库才是最重要的,存储过程,复杂的sql语句才是性能的提高的关键,但是这样的话,在巨大的访问量,整个软件的瓶颈很显然就是数据库这块了。
当我们放弃以数据库为中心的设计,DDD把业务逻辑往上层提一下,也就是说把放弃使用存储过程和复杂的sql语句,这部分逻辑转由上层的service完成,dao提供更为原始的数据。在使用更多是聚合型数据,虽然在第一次取数据时看起来对数据库是一个很大的压力和无必要,但是这样就用到了hibernate的缓冲,使用复杂的sql语句很显然是反缓冲的,使得数据的命中率极为低下,这样还不如直接使用jdbc好了。假如因为访问量巨大而造成的系统运行缓慢,俨然使用DDD这样的设计出的软件在增加了硬件之后会有一定的性能提升,虽然也不是线性的。但是如果使用面向数据库的编程,靠的是sql语句的查询得到具体到点上的数据(看似数据量很少,很精确,似乎效率很高)和存储过程来保证数据的正确一致,所有的工作都是数据库在做,怎样做才能使得数据库的效率得到提高。反过来看,当使用面向数据库的设计时,看看写出来的代码,重用性??还有在变换了数据库之后怎么办??很多使用面向对象的框架也能写出一手面向对象的程序,当看到这些程序时,会发现最后的dao才是真正的重头戏,其他层都是在传递参数,这样使用框架是不是有点暴殄天物,。。。
分享到:
相关推荐
菜鸟网站模拟项目总结-附件资源
【模拟云端系统项目】是一个综合性的IT项目,它结合了前端和后端技术,旨在构建一个功能完善的云端应用。在这个项目中,前端部分主要由HUI前端技术来实现,为用户提供交互界面和视觉体验。HUI前端框架可能包含了丰富...
了解如何确保项目达到预期结果,完成知识转移,并对项目进行总结以供未来参考。 6. **案例分析技巧**:在模拟题中,学习者应学会分析案例背景,识别关键问题,提出解决方案,并预测可能的后果。这需要对项目管理五...
【EN-C200项目总结报告1】 EN-C200项目是一个专注于温湿度数据采集、处理和上传至物联网平台的单板设计方案。该板卡具备控制物联网模拟场景的能力,并提供USB接口方便与PC通信,同时预留了扩展接口,允许用户自定义...
【标题】"2008 年11 月信息系统项目管理师冲刺模拟"是一个针对信息系统项目管理师考试的复习资料集,旨在帮助考生在考试前进行最后阶段的冲刺准备。这个模拟集可能包含了历年考试的重点题目、模拟试题、解析以及备考...
总结来说,这个Java Web模拟项目将涵盖SSM框架的整合使用、数据库设计、前后端交互、安全控制以及测试和部署等多个方面的知识,对提升开发者全面的Web开发技能具有很高的实践价值。通过实际操作,你可以深入理解这些...
### 嵌入式设计与开发项目:模拟停车场停车计费系统 #### 一、项目背景与概述 在“国信长天杯”第三届全国电子专业人才设计与技能大赛中,嵌入式设计与开发项目的模拟试题聚焦于“模拟停车场停车计费系统”的设计...
总结来说,《PMP模拟试题两套试题+答案解析-共360题》是一份全面且实用的备考资源,无论是对于初次参加考试的新人,还是希望巩固知识的资深项目经理,都能从中受益匪浅。通过系统性的学习和练习,考生将能够更自信地...
5. **项目收尾**:完成项目工作,进行验收,总结经验教训,以及正式关闭项目。 在准备软考系统集成项目管理工程师的过程中,考生应重点学习PMBOK(项目管理知识体系指南)中的理论,理解并掌握五大过程组和十大知识...
3. **项目收尾**:包含项目交付、验收、总结和知识转移,这一阶段对项目的成功与否至关重要。 4. **人力资源管理**:如何有效地分配和管理项目团队,激发团队潜能,以达成项目目标。 5. **沟通管理**:如何建立...
总结,"UDP模拟的qq"项目不仅是一个学习Java基础的好平台,同时也是一次深入理解UDP协议和网络编程实践经验的机会。通过实践,学习者可以更好地掌握网络通信的原理和技巧,为将来开发更多复杂的网络应用打下坚实的...
"财务管理沙盘模拟实训总结" 本资源是一个财务管理沙盘模拟实训总结,涵盖了企业结构、财务管理、销售战略、生产计划、采购策略等多方面的内容。 企业结构 在这个沙盘模拟实训中,企业结构包括总经理、财务主管、...
总结,这个Java模拟云盘项目是学习和实践文件管理系统的好例子,涵盖了文件操作、网络编程、GUI设计、多线程处理等多个Java核心知识点。通过对该项目的深入理解和实践,开发者可以提升自己的技能,为未来从事更复杂...
5. **收尾阶段**:完成项目交付,评估项目成果,总结经验教训,为未来的项目提供参考。 6. **九大知识领域**:整合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理,...
本项目标题“模拟支付宝开发集成接口”意指在开发过程中,通过模拟支付宝的操作来简化集成过程,无需实际开通合作账户获取ID和密钥,从而方便开发者进行调试和测试。 首先,我们要理解支付宝开放平台的工作原理。...
《信息系统项目管理师模拟题3套》是一份针对信息系统项目管理师考试的宝贵学习资源,由知名教育机构希赛提供。这份资料集包含了多套模拟试题,旨在帮助备考者熟悉考试格式,提升应对考试的能力。 信息系统项目管理...
总结来说,基于Excel的投资项目风险模拟分析是一种实用且灵活的方法,能够帮助投资者处理不确定性和风险。通过蒙特卡洛模拟,可以生成大量情景,分析投资项目的净现值分布,为决策者提供更全面、更深入的见解。这种...