Design patterns and architectures for building production quality applications using functional programming, with examples in Haskell and other FP languages.
In Functional Design and Architecture you will learn:
Designing production applications in statically typed functional languages such as Haskell
Controlling code complexity with functional interfaces
Architectures, subsystems, and services for functional languages
Developing concurrent frameworks and multithreaded applications
Domain-driven design using free monads and other functional tools
Property-based, integrational, functional, unit, and automatic whitebox testing
Functional Design and Architecture is a pioneering guide to software engineering using Haskell and other functional languages. In it, you'll discover Functional Declarative Design and other design principles perfect for working in Haskell, PureScript, F#, and Scala. about the technology Functional programming offers a powerful alternative to object-oriented programming that helps tackle the complexities of large-scale software. Entrenched design patterns and architectural principles made for OOP are poorly suited for creating large-scale functional applications. This book lays out new methodologies, principles, and architectures optimized for high-level software design using functional languages. about the book Functional Design and Architecture is a comprehensive guide to software engineering using functional programming. Inside, you'll find cutting-edge functional design principles and practices for every stage of application development, from architecting your application through to running simple and maintainable tests. There's no abstract theory—you'll learn by building exciting sample applications, including an application for controlling a spaceship and a full-fledged backend framework. RETAIL SELLING POINTS
Designing production applications in statically typed functional languages such as Haskell
Controlling code complexity with functional interfaces• Architectures, subsystems, and services for functional languages
Developing concurrent frameworks and multithreaded applications
Domain-driven design using free monads and other functional tools
Property-based, integrational, functional, unit, and automatic whitebox testing
AUDIENCE For experienced developers who know a functional language.
table of contents detailed TOC PART 1: INTRODUCTION TO FUNCTIONAL DECLARATIVE DESIGN READ IN LIVEBOOK 1WHAT IS SOFTWARE DESIGN? READ IN LIVEBOOK 2THE BASICS OF FUNCTIONAL DECLARATIVE DESIGN PART 2: MINIMUM VIABLE PRODUCT READ IN LIVEBOOK 3DRAFTING THE MVP APPLICATION READ IN LIVEBOOK 4END-TO-END DESIGN PART 3: DOMAIN-DRIVEN DESIGN READ IN LIVEBOOK 5EMBEDDED DOMAIN-SPECIFIC LANGUAGES READ IN LIVEBOOK 6DOMAIN MODELING WITH FREE MONADS PART 4: STATEFUL AND REACTIVE APPLICATIONS 7 APPLICATION STATE 8 REACTIVE APPLICATIONS (TODO: THE SIMULATOR) PART 5: DESIGNING REAL-WORLD SOFTWARE 9 MULTITHREADING AND CONCURRENCY 10 PERSISTENCE 11 BUSINESS LOGIC DESIGN 12 TESTING APPENDIXES APPENDIX A: PLENTY OF MONADS APPENDIX B: LAYERING SUBSYSTEMS WITH A MONADIC STACK APPENDIX C: WORD STATISTICS EXAMPLE WITH MONAD TRANSFORMERS APPENDIX D: APPLICATION ARCHITECTURES IN HASKELL AND SCALA APPENDIX E: THE MVAR REQUEST-RESPONSE PATTERN APPENDIX F: FREE MONADIC EDSL FOR AN INTERACTIVE FICTION GAME APPENDIX G: HASKELL AND PURESCRIPT
Height:
Width:
Spine:
Weight:0.00