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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冲刺面试加油

1、HTML语义化? 对于开发者而言,语义化标签有着更好的页面结构,有利于代码的开发编写和后期的维护。 对于用户而言,当网络卡顿时有良好的页面结构,有利于增加用户的体验。 对于爬虫来说,有利于搜索引擎的…

所谓自律,就是去对抗那些廉价的快乐

所谓自律,就是去对抗那些廉价的快乐 以下文章来源于洞见 ,作者洞见 导语 打败内心那只及时享乐的猴子。 董宇辉说过这样一句话:“廉价的快乐是直接给你想要的东西,高等的快乐则会给你设置重重阻碍。” 廉价的快乐,就…

Huggingface的Transformer库经验总结

文章目录 transformerstransformers.Trainertrain()tr_loss self.training_step(model, inputs)dagn的forward中逐步计算损失函数 transformers transformers.Trainer class Trainer:#这段代码根据训练数据集的类型和硬件环境,选择适当的采样器来处理数据集。def…

【免费Web系列】大家好 ,今天是Web课程的第十七天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r SpingBoot原理 在前面十多天的课程当中,我们学习的都是web开发的技术使用,都是面向应用层面的,我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇…

冯喜运:6.7晚间黄金原油行情分析及操作建议

【黄金消息面分析】:周四(6月6日)纽市尾盘,现货黄金盘中报2373.15美元/盎司,涨18.16美元或0.77%。如果金价反弹至上周高点2364上方,将引发一周看涨反转。日收盘价高于该价格水平将确认突破。一旦突破得到确认,金价进一…

Vue3【十一】08使用toRefs和toRef

08使用toRefs和toRef toRefs()函数将person对象中的name和age属性转换为响应式引用,并返回一个对象,对象中的name和age属性都是响应式引用,具有响应式功能。 toRef()函数将person对象中的name属性转换为响应式引用,并返回一个响应…

海南聚广众达电子商务咨询有限公司正规吗?

在数字经济的浪潮下,海南聚广众达电子商务咨询有限公司凭借其对抖音电商领域的深刻洞察和专业服务,成为引领行业新风尚的佼佼者。公司不仅具备丰富的电商运营经验,更有一支高效、创新的团队,致力于为品牌商家提供全方位的电商解决…

ThingsKit:智能物联网平台的创新者

在数字化浪潮的推动下,物联网(IoT)正在迅速改变我们的生活和工作方式。ThingsKit,一个领先的物联网平台,致力于通过其创新的技术和服务,为用户提供一个全面、灵活且易于使用的解决方案。 核心特点 设备连接…

MyBatisPlus插件生成代码

文章目录 概要安装插件使用插件 概要 MyBatis-Plus 是 MyBatis 的增强工具,旨在简化 MyBatis 的开发。MyBatis-Plus 代码生成器插件可以自动生成项目中常见的代码,如实体类、Mapper 接口、Service 接口和实现类、Controller 等,从而减少手动…

FreeSurFer的recon-all处理流——学习记录

官方网址:ReconAllTableStableV6.0 - Free Surfer Wiki (1)颅骨剥离skullstrip 颅骨剥离后生成文件:/mri/brainmask.mgz (2)图像配准canorm Freesurfer图像配准:将 mri/nu.mgz 体积与 FREESU…

SpringBoot+Vue学生作业管理系统【附:资料➕文档】

前言:我是源码分享交流Coding,专注JavaVue领域,专业提供程序设计开发、源码分享、 技术指导讲解、各类项目免费分享,定制和毕业设计服务! 免费获取方式--->>文章末尾处! 项目介绍047: 【…

MTK7621+MT7603+MT7613 RF定频测试方法

1、从下面网址下载QA软件包,然后在WIN系统下安装QA环境。https://download.csdn.net/download/zhouwu_linux/89408518 在WINDOWS 7系统下先安装WinPcap_4_1_3.exe。 2、电脑先连接仪器,主板网络与电脑连接并接12V 2V的电源。模组默认的IP:10…

天才程序员周弈帆 | Stable Diffusion 解读(一):回顾早期工作

本文来源公众号“天才程序员周弈帆”,仅用于学术分享,侵权删,干货满满。 原文链接:Stable Diffusion 解读(一):回顾早期工作 在2022年的这波AI绘画浪潮中,Stable Diffusion无疑是最…

C++面向对象程序设计 - 字符串流

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(…

《中国数据库年度行业分析报告》节选:数据库关键技术及发展趋势

墨天轮于5月29日正式发布 《2023年中国数据库年度行业分析报告》,总结梳理了中国数据库行业的技术演进及趋势。作为云上数据库和数据计算领域的领先者,拓数派受邀参与创作,联合编写了《AI 时代下新一代数据仓库的演进》《从数据库到数据计算系…

VMware导入小白分享的MacOS版本之后,无法开机的解决方案

前言 这段时间陆续有小伙伴找到小白,说:导入小白分享的MacOS版本之后,出现无法开机的问题。 遇到这个问题,并不是说明分享版本有问题,因为大部分小伙伴导入之后都没有出现类似的问题,都是导入之后开机&…

NVeloDocx一个基于NVelocity的word模版引擎

NVeloDocx是一个基于NVelocity的Word模版引擎,目前主要是用于E6低代码开发平台供用户轻松制作各种Word报告模版。 有以下优点: 1、完全的NVelocity语法; 2、直接在Word中写NVelocity脚本,使用非常非常方便; 3、完全兼…

数据集笔记:DGraph 大规模动态图数据集

dgraph-web (xinye.com) 1 数据集介绍 DGraph 是一个有向无权的动态图,包含超过 370 万个节点以及 430 万条动态边DGraph 中的节点表示金融借贷用户,有向边表示紧急联系人关系,每个节点包含脱敏后的属性特征,以及表示是否为金融…

C++ STL -算法

目录 前言: 一. sort() 二.find() 三. for_each() 四. size() 五.copy() 六. 总结 前言: STL 算法是基于模板实现的,可用于不同类型的容器。 意义和作用: 提高代码的可复用性和可维护性.减少代码量,提高开发效率.提供高效、可靠的实…

vb开源项目推荐:PhotoDemon9.0一键批量去除图片水印

PhotoDemon 9.0作为一款开源免费的照片编辑器,提供了丰富的图片编辑和处理功能,可以通过PhotoDemon的批处理功能结合一些编辑技巧,来实现批量去除图片水印的目的。 以下是一个可能的步骤指南,用于在PhotoDemon 9.0中通过批处理间…