Giter VIP home page Giter VIP logo

software-design-in-haskell's Introduction

Software Design and Architecture in Haskell

A structured set of materials on how to build real-world applications in Haskell.


Table of Contents


Books on Software Architecture in Haskell

Application Architectures

Design Approaches and Design Patterns

Free Monads

Final Tagless / mtl

Effect Systems

ReaderT Pattern

Service Handle Pattern

Other Patterns

OOP Design Patterns vs FP Design Patterns

Comparison of Approaches

Comparison Table

Separate page:

Philosophy

Design Principles

Note. It's a big void here in these topics. We don't have any good materials about Design Principles applicable to Haskell.

  • Inversion of Control
  • Dependency Injection
  • Low Coupling / High Cohesion
  • Rule of Least Power / Law of Demeter
  • SOLID
  • KISS
  • YAGNI
  • DRY

Best Practices & Guidelines

Exceptions

Style Guides

Showcase Projects & Code Orgranization Samples

Separate page:

Haskell in Production. Success Stories, Experience Reports

Talks

Haskell Ecosystem and Accessibility

This section is aimed to show that learning and using Haskell is not as horrible as some folks are trying to claim.

Haskell Ecosystem and Community

Haskeller Competency Matrix

Haskell Learn: Books

Misc

software-design-in-haskell's People

Contributors

graninas avatar aleator 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.