15 repository-uri
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.
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.
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.
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.
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.
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.
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.
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.
Pylint este un instrument de analiză statică a codului pentru Python care verifică codul sursă pentru erori, încălcări ale standardelor de codare și „code smells” fără a executa programul. Acesta parsează codul într-un arbore de sintaxă abstractă și parcurge arborele pentru a detecta probleme, impune reguli de stil configurabile și convenții de denumire și identifică blocuri de cod duplicate prin compararea secvențelor sursă tokenizate. Instrumentul include, de asemenea, un motor de inferență care deduce tipurile de variabile prin simularea căilor de cod, permițând o analiză mai profundă chiar și în codul netipizat. Ceea ce distinge Pylint este arhitectura sa de verificare bazată pe plugin-uri, care permite utilizatorilor să extindă analiza prin încărcarea de module Python externe care înregistrează verificatoare personalizate și reguli de inferență la runtime. Suportă stratificarea fișierelor de configurare, îmbinând setările din mai multe fișiere de configurare și argumente de linie de comandă, astfel încât valorile implicite la nivel de proiect să poată fi suprascrise de opțiuni locale sau specifice plugin-ului. Pylint urmărește, de asemenea, calitatea codului în timp prin compararea rezultatelor analizei curente cu un scor de referință stocat, raportând îmbunătățirea sau regresia în rulări succesive și poate genera diagrame UML de clasă și pachet din arborele de sintaxă abstractă în formatele Graphviz, PlantUML sau MermaidJS. Instrumentul se integrează în pipeline-uri de integrare continuă și hook-uri pre-commit pentru a rula automat verificări pe mai multe versiuni de interpretor Python. Poate fi instalat prin pip, conda sau un manager de pachete de sistem și oferă verificarea opțională a ortografiei identificatorilor de cod prin biblioteca enchant. Pylint oferă, de asemenea, integrare în editoare pentru medii precum Emacs și TextMate și include un vizualizator de explicații pentru mesaje care tipărește descrierea completă și contextul oricărui cod specific de avertizare sau eroare direct din linia de comandă.
Scans Python source files for identical or near-identical code blocks and reports their locations and similarity percentage.
PMD este un analizor static de cod multi-limbaj utilizat pentru a identifica defecte de programare, variabile neutilizate și cod mort fără a executa programul. Acesta funcționează ca un detector de code smell și un enforcer al standardelor de codare, asigurându-se că codul sursă respectă convențiile de denumire specifice, cerințele structurale și ghidurile de stil ale proiectului. Proiectul dispune de un motor de reguli bazat pe XPath care permite utilizatorilor să definească tipare de analiză personalizate folosind interogări asupra unui arbore sintactic abstract. Include, de asemenea, un detector de copy-paste pentru a identifica blocuri de cod duplicate în mai multe fișiere și un designer vizual de reguli pentru crearea și testarea tiparelor de detectare personalizate. Suprafața de analiză acoperă detectarea bug-urilor, identificarea problemelor de mentenabilitate pentru a reduce datoria tehnică și verificarea implementărilor de testare. De asemenea, oferă capabilități pentru identificarea metodelor excesiv de complexe și a listelor de parametri prea lungi.
Identifies identical or near-identical code blocks by comparing tokenised source sequences across multiple files.
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.
Acest proiect este un ghid de cod curat (clean code) pentru Python și o resursă de refactoring. Oferă o colecție de principii de măiestrie software și exemple concepute pentru a îmbunătăți lizibilitatea și mentenabilitatea codului sursă Python. Resursa se concentrează pe optimizarea denumirii variabilelor pentru a elimina maparea mentală și pe descompunerea funcțiilor în unități cu scop unic. Oferă linii directoare pentru reducerea duplicării codului și organizarea logicii pentru a asigura că componentele rămân ușor de extins și întreținut. Conținutul acoperă arhitectura software și calitatea designului, inclusiv implementarea principiilor SOLID și a tiparelor de design standard în industrie. De asemenea, abordează gestionarea efectelor secundare și utilizarea fluxurilor de lucru de testare automată în medii virtuale.
Provides techniques for eliminating redundant logic through the creation of shared abstractions.
Acest proiect este un plugin IntelliJ IDE care oferă un mediu de dezvoltare integrat pentru Rust. Acesta servește ca orchestrator de sistem de build și interfață de debugger, oferind analiză lingvistică cuprinzătoare, evidențierea sintaxei și asistență inteligentă pentru editarea codului. Plugin-ul se integrează cu un language server pentru a oferi inferență de tip în timp real și navigare în cod. Include un instrument dedicat de analiză statică pentru detectarea duplicatelor de cod, analizarea scurgerilor de memorie și măsurarea acoperirii testelor. Toolset-ul acoperă gestionarea toolchain-ului și integrarea Cargo pentru gestionarea dependențelor și a manifestelor. Oferă, de asemenea, capabilități pentru profilarea performanței, debugging-ul programelor la runtime și automatizarea testelor, precum și suport pentru dezvoltarea aplicațiilor web, inclusiv gestionarea containerelor și explorarea schemelor de baze de date.
Scans the codebase to detect repetitive logic patterns and redundant code to reduce technical debt.
Dhall este un limbaj de configurare type-safe conceput pentru a crea fișiere de configurare programabile care sunt garantate să se termine. Este un limbaj non-Turing-complete care utilizează un sistem de tipuri strict pentru a asigura corectitudinea și a preveni buclele infinite în timpul evaluării. Proiectul funcționează ca un motor de configurare determinist și instrument de marshalling, convertind expresiile programabile în formate statice precum JSON, YAML și Bash. Se distinge printr-un accent pe securitate și integritate, utilizând hashing semantic pentru a fixa importurile la distanță și impunând politici de origine pentru a preveni exfiltrarea datelor. Capabilitățile sale acoperă o suprafață largă de gestionare a configurației, inclusiv utilizarea funcțiilor polimorfice, a tipurilor union și a completării înregistrărilor pentru a reduce redundanța. Oferă instrumente pentru validarea schemelor, rezolvarea expresiilor la distanță și o implementare Language Server Protocol pentru integrarea în editor. Limbajul oferă o interfață de linie de comandă și un REPL pentru evaluarea expresiilor și verificarea egalității.
Define reusable values using let-expressions to avoid duplicating data across a configuration.
Reek este un analizor static de cod pentru proiecte Ruby, conceput pentru a identifica defectele de design și problemele de mentenabilitate cunoscute sub numele de "code smells". Funcționează ca un instrument de asigurare a calității care inspectează codul sursă fără a-l executa, pentru a găsi slăbiciuni structurale și datorii arhitecturale. Analizorul identifică tipare specifice, cum ar fi clasele prea mari, metodele lungi și denumirile neclare. De asemenea, detectează probleme de design mai complexe, inclusiv "feature envy", "data clumps", polimorfism simulat și "control coupling". Instrumentul include capabilități pentru stabilirea unei linii de bază (baselining) pentru gestionarea codului legacy și filtrarea bazată pe configurație pentru a exclude directoare specifice. Suportă verificări automate ale calității prin pipeline-uri de integrare continuă (CI) și oferă rapoarte de analiză în formate precum JSON, YAML, XML și HTML.
Detects methods that use parameters to decide execution paths, signaling potential duplication or fragmented responsibilities.
SwiftTips este o colecție curatoriată de ghiduri, biblioteci și design patterns axate pe stăpânirea limbajului Swift, arhitectura aplicațiilor și designul de API-uri. Oferă o resursă tehnică pentru implementarea tehnicilor avansate de codare și a bunelor practici arhitecturale. Proiectul pune accent pe crearea de interfețe „type-safe” și conversaționale prin compoziția strategică a protocoalelor și generice. Oferă tipare specializate pentru construirea de sisteme UI modulare și gestionarea ierarhiilor complexe de view-uri, alături de strategii cuprinzătoare pentru unit testing și dependency injection. Resursa acoperă o gamă largă de capabilități, inclusiv primitive de programare funcțională, utilitare avansate pentru sistemul de tipuri și strategii de modelare a datelor. De asemenea, detaliază tehnici pentru gestionarea erorilor, gestionarea memoriei și dezvoltarea de interfețe responsive.
Centralizes common data shared across different enum cases by wrapping them in a struct.