awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

15 repositorios

Awesome GitHub RepositoriesCode Duplication Reduction

Practices for eliminating redundant logic and dead code through abstraction and consolidation.

Distinct from Coding: Existing candidates focus on automated dead code elimination (tree-shaking) rather than architectural abstraction to remove duplication.

Explore 15 awesome GitHub repositories matching software engineering & architecture · Code Duplication Reduction. Refine with filters or upvote what's useful.

Awesome Code Duplication Reduction GitHub Repositories

Encuentra los mejores repositorios con IA.Buscaremos los repositorios que mejor coincidan usando IA.
  • piotrplenik/clean-code-phpAvatar de piotrplenik

    piotrplenik/clean-code-php

    12,455Ver en 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

    Provides strategies for removing redundant logic and dead code by creating abstractions that consolidate repetitive patterns.

    PHP
    Ver en GitHub↗12,455
  • alexeymezenin/laravel-best-practicesAvatar de alexeymezenin

    alexeymezenin/laravel-best-practices

    12,299Ver en 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

    Applies practices to eliminate redundant logic using shared components like query scopes and templates.

    Ver en GitHub↗12,299
  • zakirullin/cognitive-loadAvatar de zakirullin

    zakirullin/cognitive-load

    12,288Ver en 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

    Provides guidance on balancing the cost of abstraction against the risk of tight coupling.

    Ver en GitHub↗12,288
  • labs42io/clean-code-typescriptAvatar de labs42io

    labs42io/clean-code-typescript

    9,764Ver en 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

    Provides practices for eliminating redundant logic and dead code through the use of architectural abstractions.

    TypeScriptbest-practicesclean-architectureclean-code
    Ver en GitHub↗9,764
  • teivah/100-go-mistakesAvatar de teivah

    teivah/100-go-mistakes

    7,915Ver en GitHub↗

    100 Go Mistakes is a reference book and code review companion that catalogues frequent Go programming anti-patterns and provides corrected implementations for each one. It covers a wide range of common pitfalls, from range loop variable capture and interface nil handling to error wrapping and map iteration randomization, helping developers recognize and avoid these issues in their own code. The project distinguishes itself by offering a structured, example-driven approach to learning idiomatic Go. It covers core design decisions such as when to use pointer versus value receivers, how to apply

    Shows how generics eliminate repetitive code by separating data types from behavior.

    Gobookchinesedocumentation
    Ver en GitHub↗7,915
  • kucherenko/jscpdAvatar de kucherenko

    kucherenko/jscpd

    5,800Ver en GitHub↗

    jscpd is a code duplication detector that scans source code across 223 languages to find identical or near-identical copy-pasted blocks using a rolling hash algorithm. It is built with a Rust core for high performance, exposed through a Node.js API and CLI, and can be run as a standalone binary with no runtime dependencies. The tool detects duplicates in embedded languages within Vue, Svelte, Astro, and Markdown files by tokenizing each language block separately, and it supports extensionless scripts via shebang detection. The project distinguishes itself through its integration capabilities

    Configures a maximum duplication percentage that causes the pre-commit hook to reject commits.

    TypeScriptaiclones-detectioncode-quality
    Ver en GitHub↗5,800
  • pycqa/pylintAvatar de PyCQA

    PyCQA/pylint

    5,685Ver en GitHub↗

    Pylint es una herramienta de análisis estático de código para Python que verifica el código fuente en busca de errores, violaciones de estándares de codificación y olores de código sin ejecutar el programa. Analiza el código en un árbol de sintaxis abstracta y recorre el árbol para detectar problemas, aplica reglas de estilo configurables y convenciones de nomenclatura, e identifica bloques de código duplicados comparando secuencias de origen tokenizadas. La herramienta también incluye un motor de inferencia que deduce los tipos de variables simulando rutas de código, permitiendo un análisis más profundo incluso en código sin tipos. Lo que distingue a Pylint es su arquitectura de verificador basada en complementos, que permite a los usuarios extender el análisis cargando módulos externos de Python que registran verificadores personalizados y reglas de inferencia en tiempo de ejecución. Admite la estratificación de archivos de configuración, fusionando configuraciones de múltiples archivos y argumentos de línea de comandos para que los valores predeterminados de todo el proyecto puedan ser anulados por opciones locales o específicas de complementos. Pylint también rastrea la calidad del código a lo largo del tiempo comparando los resultados del análisis actual con una puntuación de referencia almacenada, informando sobre mejoras o regresiones en ejecuciones sucesivas, y puede generar diagramas de clases y paquetes UML desde el árbol de sintaxis abstracta en formatos Graphviz, PlantUML o MermaidJS. La herramienta se integra en tuberías de integración continua y ganchos de pre-confirmación para ejecutar verificaciones en múltiples versiones del intérprete de Python automáticamente. Se puede instalar a través de pip, conda o un gestor de paquetes del sistema, y ofrece corrección ortográfica opcional de identificadores de código a través de la biblioteca enchant. Pylint también proporciona integración de editor para entornos como Emacs y TextMate, e incluye un visor de explicación de mensajes que imprime la descripción completa y el contexto de cualquier código de advertencia o error específico directamente desde la línea de comandos.

    Scans Python source files for identical or near-identical code blocks and reports their locations and similarity percentage.

    Python
    Ver en GitHub↗5,685
  • pylint-dev/pylintAvatar de pylint-dev

    pylint-dev/pylint

    5,685Ver en GitHub↗

    Pylint is a static code analyzer for Python that scans source code for errors, coding standard violations, code smells, and type-related issues without executing the program. It functions as a plugin-based linter framework, allowing users to extend its analysis capabilities with custom or third-party checks for project-specific rules and framework support. The tool also includes a duplicate code detector that identifies identical or near-identical code blocks across a project to help reduce redundancy. Beyond its core linting functionality, Pylint can generate UML class and package diagrams f

    Identifies identical or near-identical code blocks across a project to help reduce redundancy.

    Pythonclosembercode-qualityhacktoberfest
    Ver en GitHub↗5,685
  • pmd/pmdAvatar de pmd

    pmd/pmd

    5,425Ver en GitHub↗

    PMD es un analizador de código estático multilingüe utilizado para identificar fallos de programación, variables no utilizadas y código muerto sin ejecutar el programa. Funciona como un detector de olores de código (code smells) y ejecutor de estándares de codificación, asegurando que el código fuente se adhiera a convenciones de nomenclatura específicas, requisitos estructurales y guías de estilo del proyecto. El proyecto cuenta con un motor de reglas basado en XPath que permite a los usuarios definir patrones de análisis personalizados usando consultas contra un árbol de sintaxis abstracta. También incluye un detector de copiar y pegar para identificar bloques de código duplicados en múltiples archivos y un diseñador visual de reglas para crear y probar patrones de detección personalizados. La superficie de análisis cubre la detección de errores, la identificación de problemas de mantenibilidad para reducir la deuda técnica y la verificación de implementaciones de pruebas. También proporciona capacidades para identificar métodos excesivamente complejos y listas de parámetros excesivas.

    Identifies identical or near-identical code blocks by comparing tokenised source sequences across multiple files.

    Javaapexcode-analysiscode-quality
    Ver en GitHub↗5,425
  • felipe-augusto/clean-code-javascriptAvatar de felipe-augusto

    felipe-augusto/clean-code-javascript

    4,891Ver en GitHub↗

    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 functio

    Establishes practices for eliminating redundant logic through architectural abstraction and consolidation.

    JavaScriptclean-codejavascript
    Ver en GitHub↗4,891
  • zedr/clean-code-pythonAvatar de zedr

    zedr/clean-code-python

    4,816Ver en GitHub↗

    Este proyecto es una guía de código limpio en Python y un recurso de refactorización. Proporciona una colección de principios de artesanía de software y ejemplos diseñados para mejorar la legibilidad y mantenibilidad del código fuente en Python. El recurso se centra en optimizar el nombramiento de variables para eliminar el mapeo mental y dividir las funciones en unidades de propósito único. Proporciona directrices para reducir la duplicación de código y organizar la lógica para garantizar que los componentes sigan siendo fáciles de extender y mantener. El contenido cubre la arquitectura de software y la calidad del diseño, incluyendo la implementación de principios SOLID y patrones de diseño estándar de la industria. También aborda la gestión de efectos secundarios y el uso de flujos de trabajo de pruebas automatizadas dentro de entornos virtuales.

    Provides techniques for eliminating redundant logic through the creation of shared abstractions.

    Python
    Ver en GitHub↗4,816
  • intellij-rust/intellij-rustAvatar de intellij-rust

    intellij-rust/intellij-rust

    4,533Ver en GitHub↗

    Este proyecto es un plugin de IDE IntelliJ que proporciona un entorno de desarrollo integrado para Rust. Sirve como orquestador de sistema de compilación e interfaz de depurador, ofreciendo un análisis de lenguaje completo, resaltado de sintaxis y asistencia inteligente para la edición de código. El plugin se integra con un servidor de lenguaje para proporcionar inferencia de tipos en tiempo real y navegación de código. Incluye una herramienta de análisis estático dedicada para detectar duplicados de código, analizar fugas de memoria y medir la cobertura de pruebas. El conjunto de herramientas cubre la gestión de la cadena de herramientas (toolchain) y la integración con Cargo para el manejo de dependencias y manifiestos. Además, proporciona capacidades para la creación de perfiles de rendimiento, depuración de programas en tiempo de ejecución y automatización de pruebas, así como soporte para el desarrollo de aplicaciones web, incluyendo la gestión de contenedores y la exploración de esquemas de bases de datos.

    Scans the codebase to detect repetitive logic patterns and redundant code to reduce technical debt.

    Kotlinclionhacktoberfestintellij
    Ver en GitHub↗4,533
  • dhall-lang/dhall-langAvatar de dhall-lang

    dhall-lang/dhall-lang

    4,458Ver en GitHub↗

    Dhall es un lenguaje de configuración con tipado fuerte diseñado para crear archivos de configuración programables que garantizan su terminación. Es un lenguaje no completo según Turing que utiliza un sistema de tipos estricto para asegurar la corrección y prevenir bucles infinitos durante la evaluación. El proyecto funciona como un motor de configuración determinista y herramienta de marshalling, convirtiendo expresiones programables en formatos estáticos como JSON, YAML y Bash. Se distingue por su enfoque en la seguridad e integridad, utilizando hashing semántico para fijar importaciones remotas y aplicando políticas de origen para prevenir la exfiltración de datos. Sus capacidades cubren una amplia superficie de gestión de configuración, incluyendo el uso de funciones polimórficas, tipos de unión y completado de registros para reducir la redundancia. Proporciona herramientas para la validación de esquemas, resolución de expresiones remotas y una implementación del Language Server Protocol para la integración con editores. El lenguaje proporciona una interfaz de línea de comandos y un REPL para evaluar expresiones y verificar la igualdad.

    Define reusable values using let-expressions to avoid duplicating data across a configuration.

    Dhallconfiguration-languagedhall
    Ver en GitHub↗4,458
  • troessner/reekAvatar de troessner

    troessner/reek

    4,126Ver en GitHub↗

    Reek es un analizador de código estático para proyectos Ruby diseñado para identificar fallos de diseño y problemas de mantenibilidad conocidos como code smells. Funciona como una herramienta de control de calidad que inspecciona el código fuente sin ejecutarlo para encontrar debilidades estructurales y deuda técnica. El analizador identifica patrones específicos como clases demasiado grandes, métodos largos y nombres poco descriptivos. También detecta problemas de diseño más complejos, incluyendo feature envy, data clumps, polimorfismo simulado y control coupling. La herramienta incluye capacidades para establecer líneas base de problemas para gestionar código heredado y filtrado basado en configuración para excluir directorios específicos. Soporta comprobaciones de calidad automatizadas mediante pipelines de integración continua y proporciona informes de análisis en formatos como JSON, YAML, XML y HTML.

    Detects methods that use parameters to decide execution paths, signaling potential duplication or fragmented responsibilities.

    Ruby
    Ver en GitHub↗4,126
  • johnsundell/swifttipsAvatar de JohnSundell

    JohnSundell/SwiftTips

    4,014Ver en GitHub↗

    SwiftTips es una colección curada de guías, bibliotecas y patrones de diseño centrados en el dominio del lenguaje Swift, la arquitectura de aplicaciones y el diseño de APIs. Proporciona un recurso técnico para implementar técnicas de codificación avanzadas y mejores prácticas arquitectónicas. El proyecto enfatiza la creación de interfaces seguras por tipos (type-safe) y conversacionales mediante la composición estratégica de protocolos y genéricos. Ofrece patrones especializados para construir sistemas de interfaz de usuario modulares y gestionar jerarquías de vistas complejas, junto con estrategias integrales para pruebas unitarias e inyección de dependencias. El recurso cubre una amplia gama de capacidades, incluyendo primitivas de programación funcional, utilidades avanzadas del sistema de tipos y estrategias de modelado de datos. También detalla técnicas para el manejo de errores, gestión de memoria y el desarrollo de interfaces de usuario responsivas.

    Centralizes common data shared across different enum cases by wrapping them in a struct.

    Ver en GitHub↗4,014
  1. Home
  2. Software Engineering & Architecture
  3. Code Duplication Reduction

Explorar subetiquetas

  • Abstraction Cost BalancersPractices for deciding when to accept code duplication to avoid tight coupling through over-abstraction. **Distinct from Code Duplication Reduction:** Unlike general duplication reduction, this focuses on the strategic choice to duplicate code to maintain decoupling.
  • Coupling-Reducing Duplication3 sub-etiquetasIntentional introduction of moderate code duplication to avoid the tight coupling caused by premature shared abstractions. **Distinct from Code Duplication Reduction:** Contrast with Code Duplication Reduction: it advocates for duplication to prevent coupling, whereas the candidate focuses on eliminating redundancy.
  • Generics-Based Duplication ReductionUses type parameters to separate data types from behavior, eliminating repetitive code without over-abstracting. **Distinct from Code Duplication Reduction:** Distinct from Code Duplication Reduction: focuses specifically on using generics to reduce duplication, not general abstraction or dead code elimination.
  • Model Data ConsolidationTechniques for centralizing common data shared across different enum cases using wrapping structures. **Distinct from Code Duplication Reduction:** Focuses on data structural consolidation in models rather than general logic abstraction or dead code elimination.
  • Token-Based Duplicate DetectorsTools that identify identical or near-identical code blocks by comparing tokenised source sequences across files. **Distinct from Code Duplication Reduction:** Distinct from Code Duplication Reduction: focuses on automated detection via token matching rather than architectural practices for eliminating redundancy.
  • Token-Based Duplication DetectorsIdentifies repeated code blocks by comparing tokenised source sequences and reporting similarity percentages across files. **Distinct from Code Duplication Reduction:** Distinct from Code Duplication Reduction: focuses on detecting existing duplication via token matching rather than eliminating it through abstraction.