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

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
主站蜘蛛池模板: 故城县| 叶城县| 奉化市| 阿城市| 新竹市| 加查县| 邵阳市| 郎溪县| 莎车县| 闽清县| 西藏| 夏津县| 五家渠市| 遂平县| 峨山| 海阳市| 达尔| 通州市| 康保县| 晋江市| 石渠县| 河津市| 邹城市| 建德市| 华坪县| 沧源| 琼中| 玉龙| 民和| 黄浦区| 彩票| 探索| 兰州市| 定安县| 商洛市| 连平县| 武冈市| 凤台县| 松桃| 永福县| 多伦县|