官术网_书友最值得收藏!

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
主站蜘蛛池模板: 出国| 湾仔区| 略阳县| 荆门市| 贞丰县| 虎林市| 铁岭县| 芜湖县| 绥芬河市| 武胜县| 武山县| 阿克苏市| 香港| 云浮市| 康乐县| 峨眉山市| 阜康市| 易门县| 清远市| 卢湾区| 青海省| 株洲市| 海盐县| 抚顺县| 陵川县| 衡南县| 老河口市| 乌兰察布市| 昌邑市| 古交市| 乳源| 任丘市| 拉孜县| 扎赉特旗| 安化县| 阿勒泰市| 凌源市| 汝南县| 凯里市| 甘肃省| 德令哈市|