14 个仓库
Techniques for using placeholders in package-level containers to keep packages agnostic of concrete implementations.
Distinct from Dependency Injection Containers: Focuses on the architectural decoupling of package dependencies using DI, not package manager installation.
Explore 14 awesome GitHub repositories matching devops & infrastructure · Package Dependency Decoupling. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Explains how to decouple interfaces from implementations using opaque pointers to accelerate compilation and hide internal logic.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Decouples entity dependencies by mapping interfaces or abstract classes to concrete implementations during runtime.
This project is a collection of software design patterns implemented in Go, serving as a technical reference and a set of practical programming examples. It maps theoretical architectural patterns to concrete code to demonstrate structural, creational, and behavioral coding techniques. The repository provides implementations for creational patterns focused on object instantiation and blueprint management, structural patterns for organizing object compositions, and behavioral patterns that manage object interactions and responsibilities. The content covers broad capability areas including in
Demonstrates how to program to interfaces to separate high-level logic from concrete implementations.
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
Replaces concrete dependencies with interfaces so implementations can be swapped without changing consumers.
Clean Architecture template for Golang services
Defines repository and use-case boundaries as Go interfaces so that the core domain never imports infrastructure packages directly.
This is a dependency injection framework and inversion of control container for Python. It decouples object creation from business logic by managing how services and their dependencies are assembled, delivered, and linked within an application. The framework is distinguished by its ability to perform automated component wiring, using import hooks and decorators to inject dependencies into functions and classes across different modules. It supports non-blocking flows through an asynchronous dependency resolver and manages the initialization and shutdown sequences of shared external resources a
Defines external dependencies within a package container using placeholders to maintain implementation agnosticism.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
ZIO programs to interfaces rather than concrete classes so different implementations can be swapped in without changing dependent code.
godropbox 是一个后端开发框架和服务蓝图,用于在 Go 中构建一致的服务器应用程序和微服务。它提供了一系列共享库和模式,以标准化多个项目间的开发流程。 该项目包括一个依赖注入库,通过基于接口的服务契约将业务逻辑与实现解耦。它还提供了一套用于将 Go 应用程序编译并部署为 Linux 上自包含静态二进制文件的工具。 该框架涵盖了企业应用工具,包括用于日志记录、配置和错误处理的共享原语。它进一步支持微服务架构和 Linux 服务编排,以确保互联服务间的一致行为。
Decouples high-level business logic from low-level implementations by programming to Go interfaces.
该项目为使用 Go 语言构建生产服务器、高性能后端、Kubernetes 微服务和 AI 流水线提供了一套结构化模板与框架。它作为基础架构,通过集成的路由和中间件,支持构建高吞吐量基础设施及可扩展的生产服务器。 该框架包含一套用于开发检索增强生成(RAG)系统的专用基础设施,强调本地模型推理与数据主权安全。此外,它还提供了一个用于容器化部署的微服务模板,专注于资源配额与服务生命周期管理。 该项目涵盖了广泛的功能领域,包括用于监控系统健康状况的可观测性埋点、基于接口的依赖注入,以及基于迁移的关联数据模式管理。它还集成了基于通道(channel)的并发机制,用于管理异步任务,并通过 CPU 和内存分析优化资源使用。
Decouples business logic from external infrastructure by defining interface contracts for data storage and APIs.
This is a Go library providing a framework for managing repetitive task execution and implementing exponential backoff strategies. It serves as a concurrency tool designed to prevent system overload during failures by retrying operations with increasing delays. The project implements a retry strategy framework that manages attempt limits and timeouts during unstable network or system calls. It specifically provides an implementation of the exponential backoff algorithm to handle failing operations. The library covers reliability patterns for mitigating transient failures and service outages,
Decouples the retry logic from specific wait algorithms using interfaces to allow custom delay implementations.
CTMediator 是一个用于 iOS 的动态服务定位器和模块化架构框架。它作为一个依赖解耦器,允许将大型项目拆分为更小的、独立的子项目和目标,以改善组织结构并缩短构建时间。 该框架使用目标-动作模式实现这些隔离模块之间的通信。它利用动态运行时查找来分派请求并将动作路由到特定模块,而无需在启动期间进行手动服务注册。 该系统通过基于协议的请求路由和中介者模式管理数据交换和项目分解,确保内部组件可以在不创建直接依赖的情况下进行通信。
Removes direct dependencies between app modules using a target-action pattern for communication.
这是一个 PHP 接口库,提供了一个组件互操作层。它由一组与框架无关的契约和标准化定义组成,使不同的库能够通过一致的契约协同工作。 该库专注于提供最小化的共享接口和 API 定义,允许软件组件在不同的 PHP 项目中使用,而无需依赖特定的底层框架。这种方法将应用程序逻辑与具体的框架实现解耦。 该项目专门涵盖了服务容器抽象和依赖注入标准化。通过定义访问服务容器的通用接口,它确保了不同容器实现之间的互操作性,并允许组件在各种环境中检索依赖项。
Provides generic interfaces that allow services to remain compatible across different components and versions.
This project is a comprehensive Python style guide and technical reference designed to promote the creation of clean, maintainable, and idiomatic code. It provides a set of opinionated guidelines and architectural patterns focusing on functional and declarative programming to reduce complexity and improve overall code quality. The guide establishes specific standards for naming conventions, module organization, and project layout. It emphasizes reducing object coupling by favoring modules and functions over deep class hierarchies and offers technical standards for writing docstrings and marku
Recommends using built-in serializable types to decouple components from custom object dependencies.
This project serves as a comprehensive handbook and architectural guide for software engineering best practices. It provides a curated set of principles and technical guidelines focused on maintaining long-term code health, reducing complexity, and ensuring that software systems remain readable and manageable as they grow. The core philosophy centers on modularity and domain-driven design, encouraging developers to structure applications around specific business use cases rather than the constraints of external frameworks. By prioritizing interface-based contracts and dependency injection, th
Uses inversion of control and dependency injection to decouple components and facilitate testing.