Linting & Formatting
Automated tools that verify style, detect potential errors, and format code consistently, eliminating style debates and improving quality.
What it is
Linting statically analyzes code to find errors, anti-patterns, and style violations. Formatting applies consistent style automatically. Together they eliminate style debates and catch bugs before runtime.
Tools
| Tool | Type | Languages |
|---|---|---|
| ESLint | Linter | JavaScript/TypeScript |
| Prettier | Formatter | Multi-language |
| Biome | Linter + Formatter | JS/TS (fast, Rust) |
| Ruff | Linter + Formatter | Python (fast, Rust) |
| Stylelint | Linter | CSS |
Integration
| Point | When it runs | Tool |
|---|---|---|
| IDE | Real-time feedback while typing | ESLint, Prettier extensions |
| Pre-commit hooks | Before each commit | lint-staged + husky |
| CI | Gate blocking PRs with errors | GitHub Actions, GitLab CI |
| Auto-fix | Automatic problem correction | eslint --fix, prettier --write |
Biome as alternative
Biome replaces ESLint + Prettier with a single Rust-written tool, up to 35x faster.
Why it matters
Linting and automatic formatting eliminate subjective style discussions in code reviews. When rules are applied automatically, reviews focus on logic and design — what actually matters.
References
Related content
- Code Quality
Practices, tools, and metrics for maintaining readable, maintainable, testable, and defect-free code over time.
- TypeScript
Typed superset of JavaScript adding optional static types, improving developer productivity, error detection, and code maintainability.
- CI/CD
Continuous Integration and Continuous Delivery/Deployment — practices that automate code integration, testing, and delivery to production. Foundation of modern software engineering.