技术

Scala shell内建指令 scala 最佳实践 centos 下安装sqlplus git简介及使用 Commands to Check Weblogic Server Status Spring 中 cache 的使用 pl/sql developer 相关问题 maven 用法 nexus docker 指南 oracle 相关问题 vim 快捷方式 media wiki 的搭建 安装 Kubernetes 如何的在centos中安装docker Hbase学习 hbase 异常解决 Docker 链接容器 dockerfile 最佳实践 centos 7 网卡配置 docker 学习笔记 guava 用法分享 docker命令行 angular小技巧 kubernetes 相关知识 一些windows下的工具 github 小技巧 angularjs 小技巧 java写代码的一些小技巧 lucene学习 在Windows上安装FishEye 快速安装eclipse插件 在fisheye中添加git repository Modbus 协议简介 读书笔记: angular性能调优 我的交叉编译经验谈 如何管理和配置opkg包 刷机失败后的恢复方法 Openwrt Flash Layout 分区调整 netgear wndr3700v4 刷新固件步骤 Openwrt应用包(package)编译 (基于Openwrt SDK) Openwrt编译 (基于Openwrt ImageBuilder) Build Openwrt环境完整过程 openwrt命令总结 在luci系统中增加服务 sftp 命令 系统完整性检查如何加载虚拟光驱 如何在java中启用jmxremote Bash Shell 技巧点滴 knockout和js测试基础 XAMPP 小技巧 knockout小技巧 有关discuz的资源与一些经验积累 javascript小技巧积累 在centos上安装jetty的过程记录 Vagrant构建虚拟开发环境 离线markdown编辑器:stackedit 关于阿里云服务器使用的几个小技巧 discuz被黑的处理办法 git 相关命令总结 BAE 本地开发环境调试笔记 yo 与 knockout 的使用 一些有用的在线工具网站资源 Discuz!X3.2 升级后无法登录后台的解决方法 knockout的一些有用的例子和资源 GoLang 学习笔记

标签


scala 最佳实践

2016年04月30日

命名

  • 对作用域较短的变量使用短名字: is, js 和 ks等可出现在循环中。

  • 对作用域较长的变量使用长名字: 外部APIs应该用长的,不需加以说明便可理解的名字。例如:Future.collect 而非 Future.all

  • 使用通用的缩写,避开隐秘难懂的缩写: 例如每个人都知道 ok,err, defn等缩写的意思,而sfri是不常用的。

  • 不要在不同用途时重用同样的名字: 使用val(注:Scala中的不可变类型)

  • 避免用 ` 声明保留字变量: 用typ替代 `type`

  • 用主动语态(active)来命名有副作用的操作: user.activate()而非 user.setActive()

  • 对有返回值的方法使用具有描述性的名字: src.isDefined 而非src.defined

  • getters不采用前缀get 用get是多余的: site.count而非site.getCount

  • 不必重复已经被package或object封装过的名字: 使用:

object User {
  def get(id: Int): Option[User]
}

而非:

object User {
  def getUser(id: Int): Option[User]
}

相比 get 方法 getUser 方法中的User是多余的,并不能提供额外的信息。