BMAD-METHOD/.claude/rules/scala-kafka-cursorrules-pro.../general-scala-clean-code.mdc

15 lines
800 B
Plaintext

---
description: Applies clean-code guidelines for Scala 3.
globs: **/*.scala
alwaysApply: true
---
- Declare vals/vars as close as possible to first use.
- Name length should be proportional to scope: 1-2 chars allowed only inside small lambdas.
- Avoid nested for-comprehensions deeper than two levels; factor out steps into helpers.
- Split a single source file by responsibility.
- Use *tail-rec* optimisation (`@tailrec`) where appropriate.
- Prefer *immutable* collections and avoid mutation during iteration.
- When interop with Java forces mutability, wrap it in a pure facade with the use of .asScala, to retain functional API.
- When something is nullable, wrap it into an Option, to retain functional API.
- Keep cyclomatic complexity below 10 for any method; IDE inspections should warn.