技术慢舞:调试,编程器和机器

作者: Judy Howell
创建日期: 28 七月 2021
更新日期: 18 六月 2024
Anonim
从零开始动手制作双视觉全自动贴片机
视频: 从零开始动手制作双视觉全自动贴片机

内容


资料来源:Abscent84 / iStockphoto

带走:

有思想的领导者梦想着建立一个更灵活的软件发布结构,以架起开发和生产环境的桥梁,但是计算机编程仍然具有魔咒的元素。

甚至对最基础的项目进行编码的任何人都知道,该过程需要一定的耐心。尝试从头开始编写代码的众多陷阱是人类程序员或开发人员可能会错误地采用各种方式进行的一首歌。它的清单很长,包括从语法错误(通常会被编译器捕获)到更深层次的“视觉级”错误(需要更智能地检查)的所有内容。为此,学校和培训中心教计算机科学专业的学生如何“调试”程序。然而,有趣的是,每个人都会对这个挑战发展出自己独特的反应。实际上,这可能是一个需要多一点个人见识的领域。 (在“计算机编程的先锋”中阅读一些编程中最重要的人物。)

调试代码:如何完成

在某些情况下,计算机科学专业人士可以使用来自开发人员工作室或编程环境的资源来隔离程序中的错误。但是,当这些错误处理或系统不可用或没有用时,调试需要逐行进行代码。许多编程环境,例如Microsoft Visual Basic Studio,都具有允许通过代码清晰,直观地逐行“步进”的功能。

逐步执行代码有两种主要方法:首先,程序员可以看到计算机读取代码时正在发生的事情,而重点放在递归函数和其他代码交互方面。其次,尽管如此,程序员通常可以通过使用鼠标悬停命令或界面的其他部分来查看不同变量的值。知道变量中的值是了解计算机使用给出的代码进行操作的关键方法。

对抗虫子

上面描述的过程听起来很简单,但是调试的实际挑战可能要复杂得多。在前一部开发人员和IT专业人员艾伦·厄尔曼(Ellen Ullman)恰当地将其称为“ The Bug”的技术惊悚片中,可以找到一个很好的例子说明该工作正在进行中,该散文具有文学意义。尽管这本书是虚构的,但它揭示了许多程序员和计算机交互时实际发生的事情。

乌尔曼(Ullman)对两个人(一个测试人员和一个程序员)的刻画撇开了本书中许多暗淡的个人细节,显示了这些职业技术人员在软件开发早期所面临的一些主要挑战。基本上,她的臭虫(她称之为“小丑”)在1980年代的一家软件公司中为所有人所难忘,它拉伤了员工关系,削弱了投资者的信心,并普遍引起了骚动。同时,作者对计算机如何影响我们以及为什么要战胜计算机的特质,作了很多思考,我们必须“像机器一样思考”。 (要了解编程的历史,请查看《计算机编程:从机器语言到人工智能》。)


为什么虫子逃避捕获

Ullman的书中的错误很难处理的原因之一是,它只在奇数次出现。对于其他许多这样的故障,这一挑战确实是正确的(只记得丰田在用户谣传普锐斯失控后进行了广泛的试验)。假设有人告诉您您有错误。除非您可以使计算机表现为问题,否则您甚至从修复它的地方开始?

正如本书结尾所揭示的那样,这种小故障的原因是该时代(也许仍在我们时代)为个人计算机编写代码的复杂性的另一个很好的例子。本质上,该错误隐藏在一个小的嵌套函数中,该函数只是为其他代码段提供了基本的方向。由于该问题是由第三方程序员编写的,并且由于程序员之间缺乏沟通,因此问题的真正根源仍隐藏了数月之久–对这些问题的真实证明可能来自于不适当记录的团队合作。

当涉及到计算机错误时,棘手的细节可能会使原本有序的系统陷入混乱。良好的编码技能,因此有时可能比科学更具有艺术性(Ullman称其为“疯狂”),从而使编码本质上是一团糟。

没有错误,没有压力-在不破坏生活的情况下创建可改变生活的软件的分步指南

当没有人关心软件质量时,您就无法提高编程技能。

调试哲学

程序员通常必须与计算机(而不是人)一起工作才能获得结果。乌尔曼建议,编码人员和测试人员通常能够消除人类思想的所有细微差别,并把推理归结为基本逻辑计算机的使用,它们通常是最有效的。这意味着我们每天都要抛开很多工作去集中精力。正是这种质量使许多顶尖的计算机科学专家得以蓬勃发展,即使在大多数项目都已经采用了更多框架的时代也是如此。

有思想的领导者梦想着建立一个更灵活的软件发布结构,以架起开发和生产环境的桥梁,但是计算机编程仍然具有魔咒的元素。这就是为什么最好的程序员不仅仅是结构化编码器的原因;他们有本能来消除并修复威胁到我们日益依赖的机器功能的错误。