awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

18 Repos

Awesome GitHub RepositoriesInterface-Based Decoupling

Relying on abstract interfaces rather than concrete implementations to reduce coupling between components.

Distinct from Component Abstractions: Distinct from Component Abstractions: focuses on the principle of depending on interfaces, not the abstraction layer itself.

Explore 18 awesome GitHub repositories matching software engineering & architecture · Interface-Based Decoupling. Refine with filters or upvote what's useful.

Awesome Interface-Based Decoupling GitHub Repositories

Finde die besten Repos mit KI.Wir suchen mit KI nach den am besten passenden Repositories.
  • rust-unofficial/patternsAvatar von rust-unofficial

    rust-unofficial/patterns

    8,843Auf GitHub ansehen↗

    A catalogue of Rust design patterns, anti-patterns and idioms

    Promotes relying on abstract interfaces rather than concrete implementations to reduce coupling.

    Handlebarsantipatternsidiomspatterns
    Auf GitHub ansehen↗8,843
  • teivah/100-go-mistakesAvatar von teivah

    teivah/100-go-mistakes

    7,915Auf GitHub ansehen↗

    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

    Advocates defining interfaces on the consumer side to decouple code and enable implementation swapping.

    Gobookchinesedocumentation
    Auf GitHub ansehen↗7,915
  • fuzhengwei/itstack-demo-designAvatar von fuzhengwei

    fuzhengwei/itstack-demo-design

    6,779Auf GitHub ansehen↗

    Dieses Projekt ist ein Leitfaden für Software-Design-Pattern und eine Architektur-Referenz. Es bietet eine praktische Sammlung von Code-Beispielen, die creational, structural und behavioral Patterns demonstrieren, um die Wartbarkeit und Qualität von Software zu verbessern. Die Bibliothek enthält standardisierte Implementierungen für die Objektinstanziierung durch creational Patterns, Templates für den Zusammenbau von Objekten in effiziente Hierarchien mittels structural Patterns sowie Beispiele für die Verwaltung von Objektkommunikation und Verantwortungsverteilung durch behavioral Patterns. Das Projekt ordnet diese abstrakten Design-Pattern spezifischen Geschäftsbereichen wie Transaktionen und Marketing zu, um zu zeigen, wie reale Softwareprobleme gelöst werden können. Dies umfasst die Anwendung von polymorphem Runtime-Dispatch und interface-basierter Entkopplung, um die Systemkomplexität zu reduzieren und die Skalierbarkeit zu erhöhen.

    Employs abstract interfaces to separate high-level logic from low-level implementations for improved maintainability.

    Java
    Auf GitHub ansehen↗6,779
  • filhodanuvem/gitqlAvatar von filhodanuvem

    filhodanuvem/gitql

    6,295Auf GitHub ansehen↗

    Gitql ist eine SQL-Query-Engine und ein Metadaten-Suchtool zur Erkundung und zum Abruf von Informationen aus Versionskontrollsystemen. Es bietet eine strukturierte Abfragesprache, die es Benutzern ermöglicht, Assets aus einer Projekthistorie mithilfe einer formalen Syntax anstelle von Standard-Kommandozeilenbefehlen zu filtern und zu extrahieren. Das Tool arbeitet als interaktiver Daten-Explorer und verfügt über eine Kommandozeilenschnittstelle zur Echtzeit-Auswertung von Repository-Daten. Es bildet Versionskontrollentitäten, wie Commits und Tags, auf virtuelle relationale Tabellen ab, was die Ausführung sequenzieller Abfragen zur Historienprüfung und Analyse von Repository-Metadaten ermöglicht. Das System deckt weitreichende Funktionen für den Abruf von Repository-Assets ab, einschließlich der Extraktion von Informationen aus Pull Requests, Issues und Diskussionen. Es enthält zudem Mechanismen zur Erkundung des Repository-Schemas, um zu identifizieren, welche Datentabellen für Abfragen verfügbar sind.

    Implements an abstraction layer that decouples the SQL query engine from the underlying Git storage.

    Gogitgohacktoberfest
    Auf GitHub ansehen↗6,295
  • juancrg90/clean-code-notesAvatar von JuanCrg90

    JuanCrg90/Clean-Code-Notes

    6,119Auf GitHub ansehen↗

    Clean-Code-Notes ist ein Studienleitfaden für Clean Code und eine Sammlung detaillierter Notizen, die auf professionellen Standards der Softwareentwicklung basieren. Es dient als Dokumentation für Codierungsstandards und als Referenz für das Schreiben wartbaren Quellcodes. Das Projekt bietet technische Zusammenfassungen für objektorientiertes Design und Software-Entwurfsmuster. Es enthält Richtlinien für die Organisation von Klassen und Schnittstellen zur Reduzierung der Kopplung, zur Isolierung von Implementierungsdetails und zur Implementierung architektonischer Muster wie Dependency Injection und Interface-Abstraktion. Die Ressource fungiert zudem als Implementierungsleitfaden für Test-Driven Development (TDD) und konzentriert sich auf die Erstellung schneller, unabhängiger und wiederholbarer Unit-Tests. Darüber hinaus deckt sie Standards für Namenskonventionen, Fehlerbehandlung und Code-Formatierung ab, um die langfristige Lesbarkeit zu verbessern.

    Explains how to rely on abstract interfaces rather than concrete implementations to reduce coupling between components.

    bookclean-codenotes
    Auf GitHub ansehen↗6,119
  • dbacinski/design-patterns-in-kotlinAvatar von dbacinski

    dbacinski/Design-Patterns-In-Kotlin

    5,998Auf GitHub ansehen↗

    Dieses Projekt ist eine Referenzsammlung praktischer Beispiele, die die Implementierung gängiger Software-Design-Patterns in Kotlin demonstrieren. Es dient als Leitfaden für architektonische Best Practices und objektorientierte Prinzipien durch die Anwendung von Verhaltens-, Erzeugungs- und Strukturmustern. Die Sammlung bietet konkrete Implementierungen, um zu zeigen, wie die Objektinstanziierung entkoppelt, die Kommunikation und Verantwortung zwischen Objekten verwaltet und komplexe Klassen- und Objektbeziehungen organisiert werden können. Die Referenz deckt Erzeugungsmuster wie Factories und Builder, Strukturmuster wie Adapter und Composites sowie Verhaltensmuster wie Observer und Strategies ab.

    Demonstrates the use of abstract interfaces to decouple high-level logic from concrete implementations.

    Kotlin
    Auf GitHub ansehen↗5,998
  • antoniolg/androidmvpAvatar von antoniolg

    antoniolg/androidmvp

    5,900Auf GitHub ansehen↗

    Dieses Projekt ist eine Referenzimplementierung der Model-View-Presenter-Architektur für Android-Anwendungen. Es dient als strukturelles Beispiel dafür, wie Geschäftslogik durch ein Presenter-basiertes Framework von der Benutzeroberfläche getrennt werden kann. Die Implementierung konzentriert sich auf einen Clean-Architecture-Ansatz und nutzt Presenter, um die gesamte Kommunikation zwischen Datenmodell und View zu vermitteln. Sie verwendet ein Passive-View-Muster und eine Interface-basierte Entkopplung, um die Benutzeroberfläche von Domänenregeln zu isolieren. Die Architektur integriert Interactor-basierte Domänenlogik und eine schichtweise Trennung, um die systemische Kopplung zu reduzieren. Diese Struktur ermöglicht plattformunabhängige Unit-Tests, wodurch die Anwendungslogik innerhalb einer Standard-Java-Virtual-Machine verifiziert werden kann, ohne das Android-Framework oder ein physisches Gerät zu benötigen.

    Uses interface-based decoupling to separate the user interface from underlying business logic.

    Java
    Auf GitHub ansehen↗5,900
  • hit-alibaba/interviewAvatar von HIT-Alibaba

    HIT-Alibaba/interview

    5,253Auf GitHub ansehen↗

    Dieses Projekt ist eine umfassende Vorbereitungshilfe für technische Interviews und eine Wissensdatenbank für Informatik. Es dient als strukturierte Lernressource, die Software-Engineers dabei unterstützt, grundlegende Engineering-Konzepte zu wiederholen und sich auf professionelle Coding-Assessments vorzubereiten. Das Repository konzentriert sich auf eine Vielzahl theoretischer und praktischer Bereiche, einschließlich detaillierter Referenzen für mobile App-Architektur und Betriebssystem-Grundlagen. Es bietet kuratierte Materialien zu Software-Architekturmustern und Netzwerkprotokoll-Analyse zur Unterstützung der beruflichen Weiterentwicklung. Der Inhalt deckt fundamentale Bereiche wie Datenstrukturen und Algorithmen, Concurrency und Multithreading sowie Speicherverwaltung ab. Zudem bietet es tiefgehende Einblicke in Systemarchitektur, einschließlich Prozess-Scheduling, Inter-Process-Communication und UI-Rendering-Optimierung.

    Separates object responsibilities by relying on abstract interfaces rather than concrete implementations.

    Shellinterviewinterview-preparation
    Auf GitHub ansehen↗5,253
  • rrousselgit/providerAvatar von rrousselGit

    rrousselGit/provider

    5,258Auf GitHub ansehen↗

    Provider ist ein State-Management- und Dependency-Injection-Framework für Flutter. Es vereinfacht die gemeinsame Nutzung von Daten innerhalb eines Widget-Baums durch ein System, das die Injektion von Objekten und Services mit automatisiertem Lebenszyklus und Ressourcenbereinigung verwaltet. Das Framework zeichnet sich durch reaktive State-Container aus, die asynchrone Daten aus Streams und Futures direkt in den Komponentenbaum einbinden. Es unterstützt State-Derivation, wodurch neue Objekte basierend auf Werten aus mehreren Upstream-Providern konstruiert und synchronisiert werden können. Zur Performance-Optimierung bietet es selektive Rebuild-Filter und partielle State-Subscriptions, um Updates auf spezifische UI-Bereiche zu begrenzen. Die Bibliothek deckt breite Einsatzbereiche ab, darunter Interface-Mapping zur Entkopplung konkreter Implementierungen von abstrakten Interfaces sowie Provider-Komposition, um mehrere Dependency-Definitionen zu flachen und die Verschachtelung zu reduzieren. Zudem enthält sie Utilities für optionale Dependency-Resolution und die Erhaltung des App-Status während Hot-Reload-Zyklen.

    Decouples components from concrete implementations by injecting dependencies through abstract interfaces, promoting testability.

    Dart
    Auf GitHub ansehen↗5,258
  • php-ffmpeg/php-ffmpegAvatar von PHP-FFmpeg

    PHP-FFmpeg/PHP-FFmpeg

    5,013Auf GitHub ansehen↗

    PHP-FFmpeg ist ein objektorientierter Wrapper zur Ausführung von FFmpeg-Binärbefehlen innerhalb von PHP-Anwendungen. Es dient als Multimedia-Verarbeitungsbibliothek und Toolkit zum Transkodieren, Zuschneiden, Zusammenführen und Filtern von Audio- und Videodateien über eine standardisierte programmatische Schnittstelle. Das Projekt bietet spezialisierte Treiber für Videomanipulation, Audiobearbeitung und die Extraktion von Medien-Metadaten. Diese Treiber ermöglichen die Anwendung visueller Filter, die Änderung von Audio-Abtastraten sowie das Auslesen von Multimedia-Dateien, um technische Spezifikationen abzurufen und die Dateiintegrität zu validieren. Die Bibliothek deckt eine breite Palette an Medienverarbeitungsfunktionen ab, einschließlich Formatkonvertierung, Stream-Synchronisation und der Erstellung von Audio-Wellenformen. Sie unterstützt programmatische Videobearbeitungsaufgaben wie Frame-Extraktion, Medien-Konkatenation und die Orchestrierung komplexer Filtergraphen zur Komposition mehrerer Medienquellen.

    Utilizes PHP interfaces to decouple the library API from specific versions of the underlying FFmpeg binary.

    PHP
    Auf GitHub ansehen↗5,013
  • yuin/goldmarkAvatar von yuin

    yuin/goldmark

    4,860Auf GitHub ansehen↗

    Goldmark is a Markdown parser and renderer written in Go that converts Markdown text into HTML or XHTML. It implements the CommonMark specification to ensure consistent parsing behavior. The project utilizes a modular extension registry, allowing for the addition of custom syntax such as tables, task lists, and footnotes. It also includes specialized support for CJK languages to handle specific line-breaking and emphasis rules for Chinese, Japanese, and Korean characters. The library parses text into an abstract syntax tree for programmatic document analysis and modification. Its capabilitie

    Decouples document structure from output formats by using abstract interfaces to map nodes to targets.

    Gocommonmarkgogolang
    Auf GitHub ansehen↗4,860
  • qianmo/unity-design-patternAvatar von QianMo

    QianMo/Unity-Design-Pattern

    4,659Auf GitHub ansehen↗

    Dieses Projekt ist eine Bibliothek mit C#-Softwarearchitektur-Beispielen und eine Referenz für Game-Programming-Patterns, die speziell für die Unity-Engine implementiert wurden. Es bietet eine Sammlung von Gang-of-Four- und spezialisierten Game-Programming-Patterns, um Softwarekomponenten zu organisieren und die Skalierbarkeit des Codes zu verbessern. Die Implementierung deckt strukturelle und verhaltensbezogene Patterns ab, die zur Verwaltung von Status und Performance in Echtzeit-Spielsimulationen verwendet werden. Der Fokus liegt auf der Übersetzung theoretischer Design-Patterns in funktionierenden Code, um die Wartbarkeit und Systemstruktur zu verbessern. Die Architektur umfasst Patterns für Action-Encapsulation, Objekt-Erstellung und Event-Messaging sowie Systeme für Statusmanagement, Finite-State-Machines und Behavior-Switching. Zudem wird eine interfacebasierte Entkopplung genutzt, um Abhängigkeiten zwischen Klassen zu reduzieren.

    Uses abstract interfaces to decouple game components and allow interchangeable pattern implementations.

    C#bridge-patterncommand-patterncsharp-design-patterns
    Auf GitHub ansehen↗4,659
  • zeux/pugixmlAvatar von zeux

    zeux/pugixml

    4,590Auf GitHub ansehen↗

    pugixml ist ein leichtgewichtiger C++-XML-Parser und eine DOM-basierte Bibliothek, die zum Parsen, Manipulieren und Speichern von XML-Dokumenten verwendet wird. Sie bietet ein portables Toolset zum Lesen von XML-Daten aus Dateien, Strings oder Speicherpuffern und deren Konvertierung in ein In-Memory-Dokumentobjektmodell. Die Bibliothek enthält eine dedizierte XPath-1.0-Engine zur Extraktion spezifischer Knoten und Daten durch Pfadausdrücke. Sie zeichnet sich durch anpassbares Speichermanagement aus, das es ermöglicht, Heap-Operationen auf benutzerdefinierte Allokationsfunktionen umzuleiten, sowie durch die Fähigkeit, In-Place-Puffer-Parsing durchzuführen, um Speicherallokationen zu reduzieren. Der Funktionsumfang deckt XML-Datenmanipulation ab, wie etwa das Einfügen oder Entfernen von Knoten und Attributen, sowie die Dokument-Serialisierung zum Exportieren strukturierter Daten in Streams oder Dateien. Das Projekt bietet zudem Mechanismen für die Baum-Traversierung mittels Iteratoren und Walker-Objekten sowie eine Writer-Schnittstelle zur Umleitung von Ausgabezielen.

    Uses a writer interface to decouple XML serialization from the final storage destination.

    C++
    Auf GitHub ansehen↗4,590
  • failsafe-lib/failsafeAvatar von failsafe-lib

    failsafe-lib/failsafe

    4,307Auf GitHub ansehen↗

    Failsafe ist eine JVM-Bibliothek für Fehlertoleranz und ein Framework für Resilience-Muster. Es bietet ein Toolkit zur Implementierung von Circuit Breakern, Rate Limitern und anderen Stabilitätsmustern in JVM-Anwendungen, um kaskadierende Fehler in verteilten Systemen zu verhindern. Das Projekt zeichnet sich durch seine policy-basierte Ausführungspipeline aus, die die Komposition mehrerer Resilience-Muster zu einem sequenziellen Ablauf ermöglicht. Es bietet einen Zustandsautomaten-Circuit-Breaker zur Verwaltung der Service-Wiederherstellung und einen Leaky-Bucket-Rate-Limiter zur Steuerung der Operationsfrequenz. Die Bibliothek deckt ein breites Spektrum an Funktionen ab, darunter Ressourcenisolierung durch Bulkheads, automatisierte Retry-Logik mit Fallback-Bereitstellung und Ausführungs-Timeouts. Zudem bietet sie Mechanismen für die asynchrone Aufgabenausführung und die Verwaltung nicht-blockierender Pipelines über Completion Stages. Monitoring und Observability sind durch Event-Listener und Metrik-Exporte integriert, die Zustandsübergänge des Circuit Breakers und Ausführungsmeilensteine verfolgen.

    Decouples the timing and execution of delayed tasks from specific JVM threading implementations via a service provider interface.

    Javabulkheadcircuit-breakerfallback
    Auf GitHub ansehen↗4,307
  • luckybilly/ccAvatar von luckybilly

    luckybilly/CC

    4,041Auf GitHub ansehen↗

    CC ist ein Android-Komponentisierungs-Framework und Modularisierungstool, das entwickelt wurde, um monolithische Anwendungen in unabhängige Komponenten zu transformieren. Es bietet ein System zum Starten und Debuggen einzelner Komponenten in Isolation, um Kompilierungszeiten zu reduzieren, sowie eine Kommunikationsschicht für die Ausführung von Funktionen über verschiedene Android-Prozesse hinweg unter Verwendung einer einheitlichen Schnittstelle. Das Projekt nutzt ein Bytecode-Plugin zur Build-Zeit, um Komponenten und Interceptoren automatisch zu registrieren, wodurch die Notwendigkeit manueller Boilerplate-Konfiguration entfällt. Es unterstützt die inkrementelle Architekturmigration, was es ermöglicht, eine Codebasis schrittweise in eine komponentisierte Struktur zu überführen, ohne eine vollständige Neuentwicklung zu erfordern. Das Framework handhabt Komponenten-Mapping über gemeinsame Schnittstellen und leitet Aufrufe über eine Interception-basierte Request-Pipeline weiter. Diese Funktionen erleichtern die entkoppelte Modulverwaltung und den prozessübergreifenden Service-Aufruf.

    Connects callers to implementations through shared interfaces to decouple components while maintaining type safety.

    Javaandroid-architectureandroid-componentarchitecture-components
    Auf GitHub ansehen↗4,041
  • lektor/lektorAvatar von lektor

    lektor/lektor

    3,945Auf GitHub ansehen↗

    Lektor ist ein Python-basiertes Static Site Generator und Flat-File-Content-Management-System. Es transformiert Rohinhalte und Datenmodelle in statische HTML-Seiten und speichert alle Website-Daten in einem hierarchischen Dateisystem anstelle einer relationalen Datenbank. Das System arbeitet als modellgetriebenes CMS, das Blueprints und Schemas nutzt, um Datenerfassung und Validierung zu steuern. Es bietet eine browserbasierte administrative Oberfläche, die es Benutzern ermöglicht, Website-Inhalte visuell zu bearbeiten und zu organisieren, ohne den Quellcode direkt zu modifizieren. Die Plattform verwaltet den gesamten Website-Lebenszyklus, einschließlich Static Site Generation, mehrsprachiger Lokalisierung und Deployment. Sie entkoppelt den Generierungsprozess vom Upload-Mechanismus durch austauschbare Publisher-Schnittstellen für verschiedene Hosting-Anbieter. Die Erweiterbarkeit erfolgt über ein Plugin-System, das die Integration benutzerdefinierter Logik in den Build-Prozess ermöglicht, während Themes Templates, Modelle und Assets für die Wiederverwendung über Projekte hinweg bündeln.

    Decouples site generation from the upload mechanism via interchangeable publisher interfaces.

    Pythoncmsstatic-site-generator
    Auf GitHub ansehen↗3,945
  • matthewrenze/clean-architecture-demoAvatar von matthewrenze

    matthewrenze/clean-architecture-demo

    1,217Auf GitHub ansehen↗

    This project serves as a reference implementation for applying clean architecture principles within a C# environment. It demonstrates how to structure enterprise applications by organizing code into concentric, independent layers that isolate core business logic from external infrastructure, frameworks, and database concerns. The codebase illustrates the application of domain-driven design to center software logic around business entities and rules. It utilizes interface-based decoupling and dependency inversion to ensure that high-level policies remain unaware of low-level implementation det

    Uses abstract interfaces to decouple high-level policies from low-level implementation details.

    C#
    Auf GitHub ansehen↗1,217
  • bmaslakov/kotlin-algorithm-clubAvatar von bmaslakov

    bmaslakov/kotlin-algorithm-club

    929Auf GitHub ansehen↗

    This project is a comprehensive library of fundamental computer science algorithms and data structures implemented in Kotlin. It serves as a toolkit for software engineering proficiency, providing a collection of standard computational techniques designed to operate on any data type through the use of language-level generics. The library distinguishes itself by emphasizing educational clarity and type-safe implementation. It utilizes interface-based abstractions to decouple algorithmic logic from specific data structures, while employing recursive problem decomposition and immutable state pat

    Decouples algorithmic logic from specific data structures using interface-based contracts.

    Kotlinalgorithmcomputer-sciencedata-structures
    Auf GitHub ansehen↗929
  1. Home
  2. Software Engineering & Architecture
  3. Component Abstractions
  4. Interface-Based Decoupling

Unter-Tags erkunden

  • Deployment Publisher InterfacesInterchangeable interfaces that decouple the generation of static files from the upload process. **Distinct from Interface-Based Decoupling:** Specific to the publishing stage of a static site generator rather than general component decoupling.
  • Scheduler AbstractionsDecoupling task timing and execution from specific threading implementations via interfaces. **Distinct from Interface-Based Decoupling:** Distinct from Interface-Based Decoupling: specifically addresses the abstraction of task scheduling and timing mechanisms.
  • Serialization Output RedirectionDecouples the XML serialization process from the storage destination via a writer interface. **Distinct from Interface-Based Decoupling:** Focuses on redirecting the output of an XML serializer, not general component decoupling.
  • Version Control AbstractionsAbstraction layers that decouple query logic from specific version control storage implementations. **Distinct from Interface-Based Decoupling:** Distinct from Interface-Based Decoupling by specifically targeting the abstraction of version control systems rather than general component decoupling.