调试电子:旅程

调试是开发中不可避免的一部分。 尽管程序员的陈规定型观念强调了出色的创新能力(好吧,陈规定型观念实际上是比萨饼和苏打水的马拉松比赛,但是对知识分子的强烈征服也占了很大一部分),但现实是我们的大部分工作实际上是艰苦的侦探工作:仔细检查密集的代码行,以查找导致程序崩溃的一个错误。 当我回想起Dennis Nedry在Jurassic Park中的两百万行代码时,我可能会有点约会,但是即使在很小的代码库中,调试也要花费时间和精力。 当人们正在学习诸如Electron之类的新框架时,尤其如此,它本身仍然是一种新兴技术。 正如我在介绍Electron时所指出的那样,该技术允许开发人员使用JavaScript,HTML和CSS编写Windows,macOS和Linux桌面应用程序,然后将其编译为本地代码。 这是一个很大的便利,但是它也有一些缺点。 正如我们(我的同事Ian Lancaster和Alex Pilewski和我)最近发现的那样,当我们接近完成我们正在构建的名为Fired Up的生产力应用程序时,其中之一就是高水平的抽象有时会使调试特别困难。 错误是否来自我们编写的代码,npm软件包,Apple Script,Windows代码……? 这是当今精选错误的核心。 如我之前的文章中所述,我们的应用程序是一种生产力工具,可以监视用户对桌面应用程序的使用情况。 它包括一个带有此数据的菜单栏窗口以及一个允许用户控制和查看会话的UI。 我们的错误源于以下事实:每当用户关闭程序(“…