zoukankan      html  css  js  c++  java
  • 分治

    分治,或者说切割,分析或者简单用一个字来说,就是分。经验告诉我们,不论什么复杂的东西总是由简单的“零件”组成。比方汽车,飞机,建筑乃至人体,他们在鲜活的外表下。总是由许很多多静止,简单的“零件”组成的。

    这些“零件”相互协作。一起完毕某些事情。分非常easy,可是怎样分好却非常难。程序本身在内存中执行的时候,总是作为一个总体的,所以本身来说。程序可能并没有分的概念。恰恰相反。它往往体现出来的是一种“合”的概念。因此,非常多人開始敲代码的时候。往往总是会写成一坨。

    这样的程序或许工作起来没有什么问题,可是日后的维护或者扩展那简直就如同噩梦一般。

    所以分治的思想事实上是对开发人员有利的,对于程序来说。事实上是无所谓的。

    由于不管你怎么分治,终于程序载入的时候。在内存中肯定是须要全然载入全部的程序的。有些语言天生这方面就做的好。比方java,天生强制分治的思想,不写包和类就不知道怎么写java程序了。java不是最早的讨好开发人员的语言,事实上python也是。可是python没有java的这样的强制性。

    事实证明,这件事情的却是应该强制的。由于写成一坨的程序是在是太多了。分治的思想在不过规模大的程序上显得尤其重要,但事实上,分治的思想应该渗透到开发的各个部分,而不管程序的规模。



    分治还能引申出一个重要的思想。就是减少耦合。

    说白了就是要分的彻底。

    被切割的程序部分要彻底的独立。不能任意的暴露自己的属性或者方法给别人。

    事实上这就是所谓的封装,面向对象的一个非常重要的特性。

    有些语言可能并不直接支持面向对象的编程,可是这样的思想总是能够变通的实现。而对于某些内聚性非常高的语言,比方clojure这样的lisp语言,非常多的功能数据本身就是封闭的。可能没有这个方面的困扰。

    JS在使用一些框架之后能够非常好的做到这样的分治,比方在使用了require和angular之后,JS就能够全然的支持包和对象操作了,能够非常easy的实现分治。

    分治在大的方向上面能够也应该从业务上和模块的责任上去划分,可是通常都是从技术角度去划分的,比方什么DAO、service什么的。

    这样划分事实上并不合适,由于程序总是应该去契合业务,我们的程序还没有通用到那种相似spring或者hibernate这样的通用框架的程度。因此我认为对于包的划分,最好应该通过业务来划分。

    此外,一般来说对于一个程序来说,数据和对数据的操作事实上是应该分离出来的。这对于后台服务程序来说尤为重要。有助于我们理解我们的业务操作对象是什么。

    后台服务程序非常大程度上事实上是不须要持有状态的,这是和前台UI最大的差别之中的一个。

    而前台非常多时候须要保持一些状态。比方页面上的某些表格中的值,文本框中的值,复选框或者单选button中的选中状况等,这些在程序中应该明白的定义处理。可是前台也须要把数据和对数据的操作分离开,可是前台往往须要一个转换的过程,所曾经台的程序大体上也能够分为三层,一层是数据的获取和变换层。一层是和页面无关的业务处理层。一层是和页面状态相关的展现层。这和MVC的思想本质上是同样的,可是实际开发过程中,应该处理的更仔细一些。MVC事实上还是比較粗犷的,比方所谓的控制器往往不easy再细分,但实际上对于特别复杂的UI,在一个界面上,只一个控制器往往是不够的。



    分治事实上是程序中最为重要的步骤了。分治的好,程序就具备了好程序的基本特征。清晰。明白。











查看全文
  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10722296.html
  • Copyright © 2011-2022 走看看