从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,一经查实,立即删除!

相关文章

Python基础总结之列表转字符串

Python基础总结之列表转字符串 在Python中,将列表转换为字符串有多种方法,最常用的是使用str.join()方法。这里有一些示例: 使用str.join()方法 这是将列表转换为字符串的最直接和最常用的方法。你需要确保列表中的所有元素都是字符串类型…

本地文件传远程开发

1. 本地文件传远程开发 安装sftp插件 创建sftp配置文件 创建.vscode目录,在目录下创建sftp.json文件,内容如下: {"name": "ip", "host": "ip", "protocol": "sftp","po…

麒麟系统 3588 环境安装手册

目录 一、银河麒麟下安装OPenCV基础库 3、安装yasm-1.2.0 4、安装x264 5、安装fdk-aac-0.1.6 6、安装Speex 7、安装pkg-config 8、安装zlib1g 9、安装libgtk2.0 10、安装ffmpeg ffmpeg环境配置 二、银河麒麟下移植OpenCV 编译opencv qwer1234 麒麟 默认root 密码 …

vue 笔记04

目录 01 自定义指令的使用 02 watch 监听的使用 03 Vue动画之使用动画库 01 自定义指令的使用 系统自带的指令功能不足的时候可以创建自定义指令 和data同级的位置定义: directives:{ 不带v-的指令名称(当前指令所在的标签dom对象,指令对象){ } } 通过指令对象.value能够获…

冲刺面试加油

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

Django 默认 CSRF 保护机制

Django 的默认 CSRF 保护机制旨在防止跨站请求伪造攻击(CSRF)。CSRF 攻击是一种恶意攻击,其中攻击者通过伪造用户的请求来执行未授权的操作。Django 通过以下方式实现 CSRF 保护: 1. CSRF 中间件 Django 包含一个 CSRF 中间件 (CsrfViewMiddleware),它会自动添加到项目的…

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

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

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: 【…

面试高频问题----6

一、String、StringBuffer、StringBuilder 1.String: ***string类是java中用于表示不可变字符序列的类。 ***string对象是不可变的,一旦创建,其值就不能被改变。每次对string对象的修改操作都会生成一个新的string对象。 ***由于string的…

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无疑是最…

【故障诊断】基于改进型的节点重构小波包频带能量谱结合概率神经网络 PNN实现轴承联合故障诊断

研究内容: 基于改进型的节点重构小波包频带能量谱结合概率神经网络(PNN)的轴承联合故障诊断研究旨在开发一种有效的方法来识别轴承故障。该方法结合了节点重构小波包频带能量谱和PNN模型,以提高轴承故障诊断的准确性和可靠性。 研究路线: 文献综述:对相关领域的文献进行…