首页 > 其他分享 >标识符命名

标识符命名

时间:2024-09-02 21:16:02浏览次数:8  
标签:Conciseness good 正确 Distinguishability vs 命名 标识符

命名的重要性

Your code is for a human first and a computer second. Humans need good names.

— Martin Fowler, Refactoring:Improving the Design of Existing Code

  • 好的命名使代码更容易理解
    • 理解力
    • 帮助记忆。记住代码逻辑、结构和作用。
  • 提高工作效率
    • 提升查找效率
    • 减少阅读理解代码成本
      • 减少修BUG时间
      • 减少开发时间
    • 减少沟通成本
  • 助力职业发展
    • 好的命名需要对相关概念和知识有清楚的理解和认识。

命名的难点

There are only two hard things in Computer Science: cache invalidationand naming things.

— Phil Karlton

  • 缺乏相关标准或工具
    • 无法精准评价命名的好坏
  • 需求可能迭代变化
    • 某些情况下好的命名可能由于功能迭代变成坏的命名
  • 收益不明显
    • 想出一个更好的命名可能需要花更多的时间。

命名原则

  • Understandability
    • What is above all needed is to let the meaning choose the word, and not the other way around. In prose,the worst thing you can do with words is to surrender to them.

      — George Orwell

    • 表示正确的概念
    • 用字典里有的单词
      • people_group(bad) vs organization(good)
    • 正确的复数
    • 正确的词性
    • 避免误导
      • lua的table和list
    • 使用正确的专业术语
    • 包含量纲的单位
    • 避免不通用的缩写
  • Conciseness
    • The more you say,the less people remember.

      — Francois Fenelon

    • 抽象层级要合适
    • 省略元数据
      • 类型,作用范围
      • 动态类型语言不推荐省略
    • 省略实现细节
  • Consistency
    • It is better to have a system...reflect one set of design ideas than to haveone that contains many good but independent and uncoordinated ideas.

      — Fred Brooks, The Mythical Man-Month

    • 每个概念只能有一个名字
      • 避免描述一个概念使用多个不同的同义词
      • 术语要正确
    • 相似的概念有相似的名字
    • 相似的名字有相似的格式
    • 遵守一套编程规范
    • 使用正确的反义词
  • Distinguishablity
    • 避免多义词
    • 避免同音词
  • Tradeoff
    • 优先保证Consistency
      • 不一致往往其它原则也不会满足
    • Understandability vs Conciseness
      • 取决于上下文
      • 借助Distinguishablity来判断
    • Understandability vs Distinguishability
      • 同义词很容易触发问题
    • Conciseness vs. Distinguishability
      • 优先Distinguishability

标签:Conciseness,good,正确,Distinguishability,vs,命名,标识符
From: https://www.cnblogs.com/wenxuanh/p/18393545

相关文章

  • 命名空间在 C++ 中如何组织和管理代码?,c++中的命名空间是什么意思
    在C++编程中,命名空间(namespace)是组织和管理代码的重要工具。它为程序员提供了一种将代码按逻辑分组的方法,避免名称冲突,特别是在大型项目或使用多个库时显得尤为重要。命名空间可以看作是一个作用域,它包含了标识符(如变量、函数、类等)的集合。当我们在不同的模块中使用相同的标识符......
  • js变量命名的规则和规范
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • 第七章 项目布局实现(7.4.5)——ElementPlus 自定义命名空间
    7.4.5ElementPlus自定义命名空间参考:https://cn.element-plus.org/zh-CN/guide/namespace.htmlElementPlus提供的默认命名空间为el。在特殊情况下,我们需要自定义命名空间。我们使用sass书写样式,必须同时设置ElConfigProvider和scss$namespace。设置ElC......
  • Winobj 是一个由微软提供的工具,用于查看和浏览 Windows 操作系统中的对象命名空间。它
    Winobj是一个由微软提供的工具,用于查看和浏览Windows操作系统中的对象命名空间。它允许你查看系统中的各种对象,如文件系统对象、注册表键、符号链接等,帮助深入了解系统的内部结构。Winobj是由微软开发的一个工具,起源于微软的内部开发和调试需求。它最初是为了帮助开发人员和......
  • 航空公司名字趣史:看看有趣又有意义的命名背后有什么玄机
    上周“东海航空”事件引发了东方航空在社交媒体上的一系列被迫营业,因为媒体的乌龙报道误将“东海航空”简称为“东航”,甚至直接用错了图片。众号:@标猿公司起名&nbsp;给公司起个好名字其实除了大部分以地域、国家命名的航空公司,还有一小部分航司的取名方式自带玄学,你往往无法......
  • 5 Python的变量、关键字、命名规则、基本数据类型及类型转换
    本文是Python系列教程第5篇,完整系列请查看Python专栏。1定义变量在Python中定义变量非常简单,你只需要给变量赋值即可。Python会自动检测变量的数据类型。下面是一些基本的例子来展示如何定义不同类型的变量:1.1整数age=251.2浮点数height=1.751.3字......
  • ai取名生成器在哪?让你的命名过程更轻松
    创建产品或企业时,一个响亮的名字往往能让你一秒记住。但寻找一个完美的名字却是一项艰巨的任务,足以让人头疼不已。不过别担心,今天就要向你介绍一些ai取名生成器在线免费工具。只需一句话,它们就能为你提供一系列充满创意的名称。还在为取名而烦恼的小伙伴,快看过来吧~▌ai取......
  • UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
    UDS诊断服务系列文章目录诊断和通信管理功能单元UDS诊断-DiagnosticSessionControl(诊断会话控制)(0x10)服务UDS诊断-ECUReset(ECU重置)(0x11)服务UDS诊断-SecurityAccess(安全访问)(0x27)服务UDS诊断-CommunicationControl(通信控制)(0x28)服务UDS诊断-TesterPresent......
  • 标识符
    Java语法标识符关键字自定义标识符不能是关键字标识符注意点所有的标识符都要开头:以字母(a-z,A-Z)、美元符($)、下划线(_)首字母:字母(a-z,A-Z)、美元符($)、下划线(_)、数字自定义标识符不能是关键字标识符区分大小写区别变量的名字可以是中文例子:合法:ww2、www、$w......
  • 菲菲更名宝贝:批量处理,文件命名不再繁琐
    你是否有这样的经历?曾几何时,在堆积如山的文件中迷失方向,为了一个个手动重命名文件而加班到深夜?是否渴望有一种魔法,能瞬间让你的文件整理得井井有条,让繁琐的命名工作变得轻松愉快?那么,让我为你揭秘这款神器——“菲菲更名宝贝”!使用它,你将体验到前所未有的便捷与高效。无论是......