命名这门学问

       写在最前面,这篇文章敬网上有这方面思考的各位大神。我有这方面困惑的时候,参考了很多前人的思考,再次感谢。此篇文章更像是自己总结的一个备忘笔记

       名不正,则言不顺。好的命名,堪比好的算法。甚至有时候一个合适的命名,就能省掉几十行的注释。并且让人印象深刻。当你开始关注命名这个问题时,你可能已经发现其中的秒处了。

      在懊恼的选择中,纵向寻求一些规则,让自己做事显得不是那么毫无章法。下面就列举一些小章法,仅供参考

一、类名

  • 原则

类名:名词或者形容词

操作类以service或者operator结尾

业务模块:使用名词+动词+er/or

不要通篇的helper manager

  • 类名描述

不建议采取缩写形式,首字母的缩写,可读性很差。如果说理由的话,我会说微软的.net框架中几乎找不到缩写的形式,你可能会反驳说框架中涉及到的业务比较大单一,实际业务中描述清楚一个对象,就需要几个单词,不可避免的会很长,所以才缩写。我只能说,你还没有花心思去找更能表达清楚对象的词汇,即使真的很难找到。我也认为,不应该缩写,即使很长。

  • 工具类

util:一般表示通用业务,可在各个系统中移植使用

tool:部分通用的部分业务相关的,因此不能用在其他系统体系中

service:是处理单一业务的,UserService就只处理用户的相关操作。

helper:与其翻译成帮助,不如叫做辅助类,是一些现有功能的封装,为编码过程提供便利。如:SqlHelper

  • 业务基类

命名业务类的基类,以base结尾,而不要以base开头

如AAA的基类,命名成AAABase。这样做,一个显著的好出是,有效的利用了编译器的智能提示功能。你想继承某个业务,你大概是知道这个业务 的名字的,通过这个名字就能联想出xxxBase

  • 数据库逻辑类

数据库逻辑操作类使用 【名词+Bll】。因为大家都这么写

二、对象

  • 静态实例,使用Current还是Default

Current一般表示当前上下唯一,Default表示应用级别唯一的

  • 声明变量

如果你还没有养成给花心思给变量取名的习惯,也请不要随便敲几个字符就完事,最起码要写个类名相关的描述

三、属性

  • 去掉不必要的限定描述

例如:属性命名

放在类的名字就是Name,不要带着类的修饰词。如Name和SellerName,在Seller类中应该取前者Name,而不是冗余的SellerName

 

网上有大神总结的一些常用功能类结尾词,转录

功能

结尾词

获取器/查询器

Getter

Finder

Accessor

修改器/编辑器

Modifier

Updater

Adjuster

Editor

发送器/接收器

Emitter

Sender/Receiver

Broadcaster/Multicaster

访问器/迭代器

Visitor

Iterator

生命周期相关

Loader

Parser

Constructor/Maker/Creator/Generator

Initializer

Register

Activator

Starter

Stopper

Destroyer

事件相关

Listener

Producer/Consumer

Observer/Observable

Timer

封装/容纳

Adapter

Wrapper

Container

Server

过滤器/拦截器

Filter

Interceptor

用户角色相关

Signer

Owner

User

Member

Operator

Authenticator

代理类

Proxy

Broker

Delegate

Gateway

监控\跟踪\探查器

Detector

Profiler

Monitor

Tracker

Introspector

多线程相关

Synchronizer

Blocker

Holder

Worker

辅助类/工具类

Helper

Supporter

Util

Utility

Kit

Tool

Toolkit

创建/生成器

Maker

Creator

Generator

Constructor

Builder

Supplier

Provider

Factory

 

选择器/决策器

Chooser

Selector

Mediator

Arbitrator

Decider

Allocator

Scheduler

处理器/执行器

Resolver

Processor

Handler

Executor

Performer

Runner

管理/控制器

Ruler

Controller

Manager

Ordinator

Leader

Master

交易

business

deal

trade

transaction

用户/客户

user

customer

player

转换器

Formatter

Marshaller/Unmarshaller

Encoder/Decoder

Transformer

Converter

Packer/Extractor

单一功能

Descriptor

Counter

Viewer

Locator

Accumulator

Recognizer

Scroller

Printer

Compiler

Cleaner

Reader/Writer

Buffer

Collector

Connector

Scanner

Linker

Mapper

Streamer

Enhancer

Renderer

Painter

Weaver

Adapter

 

结尾:

       起个好名字和写个好算法同样重要。不要依赖于注释去做本来命名就可以完成的工作。源码不是草稿纸,源码是工程师的最终成果,需要我们每个从业人员认真对待。

       当觉得命名困难的时候,其实是因为还没有想清楚这个变量、这个方法或者这个类是要干什么的,还不能用一个或几个词准确描述它的工作,才觉得无法命名,这是命名的最困难的阶段,烦请诸君逆流而上。

参考:

较好的类名命名规则

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值