mikekeke / software-design-in-haskell

Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 Design and 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

About

Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.


Languages

Language:Haskell 100.0%