13 repository-uri
Architectural strategies for organizing code using functional patterns to enhance predictability and testability.
Distinct from JavaScript: Focuses on the architectural organization of JS code via FP, rather than general maintenance or specific testing tools.
Explore 13 awesome GitHub repositories matching software engineering & architecture · Functional Application Structuring. Refine with filters or upvote what's useful.
Functional-Light-JS is a JavaScript functional programming library designed to implement functional patterns within JavaScript applications. It serves as a toolkit for declarative data processing, immutable data management, and the construction of complex logic through higher-order functions. The library focuses on a pragmatic implementation of functional programming, providing utilities for curried argument application and function composition. It emphasizes the use of pure functions to calculate state updates and manage application data without side effects. The project covers broad capabi
Provides a structural approach to JavaScript applications using functional patterns to reduce side effects.
fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data types, type class abstractions, and composable combinators. It provides foundational data types like Option for optional values, Either for typed error handling, and Task for lazy asynchronous computations, all designed to make invalid states unrepresentable and side effects explicit. The library is built on category theory concepts, offering type classes such as Functor, Applicative, Monad, Semigroup, and Monoid with lawful instances for common data structures. The library di
Provides applicative functor instances for combining effectful computations while preserving inner values.
Fantasy Land is a specification for algebraic interfaces in JavaScript. It defines a set of rules, naming conventions, and behavioral contracts for common functional programming structures to ensure consistent behavior and interoperability across the ecosystem. The project establishes a common language for defining computational contexts and data transformation interfaces. By providing a standard set of signatures, it enables different JavaScript libraries to work together through shared algebraic specifications. The specification covers a wide range of functional abstractions, including alg
Provides specifications for applying wrapped functions to wrapped values to manage computational contexts.
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
Implements standards for writing small, single-responsibility functions to simplify maintenance and testing.
This project is a comprehensive functional programming curriculum and learning resource for Haskell. It provides sequenced educational paths and technical reference guides designed to take developers from beginner to advanced levels of proficiency. The project distinguishes itself through a deep focus on theoretical and technical foundations, offering detailed studies on type theory, category theory, and runtime internals. It includes a dedicated performance handbook for optimizing execution speed and memory management, as well as an ecosystem guide for managing development tools and editor c
Explains the use of applicative lifting to combine values from multiple effects using binary functions.
language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution
Intercepts failure states within effects to map them to success values or trigger recovery effects.
re-frame este un framework funcțional pentru construirea de aplicații single-page în ClojureScript. Acesta oferă o bază de date centralizată și imutabilă care servește drept unică sursă de adevăr pentru întreaga stare a aplicației, impunând un flux de date unidirecțional strict, unde evenimentele declanșează tranziții de stare și actualizări ulterioare ale vizualizărilor. Framework-ul se distinge printr-un graf de semnale reactive și un pipeline de middleware bazat pe interceptoare. Tratând logica aplicației ca pe o secvență de evenimente bazate pe date și efecte secundare declarative, acesta decuplează logica de business de stratul de vizualizare. Această arhitectură permite dezvoltatorilor să gestioneze tranziții complexe de stare și operațiuni externe prin funcții pure, asigurându-se că efectele secundare sunt executate de un interpretor separat, nu prin apeluri imperative. Sistemul include o suită cuprinzătoare de capabilități pentru gestionarea arhitecturii aplicației, inclusiv derivarea reactivă a datelor, reconcilierea vizualizărilor bazată pe abonamente și gestionarea stării bazată pe evenimente. Suportă fluxuri de lucru avansate, cum ar fi trasarea evenimentelor, checkpoint-uri de stare și capacitatea de a simula (stub) efecte secundare pentru testare izolată. Proiectul este conceput pentru integrarea cu React, utilizând reconcilierea virtual DOM pentru a actualiza eficient interfețele utilizator. Oferă un set robust de utilitare pentru gestionarea problemelor transversale, gestionarea grafurilor complexe de flux de date și coordonarea operațiunilor asincrone într-un pipeline de evenimente secvențial și predictibil.
Registers new effect handlers to integrate external services, such as databases, logging providers, or browser APIs, into the application flow.
This project is a comprehensive set of architectural patterns, coding standards, and reference materials for AngularJS applications. It establishes a structural approach for separating business logic into injectable services and restricting document object model manipulation to directives. The guide provides a standardized framework for project organization through consistent naming conventions, directory hierarchies, and module structuring. It emphasizes the use of isolated scopes for component encapsulation and explicit array notation for dependency injection to ensure stability during code
Establishes a standardized framework for module structuring using consistent namespacing to organize large-scale applications.
Effector is a reactive state management library and data flow orchestrator designed for building complex, event-driven applications. It models application logic as a directed acyclic graph, where state updates and asynchronous side effects propagate automatically through declarative pipelines. By decoupling business logic from user interface layers, it allows developers to maintain state in independent containers that communicate via standard interfaces, ensuring the system remains framework-agnostic. The library distinguishes itself through its robust support for isolated execution scopes, w
Connects events, stores, and effects into atomic data flows that trigger updates based on state changes.
Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem
Provides mechanisms to replace real side-effect implementations with custom handlers for isolated unit testing.
This project is a comprehensive guide and set of engineering standards for writing readable, maintainable, and scalable JavaScript code. It provides a framework for software architecture, refactoring patterns, and clean coding practices designed to improve codebase health and longevity. The guide emphasizes the application of SOLID principles and architectural strategies such as dependency inversion and the separation of concerns. It focuses on transforming complex conditional logic through polymorphism and refactoring, while promoting a transition from imperative loops to declarative functio
Implements guidelines for creating atomic functions that perform a single task to improve testability.
Acest proiect este un compilator de fișiere CSS care transformă codul sursă Sass în CSS standard. Acesta oferă mecanismul principal pentru conversia stilurilor, implementând în același timp reguli de sintaxă pentru browserele web și aplicații. Compilatorul suportă un sistem de dependențe bazat pe module care utilizează spații de nume dedicate pentru a oferi încapsulare și a preveni coliziunile de domeniu global. Include motoare specializate pentru conversia culorilor multi-model și calcule matematice avansate, inclusiv trigonometrie și logaritmi. Capabilitățile acoperă o gamă largă de instrumente de build și analiză, inclusiv generarea de source maps, monitorizarea sistemului de fișiere pentru recompilare automată și capacitatea de a executa compilarea direct în browser. De asemenea, permite extensibilitatea prin funcții personalizate și importatoare definite într-o limbă gazdă printr-un protocol de mesagerie structurat. Utilizatorii pot efectua, de asemenea, analize statice prin inspectarea arborelui sintactic abstract (AST) pentru a analiza structura codului și a rezolva dependențele fără a efectua o compilare completă.
Loads stylesheets as independent modules with dedicated namespaces to encapsulate variables and prevent collisions.
Acest proiect oferă un model structural pentru organizarea aplicațiilor React și TypeScript prin decuplarea logicii de business de componentele interfeței utilizator și infrastructura externă. Implementează o arhitectură stratificată care izolează regulile de domeniu de bază, asigurându-se că aplicația rămâne independentă de framework-uri, biblioteci sau implementări de servicii externe specifice. Arhitectura se bazează pe principiile de injecție a dependențelor și inversiune pentru a gestiona implementările serviciilor, permițând modularitatea și testarea mai ușoară. Prin utilizarea unui nucleu funcțional și a unui shell imperativ, sistemul separă efectele secundare de logica de business pură, în timp ce contractele de tip partajate și siguranța strictă a tipurilor asigură structuri de date consistente în toate modulele aplicației. Abordarea facilitează crearea de cazuri de utilizare și entități de domeniu agnostice față de framework, care pot fi testate și menținute în izolare. Prin definirea interfețelor abstracte pentru servicii externe și implementarea straturilor de traducere a datelor, proiectul asigură că codul specific infrastructurii nu se scurge în logica de business primară.
Structures application code using functional patterns to enhance predictability and testability.