首页 > 编程语言 >从VS Code源码看清晰代码之美

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

时间:2024-06-08 10:05:27浏览次数:24  
标签:Code return hasActions 之美 actions sticky 源码 ._

图片

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源码中比比皆是,常看看有助于提高代码品味和编程水平。

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

标签:Code,return,hasActions,之美,actions,sticky,源码,._
From: https://blog.csdn.net/wannianchuan/article/details/139539839

相关文章

  • Springboot计算机毕业设计疫情防控平台微信小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今全球化和信息化的时代背景下,疫情的快速传播对社会稳定和人民生命健康构成了严重威胁。特别是在移动互联网高度发达的今天,如何利用科技手段有效......
  • Springboot计算机毕业设计疫情防控下的出入校园管理小程序【附源码】开题+论文+mysql+
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着全球疫情的持续演变,校园作为人员密集、流动性强的场所,其出入管理面临着前所未有的挑战。传统的出入管理方式不仅效率低下,而且难以对出入人员的健......
  • [Tkey] CodeForces 1267G Game Relics
    太神了这题,膜拜出题人orz。思考一首先是大家都提到的一点,先抽卡再买。这里来做个数学分析。假设我们还剩\(k\)种没有买,其实我们是有式子来算出它的花费期望的。WIKI上提到,假设一个事件的概率为\(p\),则遇到它的期望为\(\frac{1}{p}\),因此,对于这个题,抽到一个新物品的概率显......
  • JAVA计算机毕业设计基于的课程实验预约系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今教育环境中,实验教学是培养学生实践能力和科学素养的重要环节。然而,随着学生人数的增加和实验教学资源的有限性,实验预约和管理变得愈发复杂。传......
  • JAVA计算机毕业设计基于的垃圾分类管理系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着城市化进程的加速和人口的增长,垃圾问题已经成为影响城市可持续发展的一大挑战。传统的垃圾处理方式不仅效率低下,而且往往对环境造成二次污染。近......
  • JAVA计算机毕业设计基于的剧本杀管理系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今社会,剧本杀已经成为一种备受欢迎的休闲娱乐方式。随着其市场需求的不断增长,剧本杀店铺如雨后春笋般涌现。然而,随着业务规模的扩大,剧本杀店铺的......
  • Q15 LeetCode54 螺旋矩阵
    1.和上一题主体部分一模一样,加了判断语句2. intm=matrix.length,n=matrix[0].length;二维数组的长度3.List得实例化  1classSolution{2publicList<Integer>spiralOrder(int[][]matrix){34List<Integer>ans=newArrayList<>(......
  • Q14 LeetCode59 螺旋矩阵
    1.二维数组声明  int[][]ans=newint[n][n];2. left<=right&&top<=bottom 跳出循环条件 1classSolution{2publicint[][]generateMatrix(intn){3int[][]ans=newint[n][n];4intnum=1;5inttop=0,bottom=n-1,left......
  • 【6月最新版本】ChatGPT商业运营网站源码,Midjourney绘画系统,支持AI换脸+GPTs+GPT语音
    【6月最新版本】ChatGPT商业运营网站源码,Midjourney绘画系统,支持AI换脸+GPTs+GPT语音对话+DALL-E3文生图+文档分析+Suno-AI音乐生成文章目录一、文章前言《SparkAI系统介绍文档-渐进式AIGC系统》系统核心功能二、系统演示三、系统功能模块3.1AI全模型支持/插件系统A......
  • Q13 LeetCode76 最小覆盖子串
    1.难题2.need.containsKey(r)看hashmap中是否含有r3.明天再复盘一遍  1classSolution{2publicStringminWindow(Strings,Stringt){3if(s==null||s.isEmpty()||t==null||t.isEmpty()||s.length()<t.length())return"";4......