通常每种语言都有自己的 Coding Style, 比如 C/C++ 和 python 是下划线,java 和 go 是驼峰。所以按照语言的规范来命名比较合理。

驼峰派:

1:从按键上来说,驼峰是SHIFT+字母,下划是SHIFT+减号,打平。

2:从字符上来说,下划线要多出一个字符,所以导致一个源文件的字符数比驼峰来说要多出30%左右。

3:从视觉上来说,多出的30%的字符导致视觉负担,阅读负担,当然是眼里所见的越少越轻松。

4:从现状来看,用驼峰的程序员占据90%以上,虽然没有确切的统计,但从各个公司的实际情况来看是这样的。

5:和下划线相比,驼峰没有一处弱点。如有,请指出。

所以,强烈建议小驼峰。

下划线派:
1.阅读困难,加下划线之后词距拉大,相对来说阅读起来轻松些。
2.为了做全文搜索,驼峰你必须忽略大小写。而下划线命名法做全文搜索可以区别大小写。很少有人在用驼峰命名时,编辑器搜索区分大小写。而一旦你习惯了不分大小写的设定,会在区分大小写的场合感到不习惯。

3.因为驼峰命名法有很多时候存在不同的理解,比如首字母大写还是小写,PlayerID还是PlayerId,如果要统一需要再增加一些规则,这些规则也常常不能被很好的落实

中庸派:

都挺常用的,看你的语言环境啊,应用场景啊,总不能编程规范里要求驼峰命名你还拧着干吧,还有数据库对大小写不敏感这种环境...

  1. 驼峰更加紧凑,可读性这点因人而异(有人对大写不敏感的).搜索的时候记得不区分大小写,打字速度会变慢(毕竟都是不同的大写字母切shift也算挺麻烦的了),缩写需要统一规定(有人全大写,有人仅首字母)

  2. 下划线会增加尺寸,长命名会导致需要换行(可能导致可读性下降).可读性略好(_看起来和空格其实差不多,所以和平时读文章一样)

实际应用还是看场景.比如ST的HAL库,是两种方式融合的...HAL_GPIO_ReadPin()这种.习惯了也还好,比较容易区分.HAL表明这是库函数,GPIO表明外设,ReadPin表明具体功能.很长...敲起来很麻烦

当然,其实也没有绝对的好坏,只是一个取舍而已。项目一致性始终很重要。人家那个项目不建议用驼峰你就别用,人家那个项目规定用驼峰你就用。

你中意那种类型呢?请留言告诉我你的想法把!

你是喜欢用下划线还是小驼峰呢?相关推荐

  1. java下划线转小驼峰,java 下划线转驼峰 驼峰转下划线

    public class StringUtil { /** 下划线转驼峰 * user_name ----> userName * house.user_name ----> userNa ...

  2. php类属性命名驼峰还是下划线,PHP实现驼峰命名和下划线命名互转

    本篇文章教大家实现驼峰命名和下划线命名互转,在php开发中经常需要两种命名法互相转换,下面为大家提供两种实现方式. 第一种方法效率相对差一些,实现方式如下://驼峰命名转下划线命名 function ...

  3. python 下划线转驼峰_json字符串中key值下划线命名转换为驼峰命名

    json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ...

  4. json字符串中key值下划线命名转换为驼峰命名

    json字符串中key值下划线命名转换为驼峰命名: 例如: public class JsonUtils {public final static void convert(Object json) ...

  5. 【Py】下划线命名与驼峰命名转换方式汇总

    下划线转驼峰 方法一 def to_camelcase(text):arr = filter(None, text.lower().split('_'))res = ''j = 0for i in a ...

  6. idea 下划线字段转驼峰_Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的...-Go语言中文社区...

    其实通过逆向工程,然后去配置一些config,就可以实现,从Table到Model的相互转换,而且,对于下划线命名的Table字段,实现驼峰式命名的Model ,有时候我们只是做个测试,或者自己基于数 ...

  7. 字符串的下划线命名和驼峰命名转换

    /*** 将驼峰式命名的字符串转换为下划线大写方式.如果转换前的驼峰式命名的字符串为空,则返回空字符串.</br>* 例如:HelloWorld->HELLO_WORLD* @par ...

  8. java下划线_转驼峰,小写转大写(亲写,亲测)

    public class test {public static String transA2B(String a){String rs = a;if (a.contains("_" ...

  9. Lombok 带下划线如何转驼峰 java.sql.SQLSyntaxErrorException: Unknown column ‘item_name’ in ‘field list’

    导入项目后发现一个Lombok @Data 坑,数据库里的驼峰字段被转换成带下划线的字段. 最开始是这样. @ApiModelProperty(value = "项目名称") pr ...

最新文章

  1. 牛客网_剑指Offer_Python实现_更新中
  2. pandas使用isna函数和any函数判断dataframe中的每一个数据列中是否包含缺失值
  3. SAP PM 初级系列15 - IW33事务代码界面里查看维修工单对应的维修通知单的几个方法
  4. 使用VSCode调试C#控制台程序
  5. Javascript:必须知道的Javascript知识点之“字面量和对应类型”
  6. [转]海量查询的数据优化
  7. Express2.X迁移至3.X注意事项
  8. ElasticSearch 2 (21) - 语言处理系列之单词识别
  9. 梦幻手游最新服务器,梦幻西游手游12月18日新服务器开服公告
  10. =======================================以前的======================================
  11. mod_wsgi的工作模式和配置
  12. C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系
  13. 【英语学习】【Daily English】U08 Dating L01 She is the one for me.
  14. 程序设计基础(C语言)教学案例-序言
  15. MySQL与Oracle 差异比较之五存储过程Function
  16. 关于AP没办法获取IP地址故障排查及思路。
  17. 软件测试肖sir__008项目管理工具之禅道
  18. Unity 3D的常用快捷键
  19. hdu5773 The All-purpose Zero(LIS变形)
  20. Github开源项目总结

热门文章

  1. 菜鸟修炼笔记--QT--【问题】界面切换时焦点各种异常的处理
  2. 达人评测 i9 12900hk和 i9 11980hk 差距大不大
  3. MOS管和三极管到底有什么区别
  4. Dobot magician机械臂抓取实战---机器人导论(1)
  5. oracle中isnumeric,Oracle 中 isnumeric 的三种实现
  6. 斐波那契数列C语言详解
  7. 2022-2028全球与中国循环冷冻空气干燥机市场现状及未来发展趋势
  8. Nuvoton,新唐官网,OpenNuvoton,新唐gitee仓库
  9. 闪电网络系列——什么是闪电网络?
  10. Kafka的零拷贝技术