当前位置: 首页 > Web前端 > CSS

【前端开发】--分享个人习惯的命名方法

时间:2023-03-30 15:35:48 CSS

做好一件平凡的事,很平凡。坚持做好一件平凡的事,是很不平凡的。1.前言如果计算机科学中只有两个问题:缓存失效和命名。那么我觉得命名的难点只有两个:词汇和遵守既定规范。最近在知乎上看到这样一句话:作为程序员,有没有让你感到无语和崩溃的程序名?.顿时感慨万千,因为命名对程序员来说是个难题。有时因为命名,可能会造成误导、质疑等,对开发效率和项目质量的影响可大可小。今天也分享一下我最近一直在使用的命名习惯。当然,这只是个人习惯。希望能在评论区看到大家推荐的命名方式,互相学习交流。关于整个内容,主要有两点:1.如何写出容易让别人看懂的名字2.针对不同的对象,使用对象命名的格式2.盘点那些难读的名字一些命名方式很难让其他人理解。当你看到这些情况时,你应该在开发中尽量避免。2-1.单词拼写错误为例//提交表单(将Form写成From)submitFrom(){...}我在上一篇文章中也说过,单词的正确拼写可以说是一个底线。如果一个单词拼写错误,例如,form和from都是正确的单词,但它们的含义完全不同。如果把form写成from,以后读代码的人(或者你自己)很可能会一头雾水。2-2。混淆中英文单词和拼写错误会误导他人。这种中英文混用的命名方式,会让人感到迷惑,不是误导,只是难以理解。例如下面的letchanpinList=[];这个变量名,我一开始不知道是什么,也没有注释,所以完全一头雾水。后来看了需求,才知道这里的意思是:产品列表。2-3。用1-9、a-z命名相信大家都遇到过这种情况。比如页面上有几个按钮,有些人将它们命名为btn1、btn2、btn3、btn4……或者btnA、btnB、btnC、btnD。这样的命名看似简单,但实际上从这些命名中读不出任何信息,以后可能会更痛苦。2-4.Mixednamingformats这可以说不是那么可恶,但是看起来很别扭。比如表示一个评论列表,一个地方这样命名:comments,另一个地方这样命名:comment-list,还有一个地方这样命名:commentList。几种标准混在一起的时候,感觉不规则。还有一种情况,平时不会出现,但也遇到过。比如在一个地方有一个添加供应商的按钮,名字是:addSupplier。另一个地方有一个相同的功能按钮,一模一样,得到的名称是:addSupplierInfo。当时以为这两个函数不是同一个函数,造成了误解。2-5。强制中文拼音命名有些名词是中国人创造的(淘宝-淘宝,微博-微博),没有英文翻译。可以用中文拼音命名,其他的建议用英文。但有时即使有英文单词,有些人还是用汉语拼音来命名。比如文章列表,很多人直接写文章列表,没有用articleList。但是当你看的时候,肯定会一头雾水。2-6。强制缩写简介虽然可以让命名看起来更简洁,但是有时候你会遇到强制缩写命名,比如一个函数是一个提交用户评论信息的函数。本来以为是:handleCommentSubmit/submitComment/publishComment。结果后来看了看--tjyhpl。强制缩写还是拼音的缩写,后来又让他改成了ac。问了之后才知道他想表达的是addComment,我当时差点就做到了。2-7。不区分单数和复数。这种情况还不错,只是一种规范。之前有两个操作函数,一个是下载所有订单数据,一个是下载当前订单数据。但是两个函数的命名,一个是downloadOrderData,一个是downloadOrder。这也造成了一些混乱。面对这样的情况,建议区分复数订单,downloadOrder,downloadOrderAll/downloadOrderList。区分单数和复数命名。如果有返回值,也可以让别人知道,单数可能返回单条记录,复数可能返回一个数组。2-8。误用正反同上,也未尝不可,只能算是不正经。例如:有两个操作函数,一个是显示弹窗,一个是关闭弹窗。作为上面命名的结果,一个是showEditDialog。另一个是closeEditDialog。上面的例子中,show和close,一个是display,一个是close,显然不是正负词。应该出现的手势是showEditDialog和hideEditDialog,或者openEditDialog和closeEditDialog2-9。随便起个什么好笑的名字,比如你在知乎上看到的,别人遇到的。大家移步知乎吧,这个就不多赘述了。作为程序员,有没有让你感到无语和崩溃的程序名?.3、命名相关格式命名完成后,要正确书写命名字。再说说命名格式。在说自己的命名实例之前,先说说不同的命名对象,命名方式是不同的。具体如下:命名对象建议名称为图片的小写字母,'-'或'_'拆分css(class,id)'-'拆分文件,变量命名为js类(class)用小驼峰命名,常量大写字母用大驼峰命名,'_'拆分临时变量,私有变量以'_'开头,驼峰命名4.HTML命名内容模块,通常是较大的整体可以复用,如导航、菜单、幻灯片、图形列表等。建议在命名前加上m-components:各种常见的网页内容组件,如按钮、标题、输入框等。是建议命名前有u-both关系,模块包含组件,组件组成一个模块。小例子看到上面有一个小弹窗。整个弹出窗口被视为一个模块。您可以将标题、提示内容和按钮用作组件。HTML代码如下,CSS和JS代码就不贴了。模块有m-,组件有u-提示2

这里是提示内容2
OK
至于这种写法的优缺点,注意事项,这里就不说了,自己写稍后的文章。5.JavaScript命名在js命名中,应该只有四种命名方式:小驼峰(productList)、大驼峰(ProductList)、大写字符、下划线分割(PRODUCT_LIST)、下划线+小驼峰(_productList)5-1.输入命名5-1-1。js写法中的小驼峰,小驼峰应该是最常见的一种。变量和函数通常使用驼峰命名。//登录处理函数lethandleLogin=function(){}5-1-2.大驼峰在es6之前,js是没有class这个概念的,但是也无法组织开发者去模拟class。既然有了类,自然就更离不开类的命名规范了。关于类的命名规范,应该很多人都习惯用大驼峰来命名。//创建类classPerson{//...}5-1-3.推荐使用大写字符+下划线来命名常量。//配置最大金额constPRICE_MAX=10000;5-1-4。私有变量私有变量是相对于作用域外的变量,以区分变量是公共的还是私有的。以上命名建议区分一下。私有变量推荐使用下划线+小驼峰开头的命名方式。letmyObj={name:'waiting',setName(){//保存当前thislet_this=this;setTimeOut(function(){alert(_this.name)},1000)}}5-2.按职责命名函数名一般以动词开头。5-2-1。获取值如果函数是获取一个值(函数最后会返回一个值),建议在函数前面加上get。//根据ID获取用户信息functiongetUserInfo(id){}5-2-2.设置值如果函数是设置一个值(函数最后会返回一个值),函数执行就是给一个变量赋值,在函数之前建议有一个set。//设置用户信息函数setUserInfo(){}5-2-3.处理动作如果功能是处理一些操作,比如登录,注册,渲染列表等,那么建议名字前面有handle。//分页操作handleChangeCurrent(val){}//注册操作handleRegister(){}这个处理action,有些开发者也习惯直接用action启动。openDialog、closeDialog等6、目录、文件、图片的命名6-1目录和文件名的命名规则统一采用小驼峰命名法。下例:目录、文件建议名称首页index、index.html搜索页面search、search.html商品列表productList、productList.html商品详情页productDetail、productDetail.html新闻列表newslist、newslist.html新闻详情页newsdetail、新闻详情。html评论列表commentList,commentList.htmlaboutus,about.html如果觉得名字太长可以和团队约定缩写格式:比如product缩写为pro。6-2图片命名规范如果是通用图片,如LOGO、菜单、侧边栏、背景等,直接使用小写字母命名。例如:logo.jpg、menu.jpg、aside.jpg、bg.jpg。如果不是一般图片,建议按照category-module-function的格式。使用小写字母,'-'或'_'分隔,如下示例:图片名称含义btn-submit-comment.jpg提交评论按钮bg-product-list.jpg商品列表模块背景icon-views.png数字ofviewsIconicon-btn-vote.pngVotingbuttonad-news-aside.jpg新闻侧边栏的广告图片7.References一些前端编写规范建议团队协作的css命名约定8.总结关于命名,很简单.这也很难。这也困扰着包括我在内的许多开发人员。本文的命名方式也是我在使用的个人命名方式,希望大家有所收获。当然,它仍然存在许多缺陷。希望大家多多指点,或者推荐一下大家建议的命名方式。关于命名规范,每个公司都有自己的编码规范,但很少有公司能够认真执行自己的规范,从而导致命名混乱。所以命名的难点,我觉得命名本身并不难,难的是项目,面对各种需要命名的对象,坚持使用一套命名格式,正确命名每一个名字。--------------------------华丽的分割线-------------------------想了解更多,与我交流,推荐职位,请加我微信。或者关注我微信公众号:等着书哥