zoukankan      html  css  js  c++  java
  • phper談談最近重構代碼的感受(2)

    重构代码更多的是对程序的可读性和可扩展性上做一些优化。

    首先我对可读性进行细化。借鉴大神川山甲的重构系列文http://www.cnblogs.com/baochuan/archive/2012/03/31/2425441.html,我也来抛砖引玉。

    面对一些有bad smell的代码,我们应该如何处理呢?

    我觉得应该遵循面向对象的一些最基本的原则:封装,复用,抽象,继承,组合优先。

    1.封装是第一原则,让客户端的调用变得更简单,封装细节,暴露同一接口。

    封装的第一步就是消灭重复的代码块儿。我所说的代码块儿也包括同一个类,两个方法含有相同表达式。

    比如列表显示查询这段:

    如果function pending,function index()的查询只是某些字段不同,而查询内容相同。完全可以把公共的这段剥离出来,并传递不同查询参数。

    下面就要说到可读性,$status =1 或者等于2的含义是什么,也许现在状态少还好理解,可如果以后状态更多了呢,有更多人参与这个项目的开发,去理解代码就需要更多成本。所以建议定义常量,让代码可读性变强。常量放到对应Model里面。

    eg:

    $query['status'] = SomeModel::APPROVED;

    总结:DRY原则 + more readable.

  • 相关阅读:
    java线程管理
    java进程间通信
    Possible multiple enumeration of IEnumerable
    Adding Search
    Working with SQL Server LocalDB
    ASP.NET Razor
    ASP.NET Razor
    modelstate.isvalid false
    Razor Intro
    open Command window here
  • 原文地址:https://www.cnblogs.com/freephp/p/4657841.html
Copyright © 2011-2022 走看看