11 repositorios
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 es una base de conocimientos técnicos y guía de estudio de ingeniería centrada en los internos del framework de Android, la arquitectura del sistema y la optimización del rendimiento móvil. Sirve como referencia para analizar la secuencia de arranque de Android, el arranque de procesos y la inicialización de servicios del sistema. El proyecto proporciona guías detalladas sobre el rendimiento móvil, incluyendo estrategias para reducir las huellas de memoria, identificar fugas de memoria y optimizar la decodificación de imágenes. Además, cubre la comunicación entre procesos de Android utilizando AIDL y el controlador del kernel Binder, así como manuales de arquitectura de software para desacoplar la lógica de negocio de las interfaces de usuario a través de patrones como MVVM y MVP. Más allá del desarrollo móvil, el repositorio incluye una base de conocimientos de ciencias de la computación para la preparación de entrevistas técnicas, cubriendo estructuras de datos, algoritmos y conceptos de sistemas operativos. También cuenta con una referencia práctica para el control de versiones de Git, detallando la gestión de repositorios, sincronización y flujos de trabajo de ramificación.
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 es un sistema de comunicación dirigido por eventos diseñado como un bus de eventos para aplicaciones Android. Proporciona un mecanismo para desacoplar componentes de la aplicación mediante el enrutamiento de eventos entre ellos sin requerir dependencias directas. El sistema es consciente del estado, lo que significa que puede proporcionar el valor conocido más reciente a nuevos suscriptores inmediatamente después del registro. Opera como un despachador de eventos síncrono, asegurando que todos los oyentes registrados respondan a un objeto antes de que la ejecución continúe. La librería incluye capacidades para la gestión de suscripciones a eventos y la aplicación de ejecución de hilos para restringir callbacks a hilos específicos. Utiliza mapeo de suscriptores basado en tipos para organizar a los oyentes de acuerdo con la clase de los eventos que reciben.
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.
Este proyecto proporciona un framework arquitectónico estandarizado para construir aplicaciones empresariales escalables de stack completo. Sirve como un boilerplate fundamental que aplica principios de arquitectura limpia, asegurando que la lógica de negocio permanezca aislada de las preocupaciones de infraestructura y los detalles de persistencia de datos externos. Al organizar el código en módulos basados en características en lugar de roles técnicos, el framework simplifica la navegación y el mantenimiento dentro de bases de código grandes y complejas. La arquitectura se distingue por un modelo de comunicación basado en mediadores que desacopla las capas de la aplicación y evita dependencias cíclicas. Utiliza un pipeline centralizado para el procesamiento de solicitudes, que estandariza preocupaciones transversales como la validación, la seguridad y el manejo de errores en todos los endpoints. Este enfoque garantiza un comportamiento consistente y reduce el código redundante al gestionar la comunicación y el flujo de lógica a través de un despachador unificado. El framework también incorpora estrategias robustas de gestión de datos, utilizando raíces de agregación para mantener la integridad transaccional y aplicar invariantes de negocio. Admite la composición modular mediante inyección de dependencias y proporciona herramientas para interceptar el tráfico de red y gestionar el acceso a rutas. El proyecto incluye una plantilla integral para el desarrollo en .NET y web, ofreciendo un punto de partida estructurado que facilita la contenedorización y el despliegue consistente en diversos entornos.
Reduces dependency complexity by using mediator patterns to manage communication between application layers.