命名 —— 函数、类的命名

命名对应着分类;命名是功能的体现;

  • load、fetch、make
    • load:本地(磁盘)加载
    • fetch:网络爬取
    • make:一些合成数据;

1. 函数名刻画全部的事情

  • 子程序的命名应描述所有的输出结果以及副作用(side effects)。

2. 避免不当的动词

  • 无意义或者模糊:
    • handleCalculation、performServeices、processInput,dealwithOutput,中文上,这些动词就叫做,万能动词;
    • 当然动词 handle 有时也非用不可,比如 eventHandling,用作事件处理这一特殊上下文时;
    • 将 handleOutput 改造为 formatAndPrintOutput

3. 动词后加不加宾语

  • 在面向对象语言中,不必在函数名中加入对象的名字,其对象本身已经包含在调用语句中了。
    • 举例:document.Print()、orderInfo.Check()、monthlyRevenues.Calc()
    • 而且,不加宾语,有时也能在继承关系中起到某种抽象的作用;
      • document.PrintDocument(),显然当有子类如 Check(支票)从 Document 类继承而来,check.PrintDocument() 就显得不伦不类了;

4. 介词

  • from

    • Scala:Source.io.fromFile
  • with/without

  • of

    • pathOf:从什么什么中取得路径(参数充当介词宾语)

      public String pathOf(Arfifact artifact) 
      {
      	StringBuilder path = new StringBuilder();
      	
      	path.append(artifact.getArtifactId()).append(PATH_SEPARATOR);		
      		// PATH_SEPARATOR = '/'
      	path.append(artifact.getBaseVersion()).append(PATH_SEPARATOR);
      	path.append(artifact.getArtifactId()).append(ARTIFACT_SEPARATOR)
      		.append(artifact.getVersion());
      				// ARTIFACT_SEPARATOR = '-'
      }	
      

6. 类的命名

  • 类的分类

    • 工具类:**Utils
    • 常量类:**Constants
    • 上下文:**Context/**Ctx
    • 微服务:
      • 服务:**Services
      • 控制器:**Controller
      • 应用:**Application
  • 用于操作的类

    • 操作类的命名:名词做宾语,但因为是类,宾语置前,动词在后;
      • OperatorAssignment
      • GridSpec

7. 形容词修饰类

  • Int.scala vs. RichInt.scala
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值