商业网站网址,实现wordpress注册模板,企业网站建设有哪些书籍,crm办公系统点击上方“dotNET全栈开发”#xff0c;“设为星标”加“星标★”#xff0c;每天11.50#xff0c;好文必达全文约2300字#xff0c;预计阅读时间4分钟有人问#xff1a;规范的命名风格真的能让你程序员少出bug#xff1f;当遇到这方面的教训时#xff0c;就会想到这句话… 点击上方“dotNET全栈开发”“设为星标”加“星标★”每天11.50好文必达全文约2300字预计阅读时间4分钟有人问规范的命名风格真的能让你程序员少出bug当遇到这方面的教训时就会想到这句话还是有点道理的。工作快三年多了从刚开始的什么都不懂到慢慢发现积累知识点的重要性。关于程序的命名规范之前也做过一些笔记只是感觉不全面就一直没有写出来。直到前段时间看了邹溪源老师的这篇我认真写下9段如翔一般的代码只为等你来品鉴引发了我的感触再不总结都快2020年了头发都掉了不少。曾经刚工作的时候命名也挺随意的现在看起来都有点想打过去的自己。总有这样的一个过程有些知识点在潜意识里并不知道要去了解深入它。看看这些10中诡异的程序命名你遇到几个0101 措不及防的缩写一般来说如果单词过长的话会采用缩写的方式比如number 》num CurrentUsercurrUser。可是工作中经常会遇到这种“便秘式”命名给人一种措不及防的感觉。有时候还要利用想象的空间的猜一下这个命名到底是个什么玩意。写完整的算了他不他偏要来个缩写缩写后我就看不懂本身就不长干就万事了。 这是一段xaml引入命名空间的代码一个6个字符缩写后成功地变成5个字符最终为大家节省了点击一个键的卡路里。common完美缩写成comonxmlns:comonclr-namespace:SGS.SIO.Common.Utilities;assemblySGS.SIO.Common
建议缩写干脆点实在想不到好的缩写那就直接写完整的单词02 中文命名ps:无法展示类似代码.png)不要觉得中文命名不可思议我以前也是这样觉得居然还有中文命名的上一家公司就有这样的例子。工作一段时间后你可能会遇到一些几年前甚至十年前的代码什么是工作啊工作嘛...... 每一种存在都有他的存在的理由ps不管是好还是坏。我的思考是上一家公司采用中文命名是有一定的原因的那些名词如果英文来翻译的话非常容易歧义、难以理解、甚至跑偏工作嘛不能改变的时候就只能去接受它。 建议不要使用中文命名万不得已的情况下也不要打上注释也行啊03 自己的姓名来命名类和方法这一case来自邹溪源老师文章我认真写下9段如翔一般的代码只为等你来品鉴的第一段落 用自己姓名来命名我是真没遇到过邹老师是一位80后程序员见多识广。所以碰到过这样case我就分享一下/// summary
/// author:zhangsan
/// /summary
class ZhangsanTest
{private void TestGetData(){int a, b, c;}private int ZhangsanGet(int s1, int s2){int s3 s1 s2;return s3;}private Liststring GetData(){return null;}
}
这是一个喜欢用自己的姓名来命名类和方法的作者在他的代码中经常可以看到这样奇怪的对象定义而且他还喜欢用a,b,c,d,e,f或者s1,s2这样的命名仿佛他的代码自带混淆特效。这样的代码嗅起来会不会觉得充斥着奇怪的味道建议名字来命名这事儿挺严肃的毕竟后面接手的人可能会认识你这个沙雕04 加了魔幻的方法命名 private void GetData(){int a, b, c;}
这个我是真的见过看到邹老师分享我抽了根烟相见恨晚.png。另外有没有发现有许多开发者喜欢用 GetData() 来定义获取数据的方法然后这个方法就成为一个万金油的方法不管是爬虫采集、或者数据绑定无论是 C# 写的后端或者 Java 写的后端代码或者用 vue 写的前端代码仿佛在任何场景、任何数据应用都可以看到这样的方法。如果一个项目中有十几个地方都出现了这个** GetData() **方法那种感觉一定非常难受熟悉的名字却是千变万幻的味道。 建议这不是写那个GetData的码农吗你品你细品05 歧义的命名这也是我遇到的真实案例为此付出了无意义的1个小时调试。将一个页面的命名成this可能觉得this好用this挺喜欢好用。比如这个x:Namethis
调用的时候Command{Binding Source{x:Reference this},PathBindingContext.EditCmd}
当时就有点懵逼这个this到底指的是什么。这种以关键字来命名的估计是想报复同事。良好的命名如这样的CheckBox x:NamechkBoxChinese /Label TextchineseLabel.TriggersDataTrigger TargetTypeLabel Binding{Binding Source{x:Reference chkBoxChinese}, PathIsChecked} ValuetrueSetter PropertyFontAttributes ValueItalic, Bold / Setter PropertyFontSize ValueLarge //DataTrigger/Label.Triggers/Label
建议禁止使用关键字来命名06 数字化的命名不要觉得这事我最多也就上学时候干过。全面发展数字一体化。的确挺全面曾经做xamarin的时候在一个activity的里面有56个按钮点了一个其他按钮显示不同状态于是每个按钮变成dialog1、dialog2、dialog3建议根据实际的作用进行命名。07 考验眼神的命名int materialFirstNum 8;
int materialSecondNum 11;
int materialSumNum materialFirstNum materialSecondNum ;
欢迎大家来找茬良好的命名变量是让人一看就明白顾名思义。把不同的部分写在中间书写时容易了但是不容易检查。ps这里指的书写容易指的是写material时各种IDE会有提示 比如这样int firstMaterialNum 8;
int secondMaterialNum 11;
int sumMaterialNum firstMaterialNum secondMaterialNum ;
建议如果有相似的名字请把他们不同的部分卸载开头其次是结尾。08 直接以类型来命名ListMaterialModel list new ListMaterialModel();
string[] array { ,,};
这种名字不好的地方有两个命名根本就不知道代表什么意思毫无意义IDE提示也容易混淆不容易输入 有经验的程序员肯定会写出这个变量是代表什么意思的比如这样的ListMaterialModel materialList new ListMaterialModel();
string[] titleIdArray { ,,};
建议不要写与系统定义类型关键字的命名命名要有意义。09 不规范的方法名比如这个命名public static int TwoNumSubtraction(int firstNum,int secondNum){return firstNum - secondNum;
}
最好改成 动词名词格式subtraction的缩写sub这样的好处是合适的缩写顾名思义SubTwoNum就知道是做两个数的减法运算。public static int SubTwoNum(int firstNum,int secondNum){return firstNum - secondNum;
}
建议方法名最好动词名词格式10 单词拼错的命名SendMassage(...)看到这个我感觉当时这哥们应该压力挺大的。data和date 组合拳式混写可能当时这个当事人自己也写蒙了吧form、from 。这个我也曾经常容易写错傻傻分不清dataOne, dataTwo, dataThree, DataFour (手动捂脸) 建议这个我真没啥建议的.....结语林子大了什么鸟都有最后问一句什么是工作啊下篇会写到代码命名方式有哪些代码规范会写成一个系列