13 个仓库
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 is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur
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.
本项目是一个 CSS 样式表编译器,可将 Sass 源代码转换为标准 CSS。它提供了转换样式的核心机制,同时实现了 Web 浏览器和应用的语法规则。 该编译器支持一个基于模块的依赖系统,使用专用命名空间来提供封装并防止全局作用域冲突。它包含用于多模型颜色转换和高级数学计算(包括三角函数和对数)的专用引擎。 其功能涵盖了广泛的构建和分析工具,包括生成 source map、用于自动重新编译的文件系统监控,以及直接在 Web 浏览器中执行编译的能力。它还允许通过结构化消息协议在宿主语言中定义的自定义函数和导入器进行扩展。 用户还可以通过检查抽象语法树(AST)进行静态分析,以分析代码结构并解析依赖关系,而无需执行完整编译。
Loads stylesheets as independent modules with dedicated namespaces to encapsulate variables and prevent collisions.
该项目为 React 和 TypeScript 应用提供了一种结构模式,通过将业务逻辑与用户界面组件及外部基础设施解耦。它实现了一种分层架构,隔离了核心领域规则,确保应用独立于特定的框架、库或外部服务实现。 该架构依赖依赖注入和控制反转原则来管理服务实现,从而实现模块化并简化测试。通过利用函数式核心和命令式外壳,系统将副作用与纯业务逻辑分离,同时共享类型契约和严格的类型安全确保了所有应用模块间数据结构的一致性。 该方法促进了框架无关的用例和领域实体的创建,这些实体可以在隔离状态下进行测试和维护。通过为外部服务定义抽象接口并实现数据转换层,该项目确保了基础设施特定的代码不会泄漏到主要业务逻辑中。
Structures application code using functional patterns to enhance predictability and testability.