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
·
bbatsov avatar

bbatsov/clojure-style-guide

0
View on GitHub↗
4,095 stars·282 forks·25 viewsguide.clojure.style↗

Clojure Style Guide

This project provides a set of software architecture guidelines, Lisp coding standards, and functional programming patterns for Clojure development. It establishes best practices for implementing declarative logic and managing shared state through the use of persistent data structures and atomic references.

The guide covers standards for documenting public APIs and organizing project directories to ensure portable library distribution. It details the application of consistent formatting and naming rules to improve source code readability and team collaboration.

The scope extends to idiomatic development patterns, including the organization of namespaces, the structuring of function definitions and test suites, and the responsible design of macros. It also provides guidance on handling interop with external types and managing library distribution via stable coordinates.

Features

  • Idiomatic Coding Standards - Provides a comprehensive set of idiomatic conventions and best practices for writing functional Clojure code.
  • Functional Programming Patterns - Implements functional programming paradigms including declarative logic, immutable bindings, and atomic state management.
  • Lisp Coding Standards - Provides specific guidelines for function definitions, namespace management, and formatting within Lisp environments.
  • Persistent Data Structures - Advocates for the use of immutable collections to ensure thread safety and predictable performance.
  • Pure Functional Logic Implementations - Implements pure functional logic to create cleaner and more maintainable control flow.
  • Atomic State Coordination - Provides guidelines for managing shared state using atomic references and software transactional memory to prevent data corruption.
  • Code Formatting Standards - Applies consistent formatting and naming rules to Clojure source code to improve readability and collaboration.
  • Concurrent State Coordination - Coordinates shared mutable state across concurrent execution units using atomic references.
  • Functional Declarative Patterning - Promotes the use of functional compositions over imperative loops to simplify logic and improve maintainability.
  • Project Structure Organization - Defines standards for organizing namespaces and project directories to ensure discoverable and portable library structures.
  • Software Architecture Guidelines - Defines best practices for high-level architectural organization, API documentation, and dependency management.
  • Software Transactional Memory - Implements concurrency control through software transactional memory to manage shared state atomically.
  • Library Publishing - Establishes a publishing pipeline for libraries focusing on stable coordinates and minimal dependencies.
  • Foreign Type Wrappers - Defines boundaries and wrappers for foreign collections and constructors to maintain compatibility with native abstractions.
  • Language-Level Documentation - Standardizes the use of docstrings and metadata to communicate usage and versioning for public APIs.
  • Spacing and Indentation Rules - Enforces consistent indentation and spacing rules to improve source code readability.
  • Library Distribution Bundlers - Provides guidelines for selecting stable coordinates and minimizing dependencies to create portable library artifacts.
  • Code Commenting - Defines a standardized hierarchy of comment symbols for source code documentation and technical debt tracking.
  • Maintenance Constraints - Provides standards for limiting function length and parameter counts to ensure maintainable and testable logic.
  • Identifier Naming Conventions - Applies consistent casing and naming conventions to identifiers to signal intent and behavior.
  • Namespace Organization - Groups functions and modules into namespaces to prevent naming conflicts and improve discoverability.
  • Module Namespaces - Provides a hierarchical naming schema and alias system to organize code and prevent identifier collisions.
  • Artifact Coordinate Systems - Guidance on using stable coordinates and versioning to ensure portable library distribution.
  • Compositional Macro Design - Establishes best practices for designing complex macros by breaking them into small, testable functions.
  • Macro Decompositions - Provides a strategy for creating reliable syntactic macros by decomposing them into testable units.
  • API Documentation Annotations - Defines standards for using docstrings and metadata tags to document public APIs.
  • Public API Definitions - Establishes processes for defining public interfaces to track compatibility and version increments.
  • Source Code Formatting - Standardizes the visual layout of source code, including indentation and spacing rules.
  • Application Testing Workflows - Outlines comprehensive strategies for structuring test suites and assertion patterns to ensure long-term maintainability.
  • Test Suite Structuring - Provides a standardized directory structure and assertion pattern for implementing automated behavior tests.
  • Test Suite Organization - Establishes consistent naming and assertion patterns for structuring manageable and scalable test suites.
  • Language Style Guides - Community-driven style guide for writing idiomatic Clojure code.
  • Programming Language Guides - Community-accepted style guide for Clojure programming.
  • Programming Language Standards - Standardized coding style for the Clojure language.
  • Learning and Exercises - Community-driven style guide.

Star history

Star history chart for bbatsov/clojure-style-guideStar history chart for bbatsov/clojure-style-guide

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

Open-source alternatives to Clojure Style Guide

Similar open-source projects, ranked by how many features they share with Clojure Style Guide.
  • alexandru/scala-best-practicesalexandru avatar

    alexandru/scala-best-practices

    4,352View on GitHub↗

    This project is a collection of curated guidelines and manuals for writing clean, idiomatic, and maintainable code in Scala. It serves as a comprehensive guide for Scala coding standards, functional programming design, and enterprise software architecture. The repository provides specific strategies for concurrency management, including patterns for actors, futures, and thread pools to ensure thread safety. It also contains a performance optimization manual focused on reducing memory allocations and managing garbage collection pressure to improve runtime efficiency. The guides cover a broad

    View on GitHub↗4,352
  • realpython/materialsrealpython avatar

    realpython/materials

    5,173View on GitHub↗

    This project is a comprehensive collection of Python programming education materials, including tutorials, exercises, and curated code samples. It serves as a learning curriculum and software engineering toolkit, utilizing Jupyter Notebooks to combine executable code with descriptive educational text. The repository provides practical implementation guides for building large language model applications, such as retrieval-augmented generation systems, stateful AI agents, and machine learning workflows. It distinguishes itself by offering a structured approach to agentic coding workflows, cover

    Jupyter Notebook
    View on GitHub↗5,173
  • arrow-kt/arrowarrow-kt avatar

    arrow-kt/arrow

    6,558View on GitHub↗

    Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data. The project distinguishes itself through specialized capabilities for managing application failures using explicit types instead of exceptions and implementing resilience patterns such as circuit breakers and retry policies for distributed services. It also provides optics to update and query deeply nested immutable data structures without man

    Kotlinarrowcontinuationscoroutines
    View on GitHub↗6,558
  • airbnb/rubyairbnb avatar

    airbnb/ruby

    3,890View on GitHub↗

    This project provides a collection of coding standard specifications, style guides, and configuration assets used to define automated rules for static code analysis in Ruby. It serves as a centralized set of RuboCop configurations and static analysis rules to ensure consistent syntax and idiomatic usage across a codebase. The project establishes a comprehensive Ruby style guide that defines naming conventions, indentation, and structural requirements. It utilizes a pluggable linting engine to enforce these standards through a defined set of patterns and constraints. The capability surface co

    Ruby
    View on GitHub↗3,890
See all 30 alternatives to Clojure Style Guide→

Frequently asked questions

What does bbatsov/clojure-style-guide do?

This project provides a set of software architecture guidelines, Lisp coding standards, and functional programming patterns for Clojure development. It establishes best practices for implementing declarative logic and managing shared state through the use of persistent data structures and atomic references.

What are the main features of bbatsov/clojure-style-guide?

The main features of bbatsov/clojure-style-guide are: Idiomatic Coding Standards, Functional Programming Patterns, Lisp Coding Standards, Persistent Data Structures, Pure Functional Logic Implementations, Atomic State Coordination, Code Formatting Standards, Concurrent State Coordination.

What are some open-source alternatives to bbatsov/clojure-style-guide?

Open-source alternatives to bbatsov/clojure-style-guide include: alexandru/scala-best-practices — This project is a collection of curated guidelines and manuals for writing clean, idiomatic, and maintainable code in… realpython/materials — This project is a comprehensive collection of Python programming education materials, including tutorials, exercises,… arrow-kt/arrow — Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming… airbnb/ruby — This project provides a collection of coding standard specifications, style guides, and configuration assets used to… liuxinyu95/algoxy — AlgoXY is a functional programming educational book and technical publication produced as a LaTeX digital book. It… louthy/language-ext — language-ext is a functional programming framework for C# that provides a suite of immutable data structures and…