16 Repos
Collections of fundamental rules and guidelines for structuring software systems and architectural patterns.
Distinguishing note: This category focuses on abstract design principles like SOLID, whereas other categories focus on concrete implementation tools or frameworks.
Explore 16 awesome GitHub repositories matching software engineering & architecture · Software Design Principles. Refine with filters or upvote what's useful.
This repository serves as a comprehensive educational collection of industry-standard software design patterns and architectural principles implemented in Java. It functions as a structured reference for developers to study and apply proven strategies for building maintainable, object-oriented systems. The project acts as a knowledge base for software engineering, offering a curated set of programming heuristics and best practices. By providing ready-to-use implementations of standard design patterns, it enables developers to address common programming challenges and improve code modularity t
Applies fundamental software design principles to ensure maintainable and robust system architecture.
This project is a comprehensive, community-curated compendium of the fundamental principles, heuristics, and adages that define professional software engineering. It serves as a structured reference for developers and managers, documenting the empirical observations and mathematical formulas that shape system architecture, team dynamics, and technical decision-making. The repository distinguishes itself through a decentralized, open-contribution model that relies on distributed version control to maintain its knowledge base. By utilizing a flat-file data structure and markdown-based content c
Provides educational documentation and guidance on the Interface Segregation Principle as part of the SOLID design methodology.
This project serves as a comprehensive technical reference for the architecture and design of data-intensive applications. It provides a structured analysis of the fundamental principles required to build reliable, scalable, and maintainable software systems, covering the core trade-offs inherent in modern data infrastructure. The repository explores the mechanics of distributed data management, including strategies for replication, partitioning, and achieving consensus across multiple nodes. It details the design of storage engines, indexing techniques, and transaction management models, whi
Guides fundamental trade-offs in data modeling, storage engines, and consistency models for modern infrastructure.
This project is a comprehensive technical interview preparation resource and computer science interview guide. It serves as an educational reference for developers to study core software engineering fundamentals and common coding patterns required for employment screenings. The repository provides detailed guides and references covering data structures and algorithms, networking and security, operating systems, and web development. It specifically focuses on the implementation and complexity analysis of sorting, searching, and graph algorithms. The material encompasses a wide breadth of comp
Teaches the application of SOLID principles and identifies design smells for decoupled code.
This project is an open-source knowledge repository that serves as a comprehensive technical interview question bank for backend engineering roles. It provides a structured resource for hiring managers and candidates to evaluate proficiency in software design, architectural patterns, and core engineering principles through a curated collection of discussion topics and coding challenges. The repository functions as a programming paradigm evaluation tool, enabling the assessment of a candidate's understanding of object-oriented, functional, and procedural techniques. It distinguishes itself by
Focuses on evaluating core design principles like cohesion and coupling to assess candidate proficiency.
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
Provides a reference for applying SOLID principles, design patterns, and RAII to create maintainable C++ architectures.
This project is a comprehensive collection of tutorials and guided laboratories designed to teach containerization, networking, and security using Docker. It serves as a learning path for building portable images and executing isolated processes. The materials provide specific guides for managing container clusters and scaling services through Docker Swarm and overlay networks. It includes a security handbook for implementing image scanning and secret management, as well as laboratories dedicated to modernizing legacy applications by wrapping older software installers into containers. The co
Implements architectural patterns and design principles for building cloud-native, containerized applications.
This project is a game development knowledge base and technical reference focused on real-time rendering, computer graphics, and GPU programming. It serves as a study guide for game programming, providing a curated collection of notes and documentation on graphics theory. The repository covers educational resources for game engine development, specifically addressing software engineering practices and design patterns. It includes structured references for programming languages and tools used in professional game development to improve performance and image quality. The content is stored as m
Covers the application of software design patterns and architectural principles specifically for complex game systems.
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
Applies structural design principles and dependency inversion to prevent changes in one area from breaking unrelated components.
A catalogue of Rust design patterns, anti-patterns and idioms
Adapts general design principles like composition over inheritance and design by contract for Rust.
This project is a programming learning roadmap and interactive coding exercise platform. It functions as a markdown-based content site that uses a static site generator to compile instructional guides and technical challenges into a structured interface. The platform provides a client-side progress tracker that utilizes local browser storage to monitor the completion of challenges without requiring a backend database. It organizes educational content through a sequence of coding exercises and instructional videos designed to guide developers through specific technical domains. The system cov
Teaches industry-standard software design principles and architectural patterns through practical coding implementations.
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.
Provides curated guidelines for choosing intention-revealing and searchable names for variables, functions, and classes.
This project is a curated collection of technical slide decks focused on high-performance architecture, middleware, cloud-native technologies, and Golang development. The slides are stored as Markdown files in a Git repository, which provides version history and straightforward hosting, and are converted into HTML for direct viewing in a web browser without requiring any downloads. The repository covers a range of advanced technical topics, including distributed consensus algorithms like Raft, network programming models such as epoll and io_uring, and the internals of systems like Apache Puls
Provides presentation materials on cloud-native design patterns, Kubernetes, and related technologies.
Dieses Projekt ist ein Leitfaden für sauberen Python-Code und eine Ressource für Refactoring. Es bietet eine Sammlung von Prinzipien der Software-Handwerkskunst und Beispiele, die darauf ausgelegt sind, die Lesbarkeit und Wartbarkeit von Python-Quellcode zu verbessern. Die Ressource konzentriert sich auf die Optimierung der Variablennamen, um mentales Mapping zu eliminieren, und das Aufteilen von Funktionen in Einzweck-Einheiten. Sie bietet Richtlinien zur Reduzierung von Codeduplizierung und zur Organisation der Logik, um sicherzustellen, dass Komponenten einfach erweiterbar und wartbar bleiben. Der Inhalt deckt Softwarearchitektur und Designqualität ab, einschließlich der Implementierung von SOLID-Prinzipien und branchenüblichen Designmustern. Zudem adressiert er das Management von Seiteneffekten und die Verwendung automatisierter Test-Workflows innerhalb virtueller Umgebungen.
Offers guidelines for choosing intention-revealing names for variables and functions to improve readability.
Dieses Projekt ist ein Studienleitfaden für technische Vorstellungsgespräche und eine Wissensdatenbank für Informatik. Es bietet eine kuratierte Sammlung technischer Interviewfragen und Experten-Erklärungen, die darauf ausgerichtet sind, sich auf Assessments bei globalen IT-Unternehmen vorzubereiten. Das Repository dient als Coding-Interview-Roadmap zur Beherrschung algorithmischer Herausforderungen und Komplexitätsanalysen sowie als Referenz für Softwarearchitektur, Designprinzipien und Systemdesign-Strategien. Es enthält zudem ein Curriculum zur Websicherheit, das Authentifizierungsmethoden, kryptografische Konzepte und häufige Schwachstellen abdeckt. Die Inhalte umfassen Informatik-Grundlagen über Betriebssysteme, Datenbankinterna und Netzwerkprotokolle hinweg. Das Material beinhaltet Software-Engineering-Prinzipien, Systemdesign-Lernen und Karriereberatung für verhaltensbezogene Interviews.
Provides guidance on fundamental software design rules and guidelines such as SOLID principles.
Dieses Projekt ist eine Referenzimplementierung für die Strukturierung von Java-Anwendungen unter Verwendung von Clean Architecture und Domain-Driven Design (DDD). Es bietet ein Template für die Organisation von Code in konzentrischen Schichten, wodurch sichergestellt wird, dass Kern-Geschäftsregeln und Domain-Entitäten vollständig unabhängig von externen Frameworks, Datenbanken und Delivery-Mechanismen bleiben. Die Architektur basiert auf dem Dependency-Inversion-Prinzip, um Geschäftslogik von der Infrastruktur zu entkoppeln. Durch die Definition abstrakter Interfaces für Datenzugriff und externe Dienste ermöglicht das System den Austausch zugrunde liegender Technologien, ohne Änderungen an der Kern-Anwendungslogik zu erfordern. Eine dedizierte Konfigurationsschicht verwaltet Dependency-Injection und isoliert Framework-spezifisches Wiring vom Domain-Code. Die Codebasis unterstützt eine umfassende Teststrategie, die das Systemverhalten auf mehreren Ebenen validiert, einschließlich isolierter Unit-Logik, geschäftsorientierter Akzeptanzszenarien und End-to-End-Journeys. Dieser modulare Ansatz erleichtert die langfristige Wartung, indem sichergestellt wird, dass Geschäftsaktionen als unabhängige, testbare Einheiten gekapselt bleiben.
Applies fundamental software design principles to isolate domain logic from delivery mechanisms and data sources.