美文网首页
重构总结

重构总结

作者: CaesarXI | 来源:发表于2020-11-27 09:52 被阅读0次
    const res = a > b ? a - b : 0;
    const res = Math.max(0, a - b); //性能更优
    

    如果判断很多的话, 首先考虑通过配置项解决如字典, 其次使用switch case, 因为switch case 只做一次判断, ifelse最好的情况下做一次判断,最坏的情况下就是n次判断。

    如果很多地方都在对一个变量进行操作,可以考虑将操作和变量抽象为一个类来处理,便于统一开发和维护。例如有一个电话号码mobile的变量,很多地方需要对它做校验,而且每个人都写了自己的校验方法,如果要修改校验的话就要找出每个地方,所以抽象出来更易于维护和管理。

    class Mobile {
        _mobile: string;
        
        constructor() {
            this._mobile = '';
        }
        
        get mobile () {
            return this._mobile;
        }
        set mobile (mobile) {
            this._mobile = mobile;
        }
        
        isValide = () => {
            return (/^(?:13d|15[89])-?d{5}(d{3}|*{3})$/.test(this.mobile));
        }
    }
    

    函数参数粒度越细使用上下文空间越大,即范围越广,反之则越小。在如下例子中可以看到a函数被限定于只能在类customer作为参数时使用,而b函数则不限于某个类,只要传入stateCode就可以使用。

    function a_inNewEngland (customer) {
        const stateCode = customer.address.state;
        return ["MA", "CT"].includes(stateCode);
    }
    
    function b_inNewEngland (stateCode) {
        return ["MA", "CT"].includes(stateCode);
    }
    

    相关文章

      网友评论

          本文标题:重构总结

          本文链接:https://www.haomeiwen.com/subject/jdotwktx.html