14 مستودعات
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 14 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 هو إطار عمل وظيفي لبناء تطبيقات الصفحة الواحدة (SPA) باستخدام ClojureScript. يوفر قاعدة بيانات مركزية غير قابلة للتغيير تعمل كمصدر وحيد للحقيقة لحالة التطبيق بالكامل، مما يفرض تدفق بيانات أحادي الاتجاه صارم حيث تؤدي الأحداث إلى تغييرات في الحالة وتحديثات لاحقة للعرض. يتميز إطار العمل برسم بياني تفاعلي للإشارات وخط أنابيب (pipeline) وسيط يعتمد على المعترضات (interceptors). من خلال التعامل مع منطق التطبيق كسلسلة من الأحداث القائمة على البيانات والآثار الجانبية التصريحية، فإنه يفصل منطق الأعمال عن طبقة العرض. تسمح هذه البنية للمطورين بإدارة تغييرات الحالة المعقدة والعمليات الخارجية من خلال دوال نقية، مما يضمن تنفيذ الآثار الجانبية بواسطة مترجم منفصل بدلاً من الاستدعاءات الإلزامية. يتضمن النظام مجموعة شاملة من الإمكانيات لإدارة بنية التطبيق، بما في ذلك اشتقاق البيانات التفاعلي، ومطابقة العرض القائمة على الاشتراكات، وإدارة الحالة القائمة على الأحداث. يدعم سير عمل التطوير المتقدم مثل تتبع الأحداث، وحفظ نقاط فحص الحالة، والقدرة على محاكاة الآثار الجانبية للاختبار المعزول. تم تصميم المشروع للتكامل مع React، مستفيداً من مطابقة DOM الافتراضي لتحديث واجهات المستخدم بكفاءة. يوفر مجموعة قوية من الأدوات للتعامل مع الاهتمامات المتقاطعة، وإدارة رسوم بيانية معقدة لتدفق البيانات، وتنسيق العمليات غير المتزامنة ضمن خط أنابيب أحداث متسلسل وقابل للتنبؤ.
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 قياسي. يوفر الآلية الأساسية لتحويل الأنماط مع تطبيق قواعد النحو الخاصة بمتصفحات الويب والتطبيقات. يدعم المترجم نظام اعتماديات قائم على الوحدات (Modules) يستخدم مساحات أسماء مخصصة لتوفير التغليف ومنع تضارب النطاق العام. كما يتضمن محركات متخصصة لتحويل الألوان متعددة النماذج وإجراء حسابات رياضية متقدمة، بما في ذلك الدوال المثلثية واللوغاريتمات. تغطي الإمكانيات مجموعة واسعة من أدوات البناء والتحليل، بما في ذلك إنشاء خرائط المصدر (Source maps)، ومراقبة نظام الملفات لإعادة التجميع التلقائي، والقدرة على تنفيذ التجميع مباشرة داخل متصفح الويب. كما يسمح بالتوسع من خلال دوال ومستوردات مخصصة يتم تعريفها في لغة مضيفة عبر بروتوكول مراسلة مهيكل. يمكن للمستخدمين أيضاً إجراء تحليل ثابت من خلال فحص شجرة النحو المجردة (AST) لتحليل هيكل الكود وحل الاعتماديات دون الحاجة لإجراء تجميع كامل.
Loads stylesheets as independent modules with dedicated namespaces to encapsulate variables and prevent collisions.
يوفر هذا المشروع نمطاً هيكلياً لتنظيم تطبيقات React و TypeScript من خلال فصل منطق العمل عن مكونات واجهة المستخدم والبنية التحتية الخارجية. ينفذ معمارية ذات طبقات تعزل قواعد المجال الأساسية، مما يضمن بقاء التطبيق مستقلاً عن أطر عمل أو مكتبات أو تنفيذات خدمات خارجية محددة. تعتمد المعمارية على مبادئ حقن التبعية (dependency injection) والانعكاس لإدارة تنفيذات الخدمة، مما يسمح بالمعيارية والاختبار الأسهل. من خلال استخدام نواة وظيفية وغلاف إلزامي، يفصل النظام الآثار الجانبية عن منطق العمل النقي، بينما تضمن عقود النوع المشتركة وسلامة النوع الصارمة هياكل بيانات متسقة عبر جميع وحدات التطبيق. يسهل النهج إنشاء حالات استخدام وكيانات مجال محايدة لإطار العمل يمكن اختبارها وصيانتها في عزلة. من خلال تحديد واجهات مجردة للخدمات الخارجية وتنفيذ طبقات ترجمة البيانات، يضمن المشروع عدم تسرب الكود الخاص بالبنية التحتية إلى منطق العمل الأساسي.
Structures application code using functional patterns to enhance predictability and testability.
Modular is a framework extension designed to organize large Laravel applications into independent, maintainable modules. It provides a structured approach to codebase management by enforcing namespace isolation and directory mapping, allowing developers to group related features within a single project while maintaining consistent architectural conventions. The tool distinguishes itself through automated discovery and registration mechanisms that detect local modules without requiring manual configuration. By integrating with the framework's native service provider discovery and autoloader, i
Enforces namespace-based isolation to organize application logic into distinct, maintainable directory structures.