After allowing our users to simply enforce the Official Scala Style Guide on their projects, we are now very pleased to announce that we released the Effective Scala Standard on Codacy.
Effective Scala was created by Marius Eriksen and comes from Twitter’s experience with developing their whole infrastructure in Scala.
To enforce the Effective Scala rules on your project go to “Code Patterns” and select “Code Standards”.
Look at the results on this public Finagle project
But of course you can also only enable the rules that matter to your project.
Here are the rules that the Effective Scala is comprised of:
- Avoid using reserved keywords
- Call-by-name as last Arguments
- Enforce class naming convention
- Enforce curly braces
- Enforce cyclomatic complexity
- Enforce equals hashCode contract
- Enforce grouping imports
- Enforce imports at the top of the package
- Enforce line max length
- Enforce max method length
- Enforce max number of methods
- Enforce max number of parameters
- Enforce method naming convention
- Enforce minimum visibility in module values
- Enforce object naming convention
- Enforce package object naming convention
- Enforce pattern matching over else-if nesting
- Enforce return type of public methods
- Enforce simplification of boolean expressions
- Enforce sorting Imports alphabetically
- Enforce usage of the Try object
- Prohibit lowercase L in Long literals
- Prohibit method names that contain their object name
- Prohibit overriding clone() method
- Prohibit overriding finalize() method
- Prohibit standalone covariant equals
- Prohibit structural types
- Prohibit unnamed values on intermediate results and parameters
- Prohibit whitespace after left bracket
- Prohibit whitespace before left bracket
As Marius wrote “This is not the law, but deviation should be well justified”.
Happy Scala Coding!
For more Codacy resource on Scala see here.
Edit: We just published an ebook: “The Ultimate Guide to Code Review” based on a survey of 680+ developers. Enjoy!
Codacy is used by thousands of developers to analyze billions of lines of code every day!
Getting started is easy – and free! Just use your GitHub, Bitbucket or Google account to sign up.