Learn Type Driven Development: Take advantage of the type system to build reliable and safe applications using Reason ML

Learn Type Driven Development: Take advantage of the type system to build reliable and safe applications using Reason ML

Make your compiler and its type system help you write safe, fast code.Key FeaturesLeverage the power of the type system to create error free design,Take advantage of static type-checking and Genericity to ensure code reuse and consistency,Functional programming as a foundation of type-driven development.Book DescriptionType-driven development is the approach to programming that has types as the foundation of code. Dependent types are utilized to express relationships and other assumptions directly in the code, and these assumptions are checked by the compiler. This book will cover Type Driven Development and how to leverage the power of the type system to write future code consistent with your past design decisions.We begin with the motivations for and the basic idea behind type-driven development. You will then learn about values (or terms) and how they contrast with types. Moving on, you will learn how to combine types and values under module types and usefulness of grouping the values together in types. Variants, polymorphic variants, generalized algebraic data types are discussed next, we understand how these help express alternative values in types. We then learn about building sophisticated data types from the generic, sum types and using functions to convert between types without changing the underlying value. Parametric polymorphism and subtyping to achieve code reusability is discussed.By end of the book you will have learned how to Iterate through a type-driven process of solving coding problems by using static types together with dynamic behaviour to get more safety and speed.What you will learnExplore the type-driven concepts, with simple and compelling examples.Understand how to get quick wins in safety by just starting to use basic typesCreate modules and module types, apply module types (signatures) to modulesEnforce sophisticated logic using product and sum types as building blocks.Capture interesting and useful information using static types to make a program safer and faster.Arrive at the best way to express your rules about your system by exploring design space using static typing.Use static types and the dynamic runtime in harmony to write even safer, faster code.Who This Book Is ForProgrammers coming from dynamically-typed languages who have felt the pain of production bugs and are looking for ways to mitigate them, and programmers from statically-typed languages looking for more safety and performance techniques, and possibly for a better experience with a statically-typed language.About the AuthorYawar Amin is a software engineer by profession, with a background in statistics and econometrics. He has worked professionally with Scala and JavaScript, and as a result developed a keen interest in type-safe programming.

Author: Yawar Amin

Get the Book

Recommended