zoukankan      html  css  js  c++  java
  • DRY(1)--读后感

    题记:

    去掉重复的信息会让你的代码的结构发生本质的变化

    —— vczh

    正文:

    因为要对项目做重构, 所以, 读了 vczh 的这篇 <<靠谱的代码和DRY >> 和 <<The Pragmatic Programmer>> 的 Item7, 8. 下面是部分摘录:

    不能repeat的其实是信息,不是代码。然而, 分析什么是信息又不是一件简单的事情.所以, 只能不断地修改. 目的: 保证代码质量不断提高.

    换句话说, 不断地重构.而重构, 又需要做TDD. 目的: 保证代码质量.

    特别的, 对GUI做TDD, 又需要MVC. 目的: 方便代码的测试.   => 首先, 实现代码的MVC.

    另一方面:

    在现实生活中, 居多的 applications are database driven。在UT时, 作为 Database 也就意味着需要有一个 Real Database Class。

    这个时候, 你要构造出整个 Database Class 才能进行 UT。这是一个很High的Burden。通常情况下,coder会把这些东西扔给QA做Functional Test。

    image

    image

     

    而当 it comes to programming,design by contract, 必然得到各种interface,那么UT就可以方便地进行。

    interface:表达的是,“能做什么”,其实, 是一种function。function当然容易测试。 目的:方便测试。

    另一方面, 做TDD时, vczh 的风格是, 先UT, 最后加GUI. 目的: 追随master.

    正交的代码易于测试: (1) 没有重复/平行的代码, 不需要重复测试.

    重构时,

    (1)如何划归成MVC?

    (2)如何实现 interface oriented programming?

    ### Update

    1. 信息, 具有 结构, 组成 这样的meta data.

    比如: Tony;Male;Engineer 这样的信息, 结构: (field N;)*, 组成, 如分隔符(;).

    还有,类型信息(CommonDef)。

  • 相关阅读:
    安装MySQLdb
    树莓派及其他硬件平台国内外Linux镜像站全汇总
    rpc使用举例
    SAE上安装第三方模块
    【Java】Map
    【Java】判断字符串是否含字母
    【Android Studio】提示代码忽略大小写
    【iOS】Xcode 离线文档
    【iOS】iOS main() 简介
    【eclipse】No enclosing instance of type A is accessible. Must qualify the allocation with an enclosing instance of type A
  • 原文地址:https://www.cnblogs.com/permanence-practice/p/3986605.html
Copyright © 2011-2022 走看看