Skip to main content

Scala 代码规范

· 5 min read
Panda

一、前言

与 Java 不同,Scala 比较小众,没有放之四海而皆准的规范。

为了使团队在 Scala 项目上的代码尽可能地保持一致,笔者在借鉴 官方文档开源项目 的基础上,整理了适用于自身团队的 Scala 代码规范。

二、项目创建规约

本规约展示了一个在 IDEA 上创建 Scala 项目的流程,以供参考。

2.1 依赖管理

Scala 支持通过 Maven 或 sbt 来管理项目。基于以下因素,我们选择 Maven:

  • Scala 开源项目大部分都是通过 Maven 进行管理
  • 团队成员对 Maven 比较熟悉,学习成本低
  • 主流持续集成产品对 Maven 支持度比较高

使用 Maven 创建 Scala 项目时,与 Java 无太大区别,可以通过 archetype 快速创建:

此时,项目仅能创建 Java 类,还无法创建 Scala 类。

2.2 Scala SDK

Scala SDK 是 Scala 项目中不可缺少的部分,我们可以在 Project Structure 完成 Scala SDK 的添加。

info

若本地没有 Scala SDK,可以点击 + 号,在弹出的对话框中选择对应的 Scala 版本进行下载。

2.3 框架支持

此时,距离完整创建 Scala 项目还差最后一步,即框架支持。

我们可以右键项目根目录,点击 Add Framework Support,然后会弹出如下对话框:

勾选 Scala,点击 OK。此时,Scala 项目创建完毕,可以在项目中新建 Scala 类并进行编码。

三、代码风格规约

Scala 官方提供了代码风格参考:

https://docs.scala-lang.org/style/index.html

但是,基于文档的规约常常是不安全的,团队中总会有“糊涂蛋”一不小心犯了“错”。为避免这个问题,我们可以引入 Scalafmt 插件,以强制的手段保证项目代码风格的一致性。

3.1 Scalafmt 安装

Scalafmt 可以直接在 IDEA 的插件商场中安装。

安装完成后,需重启 IDEA。

3.2 Scalafmt 配置

Scalafmt 基于 .scalafmt.conf 文件实现配置。

首先,打开 Settings,进入 Editor > Code Style > Scala 界面,将 Formatter 设置为 Scalafmt,如下图所示:

然后,在项目根目录下创建 .scalafmt.conf 文件,输入如下内容:

maxColumn = 150

若配置成功,可在 Editor > Code Style > Scala 界面看到如下结果:

3.3 变量类型补全

在 Scala 中,变量的实际类型可以是不显式指定的。例如,我们可以这样定义字符串类型的变量:

val value = "panda"

实际上,它的完整表达式是:

val value: String = "panda"

为了提高代码阅读性,使其他开发人员能快速知晓变量的实际类型,我们规定 变量类型要完全补全

在 Java 开发中,我们常常使用 .var 实现变量类型自动补全。但是,在 Scala 项目里,.var 补全的内容默认情况下是不显示实际类型的,如下图所示:

若想要显示实际类型,需要在 Type Annotations 选项卡中勾选 Local definition 选项,并取消勾选 Type is stable* 选项:

此时,再次使用 .var 进行补全时,会发现变量的实际类型已经自动补上了。