返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js学习总结之调式代码的方法
  • 697
分享到

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

调式代码方法 2022-06-04 17:06:42 697人浏览 薄情痞子
摘要

前言 你有没有曾经调式某段代码时,总觉得世界上有鬼? 你有没有曾经调式api时,总感觉是调用第三方的接口问题或者文档说明不对? 你有没有曾经调式一个bug 时,总感觉问题的来源是使用的方式不对? 你有没有在

前言

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

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

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

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

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

概述

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

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

测试方法

代码过程式调式方法

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

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

单元测试调式方法

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

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

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

快速定位法

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

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

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

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

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

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

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

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

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

--结束END--

本文标题: node.js学习总结之调式代码的方法

本文链接: https://lsjlt.com/news/11804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js学习总结之调式代码的方法
    前言 你有没有曾经调式某段代码时,总觉得世界上有鬼? 你有没有曾经调式API时,总感觉是调用第三方的接口问题或者文档说明不对? 你有没有曾经调式一个bug 时,总感觉问题的来源是使用的方式不对? 你有没有在...
    99+
    2022-06-04
    调式 代码 方法
  • Python学习之字典的常用方法总结
    目录字典添加与修改方法利用[]处理字典的内置函数update字典的内置函数setdefault关于字典的注意事项再强调尝试做一个小练习获取字典的key与value字典中的values...
    99+
    2024-04-02
  • Python学习之集合的常用方法总结
    目录什么是集合?集合与列表的区别集合的创建方法集合的增删改add函数update函数remove函数clear函数del方法删除集合关于集合的重要说明获取两个集合交、并、差集的函数d...
    99+
    2024-04-02
  • Python学习之列表常用方法总结
    目录列表(元组)基本操作符回顾len()函数在列表与元组上的使用列表(元组)之间的累加与乘法in和notin在列表(元组)中的用法列表常用方法append()函数insert()函数...
    99+
    2024-04-02
  • Python学习之字符串常用方法总结
    目录什么是对象Python万物皆是对象字符串的索引索引[]索引[:]字符串的常用方法find()函数与index()函数startswith()函数与endswith()函数capi...
    99+
    2024-04-02
  • 了不起的node.js读书笔记之node的学习总结
    这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧~这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识。 1.HTTP篇 node的HTTP模块在第一篇时接触过...
    99+
    2022-06-04
    了不起 读书笔记 node
  • Java基础学习之方法的重载知识总结
    目录一、什么是方法的重载?二、构成方法重载的条件三、重点一、什么是方法的重载? 方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配...
    99+
    2024-04-02
  • 调试Node.js代码的方式有哪些
    这篇文章主要讲解了“调试Node.js代码的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“调试Node.js代码的方式有哪些”吧!很多时候,我苦恼于 Node.js 的调试,只会使...
    99+
    2023-06-21
  • python 3.2 字符串方法学习总结
    Sequence Types sequence类型有六种:strings, byte sequences (bytes objects), byte arrays(bytearray objects), list, tuple, ...
    99+
    2023-01-31
    字符串 方法 python
  • 我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
    一,node.js的作用, I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出。鼠标移动,在屏幕上看到鼠标的移动。终端的输入,和看到的输出。等等) node.js想...
    99+
    2022-06-04
    之路 回调 作用
  • SQL案例学习之字符串的合并与拆分方法总结
    目录字符串的合并字符串合并方法一:字符串合并方法二:字符串的拆分字符串拆分方法一:字符串拆分方法二:总结字符串的合并 在oracle中可能有多种实现方法,目前我已知的有两种,下面记录下这两种的实现: 字符串合并方法一...
    99+
    2024-04-02
  • 常用的Python代码调试工具总结
    前言 我自己常用的简单Python代码调试工具是IDLE和Sublime3,IDLE很少使用了,基本上用Sublime3稍微多一些,Sublime3因为简单方便更直观。(VSCode...
    99+
    2024-04-02
  • Python语法学习之正则表达式的量词汇总
    目录正则表达式中的符号示例 - 1示例 - 2示例 - 3示例 - 4示例 - 5示例 - 6示例 - 7示例 - 8组的概念贪婪模式与非贪婪模式正则表达式中的符号 符号描述re1 ...
    99+
    2024-04-02
  • Python入门学习之类的相关知识总结
    目录前言一、类的定义和使用二、类的方法三、类的属性四、类中常用特殊方法前言 Python是面向对象的程序设计(Object Oriented Programming)。 面向对象的程...
    99+
    2024-04-02
  • vue3 学习笔记之axios的使用变化总结
    目录一、axio 得基本使用 二、如何解决跨域问题? 三、封装 四、全局引用 axios 使用 axios 之前,需要先安装好。 yarn add axios npm ins...
    99+
    2024-04-02
  • Go调度器学习之系统调用的方法是什么
    本篇内容主要讲解“Go调度器学习之系统调用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go调度器学习之系统调用的方法是什么”吧!1. 系统调用下面,我们将以一个简单的文件打开的系统...
    99+
    2023-07-05
  • 总结一些方法快速下载GitHub代码的方法
    在进行代码开发时,GitHub是一个非常常见的平台。但是,如果你想要快速下载GitHub上的代码,可能会感到有些困难。本文将介绍一些方法来帮助你快速下载GitHub代码。使用GitGit是一种版本控制系统,通常用于管理代码。它可以从任何存储...
    99+
    2023-10-22
  • node.js配置Token验证的2种方式总结
    目录1. 生成Token jwt passport实现生成和验证Token2. 使用passpport-jwt||passport验证Token总结1. 生成Token jwt pa...
    99+
    2023-02-03
    node token验证 node.js token node.js token验证
  • Android Intent调用 Uri的方法总结
    Android Intent调用 Uri的方法总结//调用浏览器Uri uri = Uri.parse(""); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(i...
    99+
    2023-05-30
    android intent uri
  • Vue3常用的通讯方式总结与实例代码
    目录前言props$emitEventBusv-modelexpose / refprovide / inject插槽 slot普通插槽具名插槽作用域插槽结语前言 Vue3更新了很久...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作