最近工作感到高兴的是,接触到了我们公司的平台。虽然配置有些复杂,可能对于我是一个刚接触平台的人来说。在这期间也学习到了一些开发思想。
那就是关于领域驱动开发的一些知识.如果我有说的不对的地方请指教,嘿嘿。
只所以写这篇文章还是因为上周我和一个以前的同事的聊天,他现在的开发和我离开的时候开发一样。 (Asp.Net + 简单的分层)
先说一下我的经历吧:(经历这个过程也是一件好事,呵呵,感觉特别想.Net Framework的发展)
2.后来来到了上一家公司,是做ERP的(面向小型企业,比如中关村的企业), 我们三个人开发,一个项目经理,还有一个同事(上面提到的),这个团队还算有经验的,这也是吸引我的一个地方,我想学习一下企业方面的业务知识,怎么使用软件处理的,因为这时候我已经知道了,由于业务知识不熟练、架构设计的不合理,导致软件的不成功,结果由于某些原因没有如愿.
三个月后我离开了这家公司。先说一下这个架构:
(比起我刚毕业的时候,我见识了层次的划分,但是感觉还是不够好,仍然使用存储过程去承担业务知识,使用DataSet去做层与层之间的传输。)
如上图的这个架构的解释: BE处理查询,DE处理删除、修改、添加。层与层之间的传输是 DataSet, 采用的是标准的Asp.Net开发。 Js也使用一些。由于新技术引进比较困难(比如Jquery,服务端技术更不可能:像WCF, MVC估计也是很炫),所以三个月后,我选择了离开。无耐!!!!!!
★模糊的记得在《企业应用架构模式》中有一句话好像是这么说的:企业级应用的复杂度远远高于通信行业。呵呵 去过现场开发的同学估计会有同感。 面对“不合逻辑的”需求需要一个扩展良好的架构。
3.离开后看到了新的知识: EF + WCF + MVC
我想说的是 EF, 他是思想方面、而WCF MVC 更像是技术层面,如果你说里面的设计模式,那就另开新题,嘿嘿。
4. 个人发展历程就像是跟着 .Net Framework在走,在2.0的时候我学习DataSet, 4.0学习EF, 有人说EF是领域驱动开发的一个雏形。我觉得说的很好。开发人员可以创建模型。模型可以很方便和需求人员讲解清楚。现在好像成了我们和需求沟通的语言,无形中的。
5. 那么我们能学习到什么:
表模式:处理DataTable的方式,比如对DataTbale进行select等等。(现在面试都会问面向对象的三个特征、泛型等等,如果你还在使用DataSete,可以看看面向对象的书籍。)
模型开发:面向对象的思想,泛型的应用。等等, 还会有设计模式的贯穿其中等等。
6. 领域驱动设计DDD, 要求我们更关注领域知识,更多讨论业务问题,而不是怎么创建数据表,怎么存储数据等等,从我建立模型的第一天开始,就感觉到了他的厉害,因为这个模型我可以拿出来给任何人看,而且不管是需求、开发、产品等等。用简单的描述,他们就能清楚我要做的事情。已经无意识的成为了公共语言。数据存储是很淡化的一层,我们在开发过程中不需要了解数据的持久化机制,无论是SQL Oracle DB2 哪怕是XML 或是 Nosql,只需要知道应用层的对外接口就够了,因为我们有Model.
分享两本书籍,上周刚到手,如获至宝:
有很多想说的,只是现在思想还不成熟,所以起名为DDD雏形,呵呵! 还要继续学习......
这篇文章没有技术分享,只是思想的转变,欢迎大家讨论拍砖。