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!
About Codacy
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.