- 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.
- C++案例趣學
- Apache Spark 2.x Machine Learning Cookbook
- JavaScript Unlocked
- 機器人Python青少年編程開發實例
- Python應用輕松入門
- Monitoring Elasticsearch
- HTML5秘籍(第2版)
- Building Wireless Sensor Networks Using Arduino
- Web程序設計:ASP.NET(第2版)
- PhoneGap 4 Mobile Application Development Cookbook
- Python面試通關寶典
- 實戰Python網絡爬蟲
- Python 快速入門(第3版)
- 安卓工程師教你玩轉Android
- 高質量程序設計指南:C++/C語言