前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程能力突飞猛进的奥秘!戳~

编程能力突飞猛进的奥秘!戳~

作者头像
用户1081422
发布2020-04-08 10:26:51
3950
发布2020-04-08 10:26:51
举报
文章被收录于专栏:T客来了

目录

  • 一个知乎问题?
  • 为什么学会Debug 很重要?
  • 如何debug-python为例?
  • 再论debug的重要性

1 新键盘 and 一个知乎问题

为什么写这篇博客? 因为我刚买了新键盘,迫不及待想体验下打字6的飞起的感觉,嗯,新键盘还不错。前几天看到在知乎上看到一个问题:

我的答案也附属在下面;

估计你我都有这种感觉:做业务似乎不需要太多的debug,简单的增删改查为啥需要debug呢? 不是信手拈来。简单是显而易见的,不过长此以往往往会觉得做的东西没什么挑战性,每天的工作就是简单重复,循环经验,码码砖,所以外界都讲我们是码农。打住,真的是这样吗?

程序员的关键词应该是创造,而且是高质量、高速创造、时间不等人啊,这一切的基石即是debug 我的回答当中侧重3个方面:

  1. 习得抽象能力;
  2. 通过读源码、熟悉数据结构、熟知数据结构的应用场景 来习得;
  3. 要做的好,需要debug。

2 为什么学会Debug 很重要?

个人认为主要有3点:

会 debug 会 level up 面试手写代码着重考察的能力 工作中提升工作产出的必备能力

3 如何debug?

如下图所示:

接下来以pycharm为主,演示下如何习得debug能力:

3.0 选个好的ide

选择一个好的ide,会事半功倍,推荐使用 jetbeans 全家桶

3.1 打断点

打断点是个技术活,有没有感觉复杂程序的断点其实比较难确定打点的位置(打点位置的设定方法我在思维导图中有提及,得多 debug 各种难易程度的程序,找找感觉):

程序很简单,即遍历输出arr,断点打在function test_0() 调用的位置

3.2 跑起来

1 and 2 方式均可

3.3 控制程序运行流程

控制程序运行流程在 pycharm 中也有利好的工具可以用,如下图所示:

从左至右:

  1. step over: 当前代码行的执行过程不必细究,直接运行完成后跳到下一行
  2. 使用场景: 当前代码行对debug过程没有任何影响,可以直接运行,且直接跳到下一行

  1. step into: 即压栈的过程,进入函数调用内部,并且如果遇到系统库或第三方库调用也会进入到第三方库函数调用内部;
  2. 使用场景: 进入函数内部,包括自己def 以及 call 第三方的函数;

  1. step into my code: 也是压栈的过程,但是不同于step into,step into my code 只能进入到自己def 的function 中,属于阉割的step into

  1. step out: 即函数调用出栈的操作,
  2. 使用场景: 如果step into 到函数调用较长的函数中,不想一行一行看完所有的函数调用,那么可以直接 step out ,完成当前函数的调用,然后继续调用step over 继续运行程序

官网上没有对当前按钮的官方说明,官网文档:https://www.jetbrains.com/help/pycharm/debugging-your-first-python-application.html

  1. 如果你有多个断点,只想看断点处的运行结果,则可以直接多次按压 go next breakpoint, 观察变量的输出情况
代码语言:javascript
复制
  1. debug 过程当中,所有变量的变更情况(动态的过程) 可以通过 varibales 变更面板查看

多练习,可以找到debug的乐趣,这是一种习得能力;

4. 再论debug重要性

假如有现在一种场景,你新接了一个项目,这个项目没有做好项目传承-即没有文档 ,日志也惨不忍睹,毫无规范可言,(不考虑办公网络的复杂性,如代码在本地不能调试)你会怎么做?

先骂娘->看代码(要么睡着,要么怒火中烧) 结果是两三天过去了代码还没看明白? (简单代码可以走查,复杂代码需要debug,跑起来你才知道发生了什么)

如果是我,我会怎么做?

  1. git clone 源码;
  2. 问相关派发任务的相关人,项目的详细背景,项目启动的入口地址,如果相关人离职了,或者相关人根本不知道这个事情,我觉得此地不宜久留;
  1. 如果2 进行的很顺利,剩下的就是自己的事情了,debug,了解整个项目的运行流程;
  2. 及时跟相关人沟通对项目的了解情况;
  3. 了解的差不多了,开干。自己推到重来,或者重构,都是自己的事情了 。

如果有更好的方式,请留言沟通哦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 T客来了 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 1 新键盘 and 一个知乎问题
  • 2 为什么学会Debug 很重要?
  • 3 如何debug?
    • 3.0 选个好的ide
      • 3.1 打断点
        • 3.2 跑起来
          • 3.3 控制程序运行流程
          • 4. 再论debug重要性
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档