课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
编程规范化一直以来都是程序员需要遵循的一个编程开发原则,下面我们就通过案例分析来了解一下,软件开发命名规范都有哪些。
无冗余的信息
一般来说,我们不会主动给命名增加冗余信息。user就是user,但是如果在当时想要新增一个新的子领域对象的时候扩展呢?userInfo、extendUserInfo、extendUserInfoNew?这并不是不会发生的事情,事实上正因为他发生了,且一旦发生就难以调整,我们才要极力地避免。添加一个后缀看起来是一个简单区分的好主意,但是这个实际上也和“意如其文”是一个问题。当一个新的人仅仅看到名称了之后并无法区分他们有什么区别,那么可以进行开发就需要对他们了如指掌才行。仅仅为了确保修改一个功能正确,只能一个一个去确认逻辑,把上下文翻个底朝天。冗余的是废话,是无意义的,就应该去掉,如果真的需要添加区分,就应该增加可以提供鉴别能力的方式,例如userContactInformation。
可以检索
你可以想想,当出现了一个bug,然后其他端的同学提示你说是由于传输数值的问题,而变量名是sum。那么我想,下一步个流程就是确认接口是什么,然后一头扎进了sum是怎么获得的道路上,有可能在过了很长时间之后,你才意识到这个sum甚至不是你的代码里处理得到的,而是直接通过下游系统获得的。确实没有什么好办法,因为sum充斥在工程的各个地方。如果这个名称不是sum,而是叫totalUserSubmitCount呢?我想在IDEA的帮助下,下一步应该是全局检索,而这么精确的名称涉及到的问题就也没有那么多了。当然,并不是说不能使用sum、count这种名称,但如果你使用了,就应该尽量让他们作为一个局部变量呆在一个方法里面。
无类型编码
java是一个强类型语言,你不需要特别地指定它的类型,所以mobileStr这种的命名其实是冗余的,Stringmobile;就足够了,而当有一天mobileStr变成了LongmobileStr的时候,也不会引起额外的误会。
区分方法还是类名
java是面向对象的语言,所以一个类应该是描述的一个对象,那么我们描述一个对象的时候,应该是一个名词;而对象中的方法的时候则应该是对象所具有的能力,所以描述方法应该是动词。
统一命名
就如同开头说的,经常而言,对于save和add,他们的常用语义是不同的,如果混用会让吃过一次亏的人在看你所有的代码的时候都会小心翼翼。那么get和find又有什么区别呢?如果这个概念没有统一,那么你就需要记住隔壁小王是用的find;隔壁小张的save其实不会更新已有对象;对门小李的add方法其实是追加(append)功能。
而除了开发同学之外,这个命名也好和领域本身的命名是统一的。这样在即便是在跟对应的产品,或者业务方进行沟通的时候,在脑子里就不用进行思维上的转换,可以大大地提高沟通效率。
为命名创造合适的语境
因为名称之间本身就是有解释性的,所以在进行一组一组命名的时候,就可以提供上下文信息。例如如果有一组方法login()、logoff()那看起来就是用来进行登录登出的;又或者是一组属性如:price、payTime、couponCode,那么看起来就是订单相关的对象。想这样将一组有交互关系的名称放在一起的时候就可以为支撑的对象、业务提供一个语境,从而帮助理解业务流程。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。