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

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.

主站蜘蛛池模板: 会昌县| 达拉特旗| 长乐市| 清苑县| 屏东县| 寿宁县| 攀枝花市| 高碑店市| 北流市| 洪泽县| 新宁县| 西宁市| 阳高县| 鲁山县| 湘潭市| 轮台县| 星座| 麻江县| 磐石市| 会昌县| 怀化市| 育儿| 嘉义县| 梨树县| 铁岭县| 友谊县| 吉安县| 翼城县| 河间市| 南京市| 台安县| 台中县| 绥宁县| 舞钢市| 苏尼特左旗| 新余市| 饶河县| 娱乐| 广元市| 秭归县| 伊宁县|