27 repositorios
Encapsulates user actions as discrete objects for centralized logic and undo history.
Distinguishing note: Focuses on architectural command patterns rather than general task execution.
Explore 27 awesome GitHub repositories matching software engineering & architecture · Command Patterns. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource designed to help developers master object-oriented design and architectural patterns. It serves as a structured reference for understanding how to organize classes and objects to improve code maintainability, resolve recurring development challenges, and prepare for technical engineering assessments. The guide covers the three primary categories of design patterns: creational, structural, and behavioral. Each pattern is explained through practical examples that demonstrate how to manage object instantiation, simplify complex interfaces, and
Implements the Command pattern to wrap requests into standalone objects for decoupling senders and receivers.
This project is a comprehensive collection of software design patterns implemented in Python. It serves as a reference for architectural, behavioral, creational, and structural patterns to guide the organization of Python applications. The collection covers behavioral strategies for managing object communication and state, creational techniques for controlling object instantiation, and structural methods for composing classes and objects into flexible hierarchies. It also includes architectural references for system-wide structuring, such as multi-tier architectures and blackboard models. Th
Encapsulates requests as objects to decouple the triggering of a job from its internal execution logic.
Tiptap is a headless, modular framework designed for building custom rich-text editors. It provides a developer-focused abstraction layer over a structured document model, allowing for full control over the underlying schema through a plugin-based architecture. By separating document state management from the user interface, it enables the creation of tailored editing experiences that remain framework-agnostic. The project distinguishes itself through a robust collaborative engine that supports real-time multi-user editing, conflict resolution, and presence tracking. It integrates artificial
Performs document modifications through discrete, predictable command functions.
GrapesJS is a modular, web-based visual editor framework designed for building drag-and-drop page builders and custom content management interfaces. It functions as a structural engine that manages hierarchical document models, allowing developers to create reusable design blocks and complex page compositions. By providing a schema-driven approach to UI configuration, the framework enables the construction of design environments where users can assemble layouts and manage component properties visually without writing raw code. The project distinguishes itself through a highly extensible, plug
Encapsulates complex user actions as discrete objects to enable centralized logic and undo history.
GitUI is a terminal-based interface for managing Git repositories, providing an interactive environment for executing version control operations, inspecting commit logs, and navigating file hierarchies. It functions as a keyboard-driven client that allows users to stage changes, manage branches, and review project history directly from the command line. The application distinguishes itself through a focus on interface responsiveness and user-defined workflows. It utilizes background thread offloading and asynchronous data caching to maintain performance during complex operations, while offeri
Encapsulates user actions as discrete objects for centralized logic and keyboard-driven command dispatching.
wangEditor is a JavaScript-based web rich text editor and WYSIWYG interface used for composing formatted documents directly in a browser. It serves as a client-side editing component for web applications to handle document styling and content manipulation. The editor is built as a plugin-based engine, allowing new features and formatting capabilities to be added through a registration interface. It utilizes a schema-driven approach to validate HTML tags and attributes, ensuring clean and consistent document output. The project provides tooling for content management systems, frontend text in
Implements an architectural command pattern to encapsulate editing operations for consistent state transitions and undo history.
This project is a collection of official plugin packages and a native integration library designed to provide a consistent interface for accessing hardware and software functionality across different mobile and desktop platforms. It serves as a native platform bridge, enabling cross-platform applications to invoke native code and manage operating system dependencies. The project utilizes a federated plugin architecture, splitting plugins into common interfaces and separate platform implementations to allow for independent development and extension. It further supports native integration throu
Implements the command pattern to encapsulate requests as objects, decoupling operation triggers from execution logic.
This project is a browser-based JavaScript library that transforms standard web elements into inline, WYSIWYG rich text editing areas. It functions as a programmatic wrapper around the native browser content-editable attribute, providing a structured interface for managing text input, media embedding, and document formatting directly within existing page layouts. The editor is distinguished by its contextual floating toolbar, which dynamically appears based on user text selection to provide relevant formatting options. It utilizes a plugin-based architecture that allows developers to inject c
Executes text styling and structural changes by invoking standardized browser commands or custom scripts.
This project is a Vim keybinding emulation for Visual Studio Code. It implements modal text editing to separate navigation and content creation through specialized modes, reducing reliance on the mouse. The emulator supports custom IDE workflows by importing standard configuration files and remapping keyboard shortcuts. It integrates with external processes to handle complex commands and reproduces logic from common plugins for surrounding characters, commenting, and rapid motion. The capability surface includes keyboard-driven navigation using text objects, markers, and character sequences.
Implements the command pattern to encapsulate text manipulation and editor state changes as discrete objects.
MuseScore is a professional music notation application designed for composing, arranging, and engraving musical scores. It provides a graphical interface that renders notation in real-time, allowing users to create and edit complex musical arrangements with immediate visual feedback. The software distinguishes itself through a robust document-object model that manages the relationships between notes, staves, and layout formatting. It supports the standard markup language for music interchange, ensuring that scores can be shared across different notation platforms. Additionally, the applicatio
Encapsulates user actions as discrete objects to maintain a precise history of score modifications and state changes.
This project provides a structured template for building enterprise applications using a modular monolith architecture. It demonstrates how to organize complex business logic into independent, domain-specific modules that remain contained within a single deployment unit. The architecture enforces strict boundaries between components to minimize coupling and complexity. It utilizes domain-driven design principles to map software components directly to real-world business concepts, ensuring that logic remains independent of infrastructure concerns. Communication between these isolated modules i
Decouples request handling from business logic using a centralized command bus.
SB Admin 2 is an open-source admin dashboard theme built on Bootstrap, providing a ready-made interface for building administrative panels and data management tools. The project includes a complete Bootstrap-based UI framework with responsive layout components and utility classes as its foundation. The theme comes with an integrated development workflow that includes a file-watching development server with automatic browser reloading, SCSS-to-CSS compilation, JavaScript minification, and vendor dependency management through a Gulp-based build pipeline. This tooling allows developers to custom
Automates SCSS compilation, JavaScript minification, and vendor dependency copying through a Gulp-based task runner.
Krita is an open-source digital art studio and professional painting software designed for creating digital illustrations and paintings. It functions as a raster graphics editor and a cross-platform graphics application built with the Qt framework. The software supports a comprehensive digital painting workflow, covering the production of concept art, high-resolution digital illustrations, and hand-drawn 2D frame animations.
Implements the command pattern to track user actions as discrete objects for undo and redo functionality.
Octopress is a Jekyll blogging framework and static site generator theme designed for publishing professional blogs. It provides a collection of responsive semantic templates and styling to render markdown content into mobile-friendly websites. The project features an integrated static asset pipeline that compresses and transforms CSS and JavaScript files during the build process to optimize load times. It includes an SEO optimized blog template with automatic sitemap generation, archive pages, and metadata for improved search engine indexing, as well as client-side site search using local in
Provides pre-configured scripts to automate the build, compression, and deployment of static files.
SVGEdit is a browser-based SVG editor and canvas engine used for creating and modifying scalable vector graphics files. It provides a web interface for vector design and functions as an embeddable editor that can be injected into HTML elements within other web applications. The project allows for the development of custom SVG tools and the construction of bespoke vector graphics editors by utilizing its standalone drawing engine.
Implements a command-pattern undo system to track and reverse user actions on the vector canvas.
Este proyecto es una colección de referencia de ejemplos prácticos que demuestran la implementación de patrones de diseño de software comunes en Kotlin. Sirve como guía para las mejores prácticas arquitectónicas y principios orientados a objetos mediante la aplicación de patrones de comportamiento, creacionales y estructurales. La colección proporciona implementaciones concretas para demostrar cómo desacoplar la instanciación de objetos, gestionar la comunicación y responsabilidad entre objetos, y organizar relaciones complejas entre clases y objetos. La referencia cubre patrones creacionales como fábricas y constructores (builders), patrones estructurales incluyendo adaptadores y composites, y patrones de comportamiento como observadores y estrategias.
Provides an implementation of the command pattern to encapsulate requests as discrete objects for queuing.
php-webdriver es un cliente WebDriver de PHP y framework de automatización de navegador que implementa el estándar W3C WebDriver. Sirve como una interfaz programática para controlar navegadores web, ejecutar JavaScript y gestionar sesiones de navegador tanto en entornos con interfaz gráfica como sin ella (headless). La librería funciona como una implementación del protocolo Selenium, permitiendo que las aplicaciones PHP se comuniquen con controladores de navegador como ChromeDriver o GeckoDriver. Proporciona la capacidad de automatizar acciones de usuario, navegar por páginas y validar elementos DOM para pruebas de UI web. Sus capacidades cubren áreas amplias de interacción con el navegador, incluyendo la ubicación de elementos de página, gestión de formularios y control de ventanas. La herramienta también soporta configuraciones de navegador avanzadas, como la gestión de cookies, el enrutamiento de tráfico a través de proxies, el acceso al shadow DOM y la ejecución de comandos de DevTools de bajo nivel. El framework incluye utilidades para sincronizar con estados de página y capturar capturas de pantalla tanto de páginas completas como de elementos individuales.
Encapsulates browser actions as command objects for serialization and transmission to remote drivers.
Este proyecto es una librería integral de veintitrés patrones de diseño de software estándar implementados en Java. Sirve como un recurso educativo que mapea conceptos arquitectónicos teóricos a código orientado a objetos práctico. La librería organiza estos patrones en tres categorías principales: patrones creacionales para gestionar la instanciación de objetos, patrones estructurales para organizar las relaciones entre clases y objetos, y patrones de comportamiento para coordinar la comunicación y responsabilidad entre objetos. La implementación proporciona ejemplos de clases concretas para una amplia gama de patrones estándar de la industria, incluyendo los patrones Singleton, Factory y Builder para la creación; los patrones Adapter, Facade y Proxy para la estructura; y los patrones Strategy, Observer y Command para el comportamiento.
Implements the Command pattern by encapsulating requests as objects to decouple invokers from performers.
XVim es una extensión de editor de texto para IDE y emulador de keybindings de Vim que integra edición modal en entornos de desarrollo profesionales. Específicamente, funciona como un plugin que trae la edición modal y los keybindings de Vim al entorno de desarrollo integrado Xcode. El proyecto modifica el comportamiento de entrada de teclado y navegación de texto para permitir a los usuarios navegar y manipular texto usando atajos de Vim. Esta integración tiene como objetivo aumentar la velocidad de escritura y la eficiencia de edición dentro del entorno de desarrollo nativo. El sistema gestiona estados modales e intercepta eventos de teclado para prevenir el comportamiento predeterminado y aplicar lógica personalizada. Utiliza mapeos basados en configuración para traducir combinaciones de teclas definidas por el usuario en secuencias de comandos internas y utiliza automatización basada en AppleScript para activar acciones del editor.
Implements a command pattern to encapsulate editor operations as discrete objects for sequential execution.
PhotoEditor es una librería de edición de imágenes y un editor de fotos basado en lienzo diseñado para la manipulación de imágenes dentro de la aplicación. Sirve como un kit de herramientas para aplicar filtros, texto, stickers y dibujo a mano alzada, funcionando tanto como procesador de imágenes de mapa de bits como herramienta de anotación fotográfica digital. El proyecto permite la creación de historias al estilo de redes sociales al permitir a los usuarios añadir emojis, texto y stickers a las fotos. Admite la manipulación de imágenes no destructiva, permitiendo a los usuarios eliminar elementos o revertir cambios antes de exportar la composición final. La librería cubre una amplia gama de capacidades, incluyendo el procesamiento de imágenes de mapa de bits para filtros de brillo y color, así como herramientas de anotación digital para dibujar formas y líneas a mano alzada. Incluye sistemas para gestionar el historial de edición y exportar imágenes modificadas a rutas de archivo.
Uses the command pattern to encapsulate editing actions as discrete objects for state management.