- Mastering Immutable.js
- Adam Boduch
- 300字
- 2021-07-08 10:30:03
A scary class of bugs
Imagine that you're trying to bake a loaf of bread. Nothing fancy, just a plain loaf. You don't even need to look at the recipe—it's just a handful of ingredients, and you've memorized the steps. Now suppose that one or two of your ingredients have been changed without your knowledge. You still follow the steps, and the end result still looks like bread, but then your family eats it. One family member says something tastes off, another doesn't seem to notice anything, while yet another heads straight for the washroom.
These are just some of many possible scenarios that could have played out, and the problems all stemmed from the ingredients used. In other words, because the ingredients were allowed to change, they did change. Consider the game Telephone. In this game, there is a line of people and a message is whispered to the first person in the line. The same message is whispered (allegedly) to the next person, and so on, until the message reaches the last person who then says the message out loud. The ending message is almost never the same as the starting message. Once again, the message changes because it's allowed to change.
When writing software, you're no different from the person making bread using incorrect ingredients or the Telephone game player relaying an incorrect message. The end result is a scary type of bug. If you mess up your bread, can you pinpoint exactly what went wrong? Can you identify the Telephone game players who broke the message? Your variables change because they can. You've written code to make the variables change, and sometimes everything works exactly as you want it to. But when something goes wrong, it's very difficult to figure out what went wrong.
- Learning Neo4j
- Bootstrap Site Blueprints Volume II
- Spring Cloud Alibaba微服務架構設計與開發實戰
- Arduino開發實戰指南:LabVIEW卷
- SEO智慧
- Flash CS6中文版應用教程(第三版)
- PHP+MySQL網站開發項目式教程
- 快速念咒:MySQL入門指南與進階實戰
- Java程序設計:原理與范例
- Mastering JavaScript Design Patterns(Second Edition)
- 響應式架構:消息模式Actor實現與Scala、Akka應用集成
- Modern C++ Programming Cookbook
- Arduino可穿戴設備開發
- Vue.js光速入門及企業項目開發實戰
- 深入淺出Python數據分析