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

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
主站蜘蛛池模板: 聊城市| 集安市| 佛学| 鄂尔多斯市| 邵东县| 蒲江县| 康保县| 陕西省| 丰宁| 贵州省| 衡南县| 东光县| 进贤县| 牟定县| 扶沟县| 思茅市| 安阳县| 通渭县| 新竹市| 上高县| 新乡县| 绍兴县| 车险| 扶绥县| 泗水县| 弥渡县| 吴川市| 普陀区| 铜鼓县| 贺州市| 达拉特旗| 双桥区| 红原县| 和田市| 建始县| 三台县| 宜宾县| 孟村| 渭南市| 二连浩特市| 进贤县|