从VS Code源码看清晰代码之美

图片

VS Code的产品做的很优秀,其源码也质量颇高,清晰、整洁、富有美感。

下面是 src\vs\workbench\common\notifications.ts 文件中的两段代码,大家感受一下:

get sticky(): boolean {
    if (this._sticky) {
        return true; // explicitly sticky
    }

    const hasActions = this.hasActions;
    if (
        (hasActions && this._severity === Severity.Error) || // notification errors with actions are sticky
        (!hasActions && this._expanded) ||                   // notifications that got expanded are sticky
        (this._progress && !this._progress.state.done)       // notifications with running progress are sticky
    ) {
        return true;
    }

    return false; // not sticky
}

是不是感觉命名准确、层次分明、逻辑清晰,看起来一目了然。

逻辑块之间用空行分隔,多个判断条件的时候,每个条件单独成行。

变量定义紧跟变量使用,放到一个逻辑块里面。

不太能直接看出含义的地方加注释说明。

还有这段:

private get hasActions(): boolean {
    if (!this._actions) {
        return false;
    }

    if (!this._actions.primary) {
        return false;
    }

    return this._actions.primary.length > 0;
}

大家注意看它的判断语句的写法,这两条判断其实可以写成一个,但是作者没有这么做,而是分开来写,这样更加清晰,易于阅读和理解。

另外,先判错,再判对,避免代码嵌套,也是个常用的最佳实践。

像这样的代码,在VS Code源码中比比皆是,常看看有助于提高代码品味和编程水平。

欢迎关注公众号:清晰编程,获取更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值