Git Product home page Git Product logo

blog's People

Contributors

wangdachui01 avatar

Watchers

 avatar

blog's Issues

重构 改善既有代码的设计 读书笔记

为什么重构? 因为闻到了代码的坏味道, 这些坏味道具体表现在:

  1. Duplicated Code 重复代码: 自己遇到业务场景 之前做wap 上拉刷新功能, 我先在一个地方实现, 因为没有及时拿出来做成组件来调用, 导致拥有上拉刷新功能的不同页面都需要重复这个代码。非常不利于维护。 改进方案是:做成组件,特定需求, 传递参数进去。
  2. Long Method 过长函数,程序越长, 越难理解,成正相关姿态, 给小函数起一个好名字, 就能做到通过理解名字了解函数作用, 根本不必去看其中写了什么:自己遇到业务场景:有实现过一个上传excel文件数据的功能, 上传后需要对上传的多行数据校验, 因为数据类型比较多, 多个判断, 自己写在一个函数中。 每次修改部分功能, 都是折磨。逻辑复杂,不利于写于健壮的代码。改进方案是:用小函数拆分逻辑,保证小函数的正确性。
  3. Large Class 过大的类:暂时没遇到过
  4. Long Parameter List(过长参数列) [缺点:太长的参数列难以理解, 太多参数会造成前后不一致, 不容易使用]: 想到一点, jquery插件一般都要有很多配置项, 现行的解决方案是, 将配置项全部写入一个object{}中, 将这个object传入插件对象。
  5. Divergent Change 散发式变化

2017年01月

工作计划

  • Mercury
  • Venus
  • Earth (Orbit/Moon)
  • Mars
  • Jupiter
  • Saturn
  • Uranus
  • Neptune
  • Comet Haley

重构 改善既有代码的设计 读书笔记(第三章)

为什么重构? 因为闻到了代码的坏味道, 这些坏味道具体表现在:

  1. Duplicated Code 重复代码: 自己遇到业务场景 之前做wap 上拉刷新功能, 我先在一个地方实现, 因为没有及时拿出来做成组件来调用, 导致拥有上拉刷新功能的不同页面都需要重复这个代码。非常不利于维护。 改进方案是:做成组件,特定需求, 传递参数进去。
  2. Long Method 过长函数,程序越长, 越难理解,成正相关姿态, 给小函数起一个好名字, 就能做到通过理解名字了解函数作用, 根本不必去看其中写了什么:自己遇到业务场景:有实现过一个上传excel文件数据的功能, 上传后需要对上传的多行数据校验, 因为数据类型比较多, 多个判断, 自己写在一个函数中。 每次修改部分功能, 都是折磨。逻辑复杂,不利于写于健壮的代码。改进方案是:用小函数拆分逻辑,保证小函数的正确性。
  3. Large Class 过大的类:暂时没遇到过
  4. Long Parameter List(过长参数列) [缺点:太长的参数列难以理解, 太多参数会造成前后不一致, 不容易使用]: 想到一点, jquery插件一般都要有很多配置项, 现行的解决方案是, 将配置项全部写入一个object{}中, 将这个object传入插件对象。
  5. Divergent Change 散发式变化

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.