11 Repos
Architectural strategies for separating modules using strict interface boundaries.
Distinguishing note: Focuses on trait-based decoupling, distinct from general dependency injection.
Explore 11 awesome GitHub repositories matching software engineering & architecture · Component Decoupling Patterns. Refine with filters or upvote what's useful.
Servo is a high-performance, memory-safe web rendering engine designed for cross-platform embedding. It provides a modular framework that allows developers to integrate web content rendering into native applications across desktop, mobile, and embedded systems. By enforcing strict process isolation and memory safety, the engine creates a secure execution environment for processing web content. The engine distinguishes itself through a task-based, parallelized architecture that decouples layout, style, and rendering processes to maximize responsiveness. It utilizes a hardware-abstracted graphi
Defines strict boundaries between style, layout, and content modules to maintain architectural separation.
This project serves as a technical reference and guide for implementing idiomatic software design patterns within the Go programming language. It provides a curated collection of architectural blueprints and coding strategies designed to help developers organize complex codebases into maintainable, modular components. The repository covers a broad spectrum of software engineering practices, including creational, structural, and behavioral design patterns. It emphasizes the use of language-specific idioms to manage object instantiation, decouple component interactions, and extend functionality
Separates business logic from implementations using strict interface boundaries to ensure modularity.
ARouter is a framework for Android applications designed to decompose monolithic apps into smaller, independent modules. It provides a URL-based routing system that enables navigation between decoupled components and modules without requiring direct class dependencies. The framework includes a navigation interceptor to handle authentication, redirection, and custom activity animations during page transitions. It also features a service injector that manages dependencies across modules using an inversion of control pattern and interface-based injection. The toolset covers inter-module navigat
Employs an inversion of control pattern to manage shared components across separate Android modules.
LearningNotes ist eine technische Wissensdatenbank und ein Engineering-Studienleitfaden, der sich auf Android-Framework-Interna, Systemarchitektur und mobile Leistungsoptimierung konzentriert. Er dient als Referenz für die Analyse der Android-Boot-Sequenz, des Prozess-Bootstrappings und der Initialisierung von Systemdiensten. Das Projekt bietet detaillierte Anleitungen zur mobilen Leistung, einschließlich Strategien zur Reduzierung von Speicher-Footprints, zur Identifizierung von Speicherlecks und zur Optimierung der Bilddekodierung. Es deckt zudem die Android-Inter-Prozess-Kommunikation mittels AIDL und dem Binder-Kernel-Treiber ab sowie Softwarearchitektur-Handbücher zur Entkopplung von Geschäftslogik von Benutzeroberflächen durch Muster wie MVVM und MVP. Über die mobile Entwicklung hinaus enthält das Repository eine Informatik-Wissensdatenbank zur Vorbereitung auf technische Vorstellungsgespräche, die Datenstrukturen, Algorithmen und Betriebssystemkonzepte abdeckt. Es bietet zudem eine praktische Referenz für die Git-Versionskontrolle, die Repository-Management, Synchronisierung und Branching-Workflows detailliert beschreibt.
Implements publish-subscribe patterns to decouple communication and remove direct dependencies between software components.
The AWS Cloud Development Kit is an infrastructure-as-code framework that enables developers to define and provision cloud resources using familiar programming languages. By utilizing construct-based synthesis, it translates high-level, object-oriented code into declarative templates, allowing for the automated management of complex cloud environments through a centralized, code-driven control plane. The framework distinguishes itself through its ability to model infrastructure as a dependency-aware resource graph, ensuring that components are provisioned and updated in the correct order. It
Integrates independent systems using hosted queues to buffer messages and ensure reliable communication.
CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web applications. It provides a lightweight toolkit with minimal configuration, organizing application logic into controllers, models, and views for clean separation of concerns. The framework includes a fluent query builder for constructing SQL statements programmatically, PSR-4 autoloading with namespace mapping, and a service-based dependency injection container for managing shared class instances. The framework distinguishes itself through its comprehensive set of built-in tools
CodeIgniter keeps each part of the system independent so they can be reused, replaced, or tested without affecting others.
Otto ist ein ereignisgesteuertes Kommunikationssystem, das als Event-Bus für Android-Anwendungen konzipiert ist. Es bietet einen Mechanismus zur Entkopplung von Anwendungskomponenten durch das Routing von Ereignissen zwischen ihnen, ohne dass direkte Abhängigkeiten erforderlich sind. Das System ist zustandsbewusst, was bedeutet, dass es neuen Abonnenten unmittelbar nach der Registrierung den zuletzt bekannten Wert bereitstellen kann. Es arbeitet als synchroner Event-Dispatcher und stellt sicher, dass alle registrierten Listener auf ein Objekt reagieren, bevor die Ausführung fortgesetzt wird. Die Bibliothek umfasst Funktionen für das Management von Event-Abonnements und die Durchsetzung der Thread-Ausführung, um Callbacks auf spezifische Threads zu beschränken. Sie nutzt typbasiertes Subscriber-Mapping, um Listener gemäß der Klasse der Ereignisse zu organisieren, die sie empfangen.
Implements decoupling patterns to facilitate communication between application components without direct dependencies.
Ballerina is a cloud-native programming language and distributed services framework designed for building and integrating networked services. It provides a network-aware runtime that manages non-blocking input and output operations to support scalable distributed systems. The platform features a visual programming environment that maintains bidirectional synchronization between source code and graphical sequence diagrams. It utilizes a structural type system to decouple independent software components and includes a cloud infrastructure generator that produces Docker and Kubernetes deployment
Implements a structural type system to reduce dependencies and eliminate manual data mapping between distributed services.
Erigon is an Ethereum execution client and blockchain archive node designed to maintain full or archive copies of the blockchain. It functions as a Proof-of-Stake validator, an Ethereum RPC server, and a network validator operation tool, providing the core infrastructure to validate blocks and secure the chain. The project distinguishes itself through high-performance storage and data distribution, utilizing a flat key-value state storage system instead of a Merkle Patricia Trie to increase read and write speeds. It employs BitTorrent-based data distribution for immutable historical blockchai
Runs the RPC daemon and network layer as independent services to improve scalability and security.
EventEmitter3 is a high-performance JavaScript event emitter and publish-subscribe library. It implements the observer pattern to enable decoupled communication between application components through the registration and emission of custom events. The library functions as a context-aware event dispatcher, allowing specific execution contexts to be bound to listeners. This removes the need for manual function binding during event dispatching. The project covers core event management capabilities, including listener registration and a synchronous execution loop for event delivery. It utilizes
Enables separate software modules to exchange data and trigger actions without requiring direct references.
Dieses Projekt bietet ein standardisiertes Architektur-Framework für den Aufbau skalierbarer Full-Stack-Enterprise-Anwendungen. Es dient als grundlegendes Boilerplate, das Prinzipien der Clean Architecture durchsetzt und sicherstellt, dass Geschäftslogik von Infrastruktur-Belangen und externen Datenspeicherungsdetails isoliert bleibt. Durch die Organisation von Code in funktionsbasierten Modulen anstelle von technischen Rollen vereinfacht das Framework die Navigation und Wartung in großen, komplexen Codebasen. Die Architektur zeichnet sich durch ein mediatorbasiertes Kommunikationsmodell aus, das Anwendungsschichten entkoppelt und zyklische Abhängigkeiten verhindert. Sie nutzt eine zentralisierte Pipeline für die Anforderungsverarbeitung, die Querschnittsaufgaben wie Validierung, Sicherheit und Fehlerbehandlung über alle Endpunkte hinweg standardisiert. Dieser Ansatz sorgt für konsistentes Verhalten und reduziert redundanten Code, indem Kommunikation und Logikfluss über einen einheitlichen Dispatcher gesteuert werden. Das Framework integriert zudem robuste Datenmanagement-Strategien und nutzt Aggregate Roots, um die transaktionale Integrität zu wahren und Geschäftsregeln durchzusetzen. Es unterstützt die modulare Komposition durch Dependency Injection und bietet Tools zum Abfangen von Netzwerkverkehr und zur Verwaltung von Routenzugriffen. Das Projekt enthält eine umfassende Vorlage für .NET- und webbasierte Entwicklung und bietet einen strukturierten Ausgangspunkt, der Containerisierung und konsistente Bereitstellung in verschiedenen Umgebungen erleichtert.
Reduces dependency complexity by using mediator patterns to manage communication between application layers.