小管

winner2009

   :: 首页  ::  ::  ::  :: 管理

      最近工作感到高兴的是,接触到了我们公司的平台。虽然配置有些复杂,可能对于我是一个刚接触平台的人来说。在这期间也学习到了一些开发思想。

那就是关于领域驱动开发的一些知识.如果我有说的不对的地方请指教,嘿嘿。

      只所以写这篇文章还是因为上周我和一个以前的同事的聊天,他现在的开发和我离开的时候开发一样。 (Asp.Net  + 简单的分层)

 

      先说一下我的经历吧:(经历这个过程也是一件好事,呵呵,感觉特别想.Net Framework的发展)

 

      1.在08年我参加工作的时候,我做过一个项目,因为是刚毕业,就会拖拽控件,业务逻辑都在存储过程里面,Codebehand调用存储过程,就在那时候我感 觉自己天下无敌了,我知道无非就是把数据存储起来、在取出来就OK了,至于业务逻辑的复杂、项目维护的成本只好使用人力去解决,所以在我工作的前几个月里 面经常加班到凌晨。悲剧啊!

     

      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雏形,呵呵! 还要继续学习......

     

      这篇文章没有技术分享,只是思想的转变,欢迎大家讨论拍砖。      

 

posted on 2011-05-30 09:17  管宇  阅读(1751)  评论(14编辑  收藏  举报