0

0

node.js学习总结之调式代码的方法_node.js

php中文网

php中文网

发布时间:2016-05-16 16:43:17

|

1443人浏览过

|

来源于php中文网

原创

前言

你有没有曾经调式某段代码时,总觉得世界上有鬼?

你有没有曾经调式API时,总感觉是调用第三方的接口问题或者文档说明不对?

你有没有曾经调式一个bug 时,总感觉问题的来源是使用的方式不对?

你有没有在安装一个服务时,总感觉文档或者环境不相符合?

相信过程和方法,切勿被结果误导 ............

概述

调式代码很多时候类似于查案一样,只是结果的重要程度不同,警察查案为的是人民安稳,而我们调式则是为了系统的安稳。既然这样我们就不要冤枉任何一段代码和程序,以免他们受到不合理的惩罚。

以下的一些过程方法都来自于个人的总结,从个人角度说前人的一些方法都是经过长期的经验积累,当然参考性理论性都比较强,而作为个人的方法,则可能更适合像我等 DS 。

测试方法

代码过程式调式方法

代码调式首先要注意的是过程,你必须要理清楚导致最终结果的思路,也就是作案的过程,从作案过程中的一步步跟进得到作案结果。在作案过程分析中对于每一个疑点都必须打上标记(也就是代码中所提到的 log 信息)。经过这样的分析过程后,再进行黑盒测试,添加输入,验证结果。最终根据每一步的标记来验证你的判断,从而找到原因。

以上的方案是一种过程式的调式方式。这种方式的优点不言而喻,直接可以通过一个测试就可以分析清楚整个过程,但是这种方式很耗时间,理清楚自己的代码逻辑尚可,而想要理清楚他人逻辑代码则可要难于上青天。

单元测试调式方法

单元测试的基本目的是保证某个函数、类或者某个功能模块的正常运作,包括其异常情况的测试验证。而作为程序员最喜欢的验证方式莫过于“打桩”(打桩的含义就是提供假默认数据),这种方式调式起来非常方便,但是有一个不利的地方就是无法再次利用,因为在我们验证正常以后,很多开发人员都会将其注释或者删除,因此如果我们在开发环境开发完成,但我们希望在测试环境验证时,则必须又要重新写一篇打桩逻辑,那么这样看,到现网时,则会更加的麻烦。既然这么多不便,你可以尝试下面的做法。

启科网络PHP商城系统
启科网络PHP商城系统

启科网络商城系统由启科网络技术开发团队完全自主开发,使用国内最流行高效的PHP程序语言,并用小巧的MySql作为数据库服务器,并且使用Smarty引擎来分离网站程序与前端设计代码,让建立的网站可以自由制作个性化的页面。 系统使用标签作为数据调用格式,网站前台开发人员只要简单学习系统标签功能和使用方法,将标签设置在制作的HTML模板中进行对网站数据、内容、信息等的调用,即可建设出美观、个性的网站。

下载

添加一个单元测试类,这个类需要控制其权限,只有通过后台登录或者是命令行才可以执行,该类承载的作用就是对系统的关键逻辑进行检测,并且做出相应的测试输出结果。要相信所有的接口类都是可以通过单元测试类去完成测试的。很多时候程序员在质疑,这件事情是不是应该我们做?其实还真是需要我们去做,毕竟很多测试现在做的都是黑盒测试。

这种调式方法适合在开发过程中,并且可以保证我们现网的代码发布后运行正常。希望大家在计划开发时间时也将该过程并于开发阶段。

快速定位法

前面两个那么复杂的过程太理想化了?我的代码就只有 100 行,并且系统也不复杂。如果是这样的话,那么就快速的进行定位分析。很多时候会遇到

1、输入正常,输出异常;

2、输入正常,逻辑异常,输出异常;

3、输入异常,逻辑正常,输出正常;

4、输入异常,逻辑异常,输出无。

在个人的开发过程中,我经常会遇到上面的某种类型的问题,比如在 Node.js 开发过程中,遇到 string.length 提示 string 没有 length 方法。当时就昏头的在问自己,为什么其他 string 都有 length 方法,为什么这个就没有呢?应该很多同学都知道问题就在于这个 string 根本就不是 string ,只是说你自己把它理想化为 string 了,也就是你输入的本来就有问题。那么定位这个问题的最好办法就是打印输入,打印输出即可。

可能其他的程序没有这么简单,但是最基本的就是在主函数中的会遇到异常的函数都进行输入输出判断,那样就可以快速的定位。

切记:不要断章取义,自以为是。

上面的方法以及过程都只是基于 PHP 或者 Node.js 总结出来的,对于 C & C++ 可能存在相似或者相异处。不喜勿喷,且看且珍惜吧。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 10万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

Node.js-前端工程化必学
Node.js-前端工程化必学

共19课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号