「代码调试」有哪些新手程序员不知道的小技巧?

2023-06-05 0 1,038

不论你是初学者,却是软件合作开发应用领域的研究者,都难以防止标识符中再次出现严重错误。

他们其他人合作开发的标识符中都有严重错误,即使,没有人能全盘的介绍代码操作过程中出现的所有人。

因而,在工程项目合作开发操作过程中须要花费天数,在Debug操作过程中反之亦然须要花费大批的心力。

「代码调试」有哪些新手程序员不知道的小技巧?

他们根本无法科学研究他们他们,科学研究他们的辅助工具,科学研究他们的bug,找出软件系统,协助他们更高效率的增加合作开发操作过程中再次出现的bug。

怎样处置bug,我指出主要就能分成3个期:

一、预增容:在合作开发操作过程中尽量减少bug再次出现

二、增容:辨认出bug、辨识bug、复原bug、去除bug

三、增容后:估计未明、未再次出现的bug

上面,他们来详尽如是说每一期。

预增容

就像计算机系统生物学家Edsger W. Dijkstra所言的那般:

“在我看来增容是消解严重错误的操作过程,所以程式设计很大是导入严重错误的操作过程。”

假如他们透过程式设计给流程导入bug,那就意味著他们须要鼓励他们增加导入bug的数目。我把那个鼓励他们的操作过程称作 “预增容”(Prebugging)。

我在Google上搜索 “Debug”的定义,从牛津词典上看到的定义引起了我的思考。

“Debug从计算机系统硬件或软件中辨识和消解严重错误的操作过程。”

那个定义引起了我的思考,即使我相信很多软件合作开发人员都是主动进行增容的。他们改进他们的辅助工具和他们,以增加他们产生的bug数目。

虽然那个定义对于增容来说是能接受的,但是它淡化了软件合作开发人员为增加bug产生而做的其他每一件事。 所以他们现在就来看看这些事情。

「代码调试」有哪些新手程序员不知道的小技巧?

介绍你经常使用的辅助工具

介绍你经常使用的所有辅助工具是很重要的,即使这有助于你增加代码时产生的bug。

没有办法完全防止bug的产生,但是假如你对你所使用的辅助工具的基础知识非常健全的话,你能避免产生一些bug。

例如,很多JavaScript用户记不住什么是返回。而有些人记不住和数组方法的区别。

假如你不是JavaScript用户,只需从你使用的语言中挑选一个内置的方法或函数,然后问他们:

那个方法须要什么样的参数?那个方法会返回什么?假如提供了一个无效的参数会出现什么?

经常问他们上述问题,能让你学习到很多知识。

这就是怎样让他们保持对经常使用的辅助工具的基础知识的更新,尤其是在你没有太多天数主动阅读的情况下。

代码前的计划

程式设计似乎是一个反复尝试的工作,你须要不断尝试,直到正确为止。

许多初级软件合作开发人员并没有真正理解他们正在合作开发的流程,其中一些人在上网搜索报错信息之前,其实并没有尝试去理解严重错误信息。

现在,每一人似乎都觉得程式设计始终与“标识符,标识符,标识符,搜索,增容”有关。

但是有必要真正介绍你在做什么,以便你能快速列出:

他们期望将什么作为输入以及这些输入的结构和特征

他们期望怎样处置这些输入

他们最终期望返回的是什么

假如没有给出预期的输入,须要做些什么

简而言之,对函数或流程的输入,操作过程和输出进行规划不仅能协助你增加严重错误,还能协助你编写有效的测试用例。

「代码调试」有哪些新手程序员不知道的小技巧?

熟悉常见的严重错误信息

假如你已经熟悉了一个错误或bug,往往很容易复原。

所以,花天数科学研究一些常见的严重错误,并学习怎样去复原这些严重错误是很重要的。现在他们就来谈谈一些常见的严重错误。

语法严重错误

每一种程式设计语言都有他们的规则,合作开发者要对违反这些规则的行为负责。

程式设计语言对规则的要求很严格,只要违反了这些规则,它们就会抛出严重错误。

例如,想象一下,你省略了一个函数或方法的括号:function{}

会抛出一个严重错误。

熟悉语法严重错误的严重错误信息,以及怎样复原它,会让你在增容时更有优势。

我个人注意到,大多数语法严重错误总会提到一些关键词,协助你找出标识符中出错的部分。

「代码调试」有哪些新手程序员不知道的小技巧?

返回的 “undefined”告诉他们,他们要访问的对象或属性是不可用的。假如他们敏锐地注意严重错误信息,就能找出问题所在。

你写的标识符越多,你就越能防止语法严重错误。你也能简单地使用标识符编辑器、静态检查辅助工具,能高亮突出语法严重错误。使用这些辅助工具能给你带来很大的协助。

逻辑/语义严重错误

逻辑严重错误是非常棘手的问题,即使它们看山去是没有严重错误的–但你仍然没有得到预期的结果。

例如,确认这种严重错误的一个简单方法是在浏览器的控制台中检查上面的标识符。

prompt(“enter number”) +3;

你可能希望输出一个数字,但它会返回一个字符串。

简而言之,你将不会得到预期的结果。

在代码前进行规划,介绍你所使用的程式设计语言的基础知识,能协助你处置逻辑严重错误–前提是你要理解给你的流程要求。

编译严重错误

你的流程可能难以编译,即使你可能违反了编译器希望你遵守的一些规则。

所以,你正在编写的流程可能难以编译。

例如,写一个字符串时没有使用通常的引号,会导致编译严重错误,即使字符串必须使用引号。所以,标识符将难以编译。

const name= Ayobami

这与语法严重错误类似,你写的标识符越多,你就越能更好地处置编译严重错误。

你能透过经常编译或测试你的标识符来提高工作效率,增加这些严重错误。

资源严重错误

有时,你的流程可能会超过其内存限制或用尽可用资源。

这可能会导致你的应用流程停止服务或再次出现故障。

上面的标识符是一个导致资源严重错误的标识符的实际例子。

「代码调试」有哪些新手程序员不知道的小技巧?

由于堆栈空间(即浏览器分配给函数调用链的内存)被用完,函数崩溃或使浏览器变慢。

在这种情况下,该严重错误是资源严重错误,即使它是由于用完分配的内存(资源)而出现的。

接口严重错误

有时候,他们设计的流程API是按照很大的方式来使用的,但是用户使用流程的方式不同,就会造成严重错误。

这种严重错误被称作接口严重错误。

例如,假设方法期望的是一个字符串,但他们却用一个数字来代替调用它。假如流程的合作开发者没有考虑到这种情况,就会导致严重错误。

软件中的大多数事物都遵循标准。假如你所定义的标准没有被遵循,你须要为你的用户提供严重错误信息或指南,以协助他们弄清楚他们正在严重错误地使用应用流程。

在这种情况下,记录你的API能提供很多协助。

「代码调试」有哪些新手程序员不知道的小技巧?

确保你的设置与辅助工具相互匹配

有一个适合你的辅助工具的设置是很重要的。

有时,你的操作系统可能与你的应用流程不兼容–也许是即使它须要一个较新版本的操作系统,或者它须要某个软件。

例如,假如电脑上缺少一些微软的VC运行时,WampServer可能难以在Windows操作系统上正常运行。

类似的事情也可能出现在Linux和macOS上。

你只须要确定你的设置是适合你的合作开发工作的。

对你的流程的功能要有确定性

“在数学、计算机系统科学和物理学中,确定性系统是指在系统未来状态的发展中不涉及随机性的系统。 因而,一个确定性模型将始终从一个给定的起始条件或初始状态产生相同的输出”。

所以,问题是,他们怎样做一个确定性的流程?

你必须确定你的流程中能接受的数据类型,拒绝任何不符合的数据。

简而言之,你须要接受预期的数据,拒绝不符合预期的数据,或者将预期的数据通知用户。

不懂就不要用

增加bug产生的最好方法之一是只使用你介绍的方法、方法和类。

假如你必须使用任何你不理解的方法或样式,在做之前先科学研究一下,确定对它有深入的理解。

每当你利用你不介绍的东西时,很容易给你的应用程序导入不必要的bug。

学会准确打字

打字准确被低估了,即使程式设计更多的是思考而不是打字。但在打字时准确无误可能会协助你增加一些语法严重错误、类型严重错误或错别字。

许多程式设计严重错误都是由简单的打字严重错误引起的。

准确打字的能力能增加合作开发操作过程中的bug。

边增容边观察其他合作开发者

另一个有趣的提高增容技能的方法是,当其他合作开发者进行增容时,观察他们,这有助于看到不同的增容方法。

总会有一些他们不晓得或不曾使用的辅助工具或方法来进行调试,观察别人的增容让他们有机会辨认出那些他们可能不晓得的辅助工具或方法。

或者即使你晓得那些不同的方法,你也可能不晓得为什么或怎样使用它们。

观察别人能影响他们重新审视这些方法和辅助工具,最终可能提高他们的增容技能。

「代码调试」有哪些新手程序员不知道的小技巧?

增容

增容是程式设计的核心,即使它在代码时占用的天数最多。

增容主要就涉及三个期:

(1)辨认出严重错误

(2)分析并理解严重错误出现的原因

(3)复原或去除bug

辨认出严重错误

辨认出bug首先须要介绍你看到的严重错误信息。

毋庸置疑,严重错误信息就是一个bug的指南。

假如你理解了严重错误信息,你就能精确地追踪到严重错误的位置。

但是有些严重错误可能会很繁琐,即使它们可能没有明确的严重错误信息和未明。

就像前面所言,逻辑/语义严重错误只是得不到他们想要的结果。

为了找出bug,你须要:

明确你的期望;检查你得到的结果;比较你的期望值和实际结果,看看差异;你能使用增容器或其他有用的辅助工具来快速找出这些严重错误;然后,你能根据你的假设检查标识符的不同部分,并执行试错来找出严重错误。

分析并理解严重错误出现的原因

找出一个bug之后,你须要弄清楚为什么标识符会有这样的严重错误。

这样做能协助你建立一个高效率的系统。

相反,许多合作开发人员只会在谷歌上搜索,并直接从StackOverflow得到的答案。

这在某些情况下是没有问题的,但最好是介绍bug的原因和为什么软件系统有效。

理解bug的原因是复原bug或删除bug道路上的重要一步。

「代码调试」有哪些新手程序员不知道的小技巧?

复原或去除bug

在找出并介绍了bug的原因后,他们就要复原那个bug。

有的时候,当你介绍了bug是什么之后,你就会毫无压力的找出软件系统。

但是,有的时候,他们的理解不论怎么努力,都找不到任何软件系统。

与其浪费天数,不如在谷歌上搜索严重错误信息或任何你觉得合适的信息。

你也能问另一个人,即使其他人往往会有不同的看法。他们是中立的,这种中立性确实有助于复原一些bug。

所以,谷歌一下吧!

复原一个令人困扰的bug总是会带来巨大的兴奋。

但不要太过沉浸在兴奋中,即使复原一个bug可能会引起另一个bug。

所以,首先要确保你没有给流程导入另一个问题。

这就是为什么自动化测试很重要。

增容后

增容后须要在你已经写好的流程中预测有可能再次出现的bug。

它指的是你可能使用的所有机制,以确保未明的bug在危害系统或公司之前能很容易被追踪或管理。

现在的问题是你怎样做到这一点?嗯,用严重错误跟踪系统。

你应该在生产中拥有一个严重错误跟踪系统,这样你就能很容易地辨认出严重错误,即使它们在你的应用程序推送到生产后再次出现。

有很多严重错误跟踪器,它们只须要上网搜索一下就能了。不过这里有几个大家能看看。

www.sentry.io

www.honeybadger.io

www.pypi.org

www.airbrake.io

www.logrocket.com

有这么多的严重错误跟踪器,你只须要选择一个最适合你的即可。

「代码调试」有哪些新手程序员不知道的小技巧?

结语

增容是所有软件合作开发人员必须培养的一项重要技能。

它是代码的核心,假如你做得好,它能让你成为一个更好的合作开发者。

要想成为优秀的增容高手,你必须尽可能多地学习各种增容方法,很多方法我在本文中已经讨论过了。

现在是时候成为一名优秀的软件合作开发人员了,而增容能在这条路上协助你。

———————————–

为了协助大家,轻松,高效率学习C语言/C++,给大家分享我收集的资源,从最零基础开始的,协助大家在学习C语言的道路上披荆斩棘!

程式设计学习书籍分享:

「代码调试」有哪些新手程序员不知道的小技巧?

程式设计学习视频分享:

「代码调试」有哪些新手程序员不知道的小技巧?

整理分享(多年学习的源码、工程项目实战视频、工程项目笔记,基础入门教程)最重要的是你能在里面交流提问程式设计问题哦!

能领取一些C/C+

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务