- Learn Type:Driven Development
- Yawar Amin Kamon Ayeva
- 244字
- 2021-07-02 14:41:23
Starting Type-Driven Development
In this book, we are exploring the techniques and idioms available in type-driven development. Some people also refer to type-driven development as type-level programming. Static types offer several benefits, including:
- Preventing incorrect code from getting a chance to run
- Documenting the current codebase
- Helping to correctly refactor the codebase by pointing out any parts of code you may have missed
- Offering richer IDE support, for example, auto-completion
- Better performance when the compiler knows types and can optimize code accordingly
Type-driven development is the practice of using static types to restrict what your code can do. Normally, your programming language gives you enough power to represent any computation. With type-driven development, you are essentially trying to make it impossible for your code to do undesirable things.
In this chapter, we will do some basic critical analysis of a piece of code and look at the possible errors it may contain. We'll also introduce ReasonML, the language we will use to learn type-driven development and compare it with JavaScript. We'll get started with a basic Reason project and then introduce Reason, as well as its related communities and ecosystems.
In this chapter, we will cover the following topics:
- The main idea and benefits of type-driven development
- Dynamically typed code versus its statically typed ReasonML equivalent
- The Reason language, ecosystem, and related projects
- How to set up a basic Reason project, which we will use throughout this book
- The Try Reason online playground
- HTML5移動Web開發(fā)技術
- Computer Vision for the Web
- MATLAB實用教程
- Java Web應用開發(fā)技術與案例教程(第2版)
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- Yii Project Blueprints
- SQL 經(jīng)典實例
- 持續(xù)集成與持續(xù)交付實戰(zhàn):用Jenkins、Travis CI和CircleCI構建和發(fā)布大規(guī)模高質量軟件
- Web Developer's Reference Guide
- Training Systems Using Python Statistical Modeling
- Hacking Android
- Julia High Performance(Second Edition)
- Go語言入門經(jīng)典
- Python應用開發(fā)技術
- Java 9:Building Robust Modular Applications