Giter Site home page Giter Site logo

serjepatoff / functional-design-and-architecture Goto Github PK

View Code? Open in Web Editor NEW

This project forked from graninas/functional-design-and-architecture

0.0 1.0 0.0 126 KB

Code and materials for book "Functional Design and Architecture"

Haskell 91.89% Scala 4.24% Shell 0.03% HTML 3.83%

functional-design-and-architecture's Introduction

Functional Design and Architecture

Code and materials for book "Functional Design and Architecture"

Book page: link

Support the book!

What this book about?

The book is focusing on these topics:

  • Architecture modelling, requirements analysis, subsystems design from FP point of view;
  • Embedded and external DSLs in domain modelling;
  • Monads as subsystems with effects;
  • Free monads as functional interfaces;
  • Other types of functional interfaces;
  • Inversion of Control in FP (using Free monadic eDSLs);
  • Applicability of mainstream techniques and approaches such as UML, SOLID, GRASP;
  • Interaction with impure subsystems.

The book is 50% done. 5 chapters are published online:

Additional materials

References list

List

Andromeda

You might also want to check the Andromeda project that is a showcase project for this book:

Andromeda SCADA-like system

Enecuum Node project

The Node project created by me and my team for Enecuum blockchain (Enecuum HK Limited, Hong Kong) is the most advanced production code in Haskell based the ideas of this book.

The Enecuum Node Framework makes building of network acting nodes simple. It allows to handle concurrent state (with STM), work with KV database, host TCP, UDP and JSON-RPC servers, write network clients, interactible CLIs and more. The code of the nodes will be testable, safe and well-maintainable.

This framework can be a reasonable replacement for Cloud Haskell. I've wrote a detailed post about framework usage and architecture:

Building network actors with Enecuum Node Framework

Juspay PureScript Presto Framework

I also was working for Juspay (India, Bangalore). In there, we have created two big projects in PureScript with the same central ideas of Free monads and architecture. The Presto framework for building mobile apps was published. The most of code (including Free eDSL and runtime) is designed and written by me:

PureScript Presto

Another project I was working on with some other great India developers was about distributed persistable resumable workflows, in PureScript, Node.JS and RabbitMQ. This project is not published yet, but it also based on Free monad architecture. Moreover, persistency of workflows and ability to pause them at any time is achieved due to special interpreters utilizing a RecorderT transformer.

functional-design-and-architecture's People

Contributors

graninas avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.