软件分层的思考

        程序设计的时候,经常是会做分层设计。有时候做分层,例如controller,service,dao,都成了一个习惯,也没有思考过为什么这么分层,更没有想过,除了这个分层之外,有什么其他分层实践。

       我们首先会想到一个问题,是什么导致了分层的出现?很直接的想法就是为了控制复杂度。分层其实就是一种分而治之的思想。那分层为什么就可以控制复杂度呢?人类的大脑在一个时间段内,能够关注的事件其实很少。换句话说,是人类的天生的生理属性导致了分层的出现。那为了控制大量复杂的代码,分层就是很自然的做法。

        第二问题,我们会想到,分层,应该如何分,有没有什么规律?分层的规律还是有的,其实就是一分为二的做法。最原始的分层,我觉得就是两层,一层是核心业务层,一层是支撑业务层。如果复杂度还是控制不下来,就继续按照一分为二拆分,拆分为核心的,次核心的。但是分层本身也会带来复杂度,所以分层也不应该太多,拆分太多层,反而会带来偶然复杂度,得不偿失。

         

        

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 光阴不语文/春雨时空里无语而迅疾日出日落,斗转星移触摸无形又无踪万物却在光阴里生息脚步走过的长短都有光阴的距离从哇...
    春雨工作室阅读 458评论 1 9
  • 2019年3月3日星期日晴天 又是一天即将结束,默默地回忆,今天心情还算可以吧,起码大部分时间是可以的。 老大今天...
    漫漫无忧阅读 397评论 3 6
  • 他是大冰的朋友,大冰叫他"老谢" 1994年的老谢,还是个小学生,因为小学学校的屋顶已经快撑不住了。学校就给学生每...
    HEROCJJ阅读 2,160评论 1 5