zoukankan      html  css  js  c++  java
  • 阅读笔记:程序员修炼之道7

      第二章主要讲的是重复,作者告诉我们不要重复。然而重复是怎样发生的呢?作者给出了如下的分类。

      强加的重复(imposed duplication)。开发者觉得他们无可选择——环境似乎要求重复

      无意的重复(inadvertent duplication)。开发者没有意识到他们在重复信息

      无耐性的重复( impatient duplication )。开发者偷懒.他们重复.因为那样似乎更窄易

      开发者之间的重复( interdeveloper duplication )。同一团队(或不同团队)的几个人重复了同样的信息:

      作者之后又引入数学中的正交性,提出了计算机科学中的正交性。“正交性”是从几何学中借来的术语惇如果两条直线相交成直角、它们就是正交的.比如图中的坐标轴用向斌术语说,这两条直线互不依赖﹒沿着某·条直线移动,你世影到另﹒条直线上的位置不变.在计算技术中、该术语用于表示某种不相依赖性或是解耦性:﹒如果两个或更多事物中的一个发生必化、不会影响其他事物、这些事物就是正交的在设计良好的系统中.数据库代码与用户界面是正交的:你町以改动界面,而不影响数据库;更换数据库,而不用改动界面。

      Eliminate Effects Between Unrelated Things消除无关事物之间的影响我们想要设计自足(self-contained)的组件:独立,具有单一、良好定义的目的( Yourdon和 Constantine称之为内聚( cohesion ) [YC86] )。如果组件是相互隔离的,你就知道你能够改变其中之一,而不用担心其余组件。只要你不改变组件的外部接口.你就可以放心:你不会造成波及整个系统的问题。如果你编写正交的系统,你得到两个主要好处:提高生产率与降低风险,

  • 相关阅读:
    你看懂了程序员的这些笑话吗?
    SharePoint 2013 Designer 自己定义操作菜单
    Ubuntu下用glade和GTK+开发C语言界面程序(三)——学习make的使用方法
    【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)
    LeetCode 122 Best Time to Buy and Sell Stock II
    Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性
    HDU 4914 Linear recursive sequence(矩阵乘法递推的优化)
    TS4
    angularjs1-过滤器
    angularjs1- ng-include
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15644084.html
Copyright © 2011-2022 走看看