awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
felipe-augusto avatar

felipe-augusto/clean-code-javascript

0
View on GitHub↗
4,891 stars·606 forks·JavaScript·mit·14 views

Clean Code Javascript

This project is a comprehensive guide and set of engineering standards for writing readable, maintainable, and scalable JavaScript code. It provides a framework for software architecture, refactoring patterns, and clean coding practices designed to improve codebase health and longevity.

The guide emphasizes the application of SOLID principles and architectural strategies such as dependency inversion and the separation of concerns. It focuses on transforming complex conditional logic through polymorphism and refactoring, while promoting a transition from imperative loops to declarative functional programming patterns.

The project covers a wide range of capabilities including object design through composition and encapsulation, asynchronous flow management using promises, and immutable state management. It also establishes standards for naming conventions, function design, and error handling, alongside strategies for creating testable code and maintaining consistent formatting.

Features

  • Clean Coding Standards - Establishes a comprehensive set of engineering standards and naming conventions for writing clean, self-documenting JavaScript.
  • Asynchronous JavaScript Programming - Guides the use of promises and async/await to manage non-blocking operations and eliminate callback nesting.
  • Refactoring Patterns - Provides techniques for refactoring complex conditionals into named functions and polymorphic structures.
  • Readability Refactorings - Provides specific refactoring patterns to simplify complex logic and improve the readability of JavaScript codebases.
  • Error Handling Strategies - Implements robust architectural strategies for capturing exceptions and managing promise rejections in JavaScript.
  • Atomic Function Design - Implements guidelines for creating atomic functions that perform a single task to improve testability.
  • Functional Programming - Advocates for declarative functional programming patterns over imperative loops to improve logic clarity.
  • Naming Conventions - Defines standards for meaningful, searchable, and consistently worded variable and function names.
  • Dependency Inversion Patterns - Provides patterns for decoupling high-level business logic from low-level infrastructure using abstractions.
  • Software Architecture - Provides a framework for organizing JavaScript modules using SOLID principles and dependency inversion.
  • Immutable State Patterns - Implements read-only patterns and centralized services to ensure predictable state transitions.
  • Composition Patterns - Promotes composition over deep inheritance hierarchies to build maintainable object behaviors.
  • Composition Over Inheritance - Promotes building complex functionality by composing small, focused objects instead of using deep inheritance.
  • Interface Segregation Principles - Applies the interface segregation principle to keep configuration objects small and dependencies minimal.
  • Liskov Substitution Principles - Ensures subclasses can replace parent classes without altering program correctness according to Liskov substitution.
  • Open/Closed Principles - Implements the open-closed principle to allow modules to be extended with new behavior without modifying existing code.
  • Single Responsibility Principles - Implements the Single Responsibility Principle as a core standard for dividing software modules into focused units.
  • Testability Optimizations - Promotes the use of pure functions and dependency injection to optimize code for easier automated testing.
  • Semantic Consistency - Encourages the use of a consistent vocabulary to avoid confusion across the codebase.
  • Explicit Data Cloning - Uses object cloning to ensure that modifications to a copy do not affect original references.
  • Structural Organization Guidelines - Provides guidelines for organizing data structures to hide internal details and expose necessary behavior.
  • Dead Code Cleanup - Provides a process for identifying and removing unused functions, variables, and modules.
  • Encapsulation Techniques - Employs getter and setter methods to encapsulate internal object state and provide validation.
  • Asynchronous Programming Patterns - Manages non-blocking background operations using modern asynchronous syntax for better error capture.
  • Closure-Based Privacy - Uses closures to implement private object members that cannot be accessed or deleted externally.
  • Polymorphic Dispatch - Implements polymorphic method dispatch in subclasses to replace switch or if-else chains.
  • Abstraction Level Management - Ensures functions stay at a single level of abstraction by extracting lower-level implementation details.
  • Polymorphism - Replaces complex conditional branching with polymorphic interfaces to handle varying behaviors.
  • Async Flow Patterns - Uses promises and async/await to flatten callback chains and standardize asynchronous flow.
  • Internal Member Protection - Employs composition and private members to encapsulate behavior and protect internal object data.
  • Code Duplication Reduction - Establishes practices for eliminating redundant logic through architectural abstraction and consolidation.
  • Error Management - Provides strategies for catching runtime errors and routing them to logging and notification services.
  • Graceful Promise Recovery - Defines processes for capturing exceptions and rejected promises to ensure systems fail gracefully.
  • Options Objects - Provides guidelines for limiting function parameters by utilizing options objects for complex inputs.
  • Named Constants - Provides a strategy for replacing magic numbers with named constants to improve searchability.
  • Guard Clauses - Utilizes guard clauses to simplify function logic by exiting early on invalid conditions.
  • Optimization Deferral - Promotes writing straightforward code and avoiding premature optimization until profiling identifies bottlenecks.
  • Service Layers - Isolates side effects and external inputs within dedicated service layers to protect business logic.
  • Closure-Based State Encapsulations - Implements state encapsulation using JavaScript closures to create private object members.
  • Public Interface Optimization - Implements getters, setters, and method chaining to hide internal data and create expressive public interfaces.
  • API Type Consistency - Promotes the use of consistent APIs and type systems to eliminate manual type checking in functions.
  • Testing Strategy and Process - Establishes a strategic process for test coverage and test-driven development guidelines.
  • Testing Best Practices - Provides guidelines for writing maintainable tests by focusing each case on a single concept.
  • Pure Function Patterns - Minimizes side effects through the use of pure functions and object cloning.

Star history

Star history chart for felipe-augusto/clean-code-javascriptStar history chart for felipe-augusto/clean-code-javascript

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does felipe-augusto/clean-code-javascript do?

This project is a comprehensive guide and set of engineering standards for writing readable, maintainable, and scalable JavaScript code. It provides a framework for software architecture, refactoring patterns, and clean coding practices designed to improve codebase health and longevity.

What are the main features of felipe-augusto/clean-code-javascript?

The main features of felipe-augusto/clean-code-javascript are: Clean Coding Standards, Asynchronous JavaScript Programming, Refactoring Patterns, Readability Refactorings, Error Handling Strategies, Atomic Function Design, Functional Programming, Naming Conventions.

What are some open-source alternatives to felipe-augusto/clean-code-javascript?

Open-source alternatives to felipe-augusto/clean-code-javascript include: labs42io/clean-code-typescript — This project is a set of software engineering standards and architectural patterns for writing maintainable and… piotrplenik/clean-code-php — This project is a PHP clean code guide and software architecture reference. It provides a set of standards, naming… zakirullin/cognitive-load — This project is a collection of software engineering principles and architectural design patterns designed to minimize… alexeymezenin/laravel-best-practices — This project is a comprehensive guide to architectural standards and coding patterns for developing maintainable… zedr/clean-code-python — This project is a Python clean code guide and refactoring resource. It provides a collection of software craftsmanship… getify/functional-light-js — Functional-Light-JS is a JavaScript functional programming library designed to implement functional patterns within…

Open-source alternatives to Clean Code Javascript

Similar open-source projects, ranked by how many features they share with Clean Code Javascript.
  • labs42io/clean-code-typescriptlabs42io avatar

    labs42io/clean-code-typescript

    9,764View on GitHub↗

    This project is a set of software engineering standards and architectural patterns for writing maintainable and refactorable TypeScript code. It provides a comprehensive guide for implementing clean code principles, focusing on the application of SOLID design and structural patterns to build decoupled systems. The framework prioritizes composition over inheritance and utilizes dependency inversion to reduce system coupling. It establishes standards for strict static typing and the use of read-only modifiers to ensure type safety and eliminate runtime errors. The guidance covers a broad range

    TypeScriptbest-practicesclean-architectureclean-code
    View on GitHub↗9,764
  • piotrplenik/clean-code-phppiotrplenik avatar

    piotrplenik/clean-code-php

    12,455View on GitHub↗

    This project is a PHP clean code guide and software architecture reference. It provides a set of standards, naming conventions, and design patterns intended to improve the long-term maintainability and readability of PHP codebases. The guide emphasizes a structured approach to refactoring and system design, focusing on the application of SOLID principles to reduce coupling and increase extensibility. It advocates for object-oriented design through the use of composition over inheritance, the use of final classes to prevent unexpected overrides, and the implementation of strict type declaratio

    PHP
    View on GitHub↗12,455
  • zakirullin/cognitive-loadzakirullin avatar

    zakirullin/cognitive-load

    12,288View on GitHub↗

    This project is a collection of software engineering principles and architectural design patterns designed to minimize the mental effort required to understand and maintain source code. It serves as a guide for implementing clean code methodologies and architectural simplification to reduce the overall cognitive load on developers. The framework emphasizes aligning module boundaries and ubiquitous language with business stakeholders to prevent architectural ripple effects. It advocates for balancing service granularity to avoid the overhead of distributed monoliths and suggests favoring objec

    View on GitHub↗12,288
  • alexeymezenin/laravel-best-practicesalexeymezenin avatar

    alexeymezenin/laravel-best-practices

    12,299View on GitHub↗

    This project is a comprehensive guide to architectural standards and coding patterns for developing maintainable applications within the Laravel framework. It focuses on clean code standards, applying the single responsibility and DRY principles to ensure codebase predictability and consistency. The guide emphasizes decoupling components by moving business logic into service layers and shifting input validation into dedicated request classes to keep controllers lean. It advocates for the use of a service container and dependency injection to reduce class coupling and improve testability. The

    View on GitHub↗12,299
See all 30 alternatives to Clean Code Javascript→