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

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
主站蜘蛛池模板: 绍兴县| 邻水| 惠来县| 治多县| 镇康县| 嵊州市| 南平市| 庄浪县| 渑池县| 湟源县| 启东市| 巴南区| 彩票| 枣庄市| 靖宇县| 闻喜县| 北海市| 郴州市| 鄂托克前旗| 永春县| 视频| 宁蒗| 九江县| 平顶山市| 吉林市| 绍兴县| 全南县| 咸宁市| 南京市| 丹巴县| 通州市| 且末县| 太原市| 游戏| 色达县| 阳谷县| 巩留县| 沂源县| 芮城县| 华亭县| 敦煌市|