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

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.

主站蜘蛛池模板: 惠州市| 昭通市| 星子县| 霸州市| 江永县| 镇雄县| 平南县| 山阳县| 石泉县| 太仆寺旗| 河源市| 铜川市| 台中市| 南康市| 宜阳县| 武穴市| 涞源县| 西青区| 白玉县| 永济市| 江口县| 景洪市| 达尔| 新干县| 边坝县| 瑞金市| 孟津县| 康马县| 通榆县| 潼南县| 延长县| 临猗县| 肇州县| 胶州市| 桐梓县| 株洲县| 威远县| 和田市| 澜沧| 井冈山市| 孟津县|