/software-design-in-haskell

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

Primary LanguageHaskell

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:

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

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

Haskell Learn: Books

Misc