转自:Python猫 关于变量的命名,这又是一个容易引发程序员论战的话题。如何命名才能更具有可读性、易写性与明义性呢?众说纷纭。...) 帕斯卡命名法(Pascal case) 脊柱命名法(spinal case) 自由命名法(studly caps) 驼峰蛇形命名法 总体而言,这些命名法都是要克服单词间的空格,从而把不同单词串连起来...我们简单比较一下它们的优缺点: 可读性:蛇形命名法用下划线拉大词距,更清楚易读;驼峰命名法的变量名紧凑,节省行宽 易写性:驼峰命名法以大小写为区分,不引入额外的标识符;蛇形命名法统一小写,输入相对方便...现今有不少编程语言在某些场景下会推荐使用蛇形命名法,而 Python 则是其中最早这么做的之一,并且是使用场景最多的语言之一。 维基百科上统计了一份清单,可以看出 Python 对它的偏好: ?...最后,我还看到过一种解释:因为 Python 是蟒蛇啊,理所当然是用蛇形命名…… 对于这三个解释,你们是如何感想的呢?对于蛇形命名法,大家是喜欢还是不喜欢呢?欢迎留言交流。
帕斯卡命名法(Pascal case)脊柱命名法(spinal case)自由命名法(studly caps)驼峰蛇形命名法总体而言,这些命名法都是要克服单词间的空格,从而把不同单词串连起来, 最终达到创造出一种新的...我们可以简单比较一下它们的优缺点:可读性:蛇形命名法用下划线拉大词距,更清楚易读;驼峰命名法的变量名紧凑,节省行宽易写性:驼峰命名法以大小写为区分,不引入额外的标识符;蛇形命名法统一小写,输入相对方便明义性...现今有不少编程语言在某些场景下会推荐使用蛇形命名法,而 Python 则是其中最早这么做的之一,并且是使用场景最多的语言之一。...最后,我还看到过一种解释:因为 Python 是蟒蛇啊,理所当然是用蛇形命名……对于这三个解释,你们是如何感想的呢?对于蛇形命名法,大家是喜欢还是不喜欢呢?欢迎留言交流。...参考文章:Python 为什么推荐蛇形命名法? https://juejin.im/post/6844904193979842567转载本站文章《Python 为什么要推荐蛇形命名法?
,它赋予每个枚举成员自己的类型,并将枚举本身转换为每个成员类型的联合。...TypeScript 5.0 通过为每个计算成员创建唯一的类型,设法将所有枚举转换为联合枚举。这意味着现在可以缩小所有枚举的范围,并将其成员作为类型引用。...是用数组声明的,因为虽然 satisfies 验证了对象的类型,但它并没有直接将其更改为 CompilerOptions 而丢失信息。...这意味着 TypeScript 和 ESLint 等工具通常不会就如何最好地对导入进行排序而相互“斗争”。 这些选项最终可能由编辑器配置。...这有助于捕获在不区分大小写的文件系统上编写的代码的差异问题。
关于变量的命名,这又是一个容易引发程序员论战的话题。如何命名才能更具有可读性、易写性与明义性呢?众说纷纭。...) 帕斯卡命名法(Pascal case) 脊柱命名法(spinal case) 自由命名法(studly caps) 驼峰蛇形命名法 总体而言,这些命名法都是要克服单词间的空格,从而把不同单词串连起来...我们简单比较一下它们的优缺点: 可读性:蛇形命名法用下划线拉大词距,更清楚易读;驼峰命名法的变量名紧凑,节省行宽 易写性:驼峰命名法以大小写为区分,不引入额外的标识符;蛇形命名法统一小写,输入相对方便...现今有不少编程语言在某些场景下会推荐使用蛇形命名法,而 Python 则是其中最早这么做的之一,并且是使用场景最多的语言之一。...最后,我还看到过一种解释:因为 Python 是蟒蛇啊,理所当然是用蛇形命名…… 对于这三个解释,你们是如何感想的呢?对于蛇形命名法,大家是喜欢还是不喜欢呢?欢迎留言交流。
所有枚举都是联合枚举 在 TypeScript 5.0 中,所有枚举现在都被视为联合枚举。 联合枚举为使用枚举值提供了更好的类型安全性和改进的人体工程学。...这意味着现在可以缩小所有枚举的范围,并将其成员也作为类型引用。 5. — moduleResolution 捆绑器 TypeScript 5.0 引入了一种新的模块解析策略,称为 bundler。...这些标志对如何解析模块提供了更精细的控制,使您可以微调构建过程。...编辑器中不区分大小写的导入排序 TypeScript 5.0 通过不区分大小写改进了编辑器中的导入排序。在组织导入时,此更改会导致更自然和直观的排序顺序,从而使代码更清晰、更易读。 13....lib.d.ts 更改:更改 DOM 类型的生成方式可能会对现有代码产生影响。值得注意的是,某些属性已从数字转换为数字文字类型,并且用于剪切、复制和粘贴事件处理的属性和方法已跨接口移动。
前段时间,项目组新来的一个实习生也经常在 Code Review 因为变量命名不规范而被 “diss”,这让我想到自己刚到公司写代码那会的日子。...(snake_case) 测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case) 在蛇形命名法中,各个单词之间通过下划线“_”连接,比如should_get_200_status_code_when_request_is_valid...蛇形命名法的优势是命名所需要的单词比较多的时候,比如我把上面的命名通过小驼峰命名法给大家看一下:“shouldGet200StatusCodeWhenRequestIsValid”。 感觉如何?...相比于使用蛇形命名法(snake_case)来说是不是不那么易读?...2、测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case),比如should_get_200_status_code_when_request_is_valid、CLIENT_CONNECT_SERVER_FAILURE
由于大多数抉择已被确立,因此各个公司将其视为一个不错的选择,因为开发人员可以专注于构建产品,而不必花费时间考虑软件包。...Svelte 具有基于组件的体系结构,可编译为纯 HTML 和原始 JavaScript,同时也承诺减少样板代码。它使用响应式编程来直接更新DOM,而不是利用虚拟的DOM。...、用于SSR应用程序的Next / Nuxt、用于创建服务器的生成器、免却为GraphQL编写服务器的Hasura、使用 GraphQL 代码生成器自动生成 TypeScript 类型、Webpack不断得到简化等等...GraphQL 应用程序是数据驱动的(不是端点驱动),因此客户端可以声明所需的确切数据,从服务器接收相应的JSON响应。...GraphQL 可以通过 GraphQL Code Generator 等工具读取客户端代码中的查询,并将其与架构进行匹配,以提供在整个应用程序中流动的 TypeScript 类型。
1.驼峰式 驼峰命名法(Camel Case)不同单词之间没有分隔符,采用大小写混合的方式区分不同单词。 小驼峰 如果第一个单词首字母小写,称为小驼峰(camelCase)。...帕斯卡蛇形式 如果所有单词首字母都大写,称为帕斯卡蛇形式(Pascal_Snake_Case)。 Pascal_Snake_Case 是将两种命名方式组合而成的一种命名风格。...它是由 Pascal Case(帕斯卡命名法)和 Snake Case(蛇形命名法)组合而成。...string) Simonyi 提出的大多数(但不是全部)前缀本质上是语义的,现在来看,一些前缀也表示物理数据类型,例如以 Null 做结尾的字符串使用 sz 前缀。...然而,这些前缀仍然是语义上的,因为 Simonyi 的想法是使用语义化的前缀来表示变成语言的类型系统无法表达的逻辑上数据类型。 Simonyi 建议的大多数前缀都是自然语义的,但不是所有。
ES7 React/Redux/GraphQL/React-Native snippets:提供React和GraphQL的代码片段和快速生成模板。...只需安装它,让它自动处理替换开/闭标签,无论您何时调整它们中的任何一个;每当您重命名一个开标签或闭标签时,此扩展程序将更新另一个标签。...Color Highlight 简单而强大的扩展,可以实时为所有文件以实际颜色边框或背景突出显示颜色,这样您就不必浪费时间在下次找出特定值的颜色。...,并且还支持驼峰命名法和蛇形命名法。...TypeScript Error Translator TypeScript的错误有时可能会令人困惑和沮丧,但是这个扩展将错误转化为可直接从IDE阅读的人类可读形式。
此外还有 GraphQL,用于把 GraphQL schema 生成服务端和客户端的代码。 但大部分时候,我们的服务端在提供对外接口时还离不开 REST API。...虽然在定义良好的 OpenAPI spec 上它工作得很好,但 OpenAPI 以及其底层的 JSON Schema 毕竟不是为了数据建模而设计的,这就导致代码生成器无论怎么处理,都会陷入各种问题,只能疲于奔命地打补丁...如今,Smithy 的几个代码生成器,Rust,TypeScript,Python,Swift 都有不错的质量。...就可知一二,而 Smithy 又不是个直接和赚钱的服务有关的东西,所以文档的质量就更加一般。...比如 lint 工具可以让大家撰写的代码都有一致的风格,而 Smithy 这样的工具可以让所有人的 API 设计都比较类似,避免意外。
As long as necessary(如有必要,尽量详尽):合理的注释、空行排版等,可以让代码更易阅读、更具美感。 单行注释 必须独占一行。// 后跟一个空格,缩进与下一行被注释说明的代码一致。...常量, 使用全部字母大写,单词间下划线分隔的命名方式。 ? 函数, 使用 Camel 命名法。 函数的参数, 使用 Camel 命名法。 ? 类, 使用 Pascal 命名法。...类的 方法 / 属性, 使用 Camel 命名法。 ? 枚举变量 使用 Pascal 命名法。 枚举的属性, 使用全部字母大写,单词间下划线分隔的命名方式。 ?...由多个单词组成的 缩写词,在命名中,根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致。 ?...因为它并不是从 0 到 length - 1 进行遍历, 而是所有出现在对象及其原型链的键值。 ? 二元和三元操作符 操作符始终写在前一行, 以免分号的隐式插入产生预想不到的问题。 ?
世界级软件大师 Martin Fowler 大神都说过 CS 领域有两大最难的事情,一是缓存失效,一是程序命名。 ? 《Clean Code》这本书明确指出: 代码的注释不是越详细越好。...实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。若编程语言足够有表达力,就不需要注释,尽量通过代码来阐述。 要想让你的编程语言足够有表达力,良好的命名规范是必不可少的。...正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。...蛇形命名法(snake_case) 蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接即可。测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case)。...测试方法名、常量、枚举名称需要使用蛇形命名法(snake_case) ,比如test_get_user()、TIME_LIMIT。并且,测试方法名称要求全部小写,常量以及枚举名称需要全部大写。
常见的命名方法有以下几种: •蛇形命名法(snake case):又叫下划线命名法,使用下划线,单词小写,比如:my_system; •驼峰命名法(camel case):按照单词首字母区分大小写,又可细分为大驼峰命名法和小驼峰命名法...JAVA语言本身是区分大小写的,但是在用文件路径、文件名对文件进行操作时,这里的文件名和路径是不区分大小写的,这是因为文件系统不区分大小写。...非本地注释:注释应该在离代码实现最近的地方,比如:被调用的方法注释就由方法本身来维护,调用方无需对方法做详细的说明; 6. 注释掉的代码:无用的代码应该删除,而不是注释。...你可以使用枚举(Enum)或类(Class)来定义常量。 如果你需要定义一组相关的常量,那么使用枚举更为合适。枚举从安全性和可操作性(支持遍历和函数定义)上面拥有更大的优势。...作为通信媒介使用:也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
我们并不是为了故意揭REST API的短,而是基于我们自己的React应用来看使用GraphQL的主要优势在于: 对前端屏蔽了后端技术的复杂性,让那些后端服务更好地保持了它们的原子性。...为了保证GraphQL server和前端之间的类型安全,我们使用Apollo CLI的代码生成器:使用命令行来生成我们所有GraphQL查询的类型: React示例 在我们的应用中需要用到三种查询:...需要注意的是TypeScript使用.ts和.tsx文件扩展名,而不是.js和.jsx。...然而,不像.jsx/.js之间那样宽松,当文件中包含任何JSX代码时,你必须使用.tsx扩展名,这样TypeScript才能消除JSX和其他TypeScript语言特性之间的歧义。...CreateTodoMutationClass mutation={CreateTodo} {...props} />; CreateTodoType和CreateTodoVariables都是通过Apollo的代码生成器用命令行生成的
酷 三个插件都装上吧,相互补充 5、翻译插件 translation plugin 推荐指数:☆☆☆☆ 推荐理由:不能翻墙的同学,请自行百度如何更换为百度翻译。...6、打字效果 Power Mode II 装逼指数:☆☆☆☆☆ 推荐理由:这个就是美化的,装逼用的。喜欢的可以试试,让编码不再单调。火焰特效,抖动都可以单独关闭。...9、转换大小写CamelCase 或 UpperLowerCapitalize 推荐指数:☆☆☆☆☆ 推荐理由:快捷转换格式:大小写 驼峰,下划线 中划线 等等!...10、代码生成器 codehelper.generator 或者 GenerateAllSetter 推荐指数:☆☆☆☆☆ 推荐理由:每次对象搞set的时候挨个set,有了它可以一键自动set 功能介绍...:生成器,可以更轻松,更高效地生成代码 GenAllSetter功能 单击GenAllSetter btn(支持快捷方式)时,将自动生成所有Setter方法(以set开头的方法)。
TypeScript 通过为变量添加静态类型来扩展 JavaScript,从而减少了错误并提高了代码的可读性。...如果你在学习的过程中遇到困难,可以参考源代码(https://github.com/treyhuffine/graphql-react-typescript-spacex)或查看 live app(https...通过 GraphQL 代码生成器(https://github.com/dotansimha/graphql-code-generator),我们可以扫描 Web 应用目录中的查询文件,并将它们与 GraphQL...我们能够编写与使用它们的组件并存的查询,并且 UI 能够准确地请求它要呈现的内容。 在使用 REST API 时,我们所能找的的文档有可能不是最新的。...如果你对什么地方还不清楚,可以在源代码中(https://github.com/treyhuffine/graphql-react-typescript-spacex)找到一个可行的解决方案。
5、翻译插件 translation plugin 推荐指数:☆☆☆☆ 推荐理由:不能翻墙的同学,请自行百度如何更换为百度翻译。在ide中直接翻译,不需要跳转到网页了,效率神器! ?...6、打字效果 Power Mode II 装逼指数:☆☆☆☆☆ 推荐理由:这个就是美化的,装逼用的。喜欢的可以试试,让编码不再单调。火焰特效,抖动都可以单独关闭。留下重力碎屑就好了 ?...9、转换大小写CamelCase 或 UpperLowerCapitalize 推荐指数:☆☆☆☆☆ 推荐理由:快捷转换格式:大小写 驼峰,下划线 中划线 等等!...10、代码生成器 codehelper.generator 或者 GenerateAllSetter 推荐指数:☆☆☆☆☆ 推荐理由:每次对象搞set的时候挨个set,有了它可以一键自动set 功能介绍...:生成器,可以更轻松,更高效地生成代码 GenAllSetter功能 单击GenAllSetter btn(支持快捷方式)时,将自动生成所有Setter方法(以set开头的方法)。
常见被违反的规范 今年升级一个核心代码从很久以前的代码改写过来的软件,各种不符合C#代码规范的代码让我感到难以维护;去年系统工程师退休前留给我们的一个代码更是让我受到会心一击。...但是微软自己的框架中就一大堆啊?不过这些都不常用,给一般用户的API最好还是要遵守这条规范。 要用肯定性的短语(CanSeek而不是CantSeek)来命名布尔属性。...我觉得dont-前缀真的挺常见的,.NET Core的源码里能搜出一大堆。无论如何我还是建议用肯定性的短语,否定性短语让人混淆。...现在我在处理的遗留代码既使用数组作为属性,又可Get和Set,毕竟是从很久以前一路修改过来的,当时的开发者应该也没想到这些代码现在会让人这么困扰吧。...无论是不是框架的代码,把异常吞了的做法都很让人困扰,除非有充分的理由。 不要正常的控制流中使用异常,如果能够避免的话。
As long as necessary(如有必要,尽量详尽):合理的注释、空行排版等,可以让代码更易阅读、更具美感。 单行注释 必须独占一行。// 后跟一个空格,缩进与下一行被注释说明的代码一致。...使用 Pascal 命名法。...枚举的属性, 使用全部字母大写,单词间下划线分隔的命名方式。...根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致。...因为它并不是从 0 到 length - 1 进行遍历, 而是所有出现在对象及其原型链的键值。
领取专属 10元无门槛券
手把手带您无忧上云