码农高天
码农高天
  • 83
  • 747 447

วีดีโอ

【python】使用coveragepy计算单元测试的覆盖率
มุมมอง 4.4K16 ชั่วโมงที่ผ่านมา
判断单元测试质量的一个黄金标准就是覆盖率,我们来介绍一下如何使用coveragepy这个工具来计算单元测试的覆盖率!
如何正确地提github issue?开源项目作者来和你聊聊这个重要技能
มุมมอง 5Kวันที่ผ่านมา
你会提github issue么?正确的提github issue的姿势是怎么样的?这期视频教会你!
我给Python写屎山【PEP 667的尾声】
มุมมอง 8K14 วันที่ผ่านมา
这期视频聊一下最近给CPython做开发遇到的一个困境,当然一个问题没有好的解决方案的时候怎么办,面对三个不理想的方案, 应该怎么选呢?
【python】如何做字典的键值判断?if,get还是try?一个视频讲清楚!
มุมมอง 6K14 วันที่ผ่านมา
在判断一个key是否在字典里的时候,我们有几个逻辑上等价的方法,分别是用if,get和try。实际应用中我们应该怎么去选择使用呢?
450天成为Python核心开发者
มุมมอง 23K21 วันที่ผ่านมา
去年定下的小目标今年完成了,和大家分享一下感受。从今天起,就是Python core dev啦!
居家办公了两年的我,第一次来到了我的办公室
มุมมอง 8K21 วันที่ผ่านมา
这次去西雅图开会顺便在我们组的办公室呆了几天,感受如何呢?和大家分享一下
【python】听说Python的多线程是假的?它真的没有存在的价值么?
มุมมอง 27K28 วันที่ผ่านมา
这期视频聊一下多线程,很多人会说python的多线程没有存在价值,我们就来聊一下,这个说法到底对不对。
【python】你知道pickle不安全么?你知道利用pickle进行攻击多简单么?
มุมมอง 21Kหลายเดือนก่อน
这期视频聊一下pickle的安全性,为什么python官方会警告这个module不安全?它到底有多不安全?
没那么神秘的快速平方根倒数,给你解释一下这个数是怎么来的
มุมมอง 16Kหลายเดือนก่อน
这期视频聊一下在雷神之锤3中出现的这段快速平方根倒数代码。这可能是你们遇到的唯一一个解释这个数是怎么来的,而不是这个数为什么对的视频了。
我与微软的代码规范之争--局部变量竟然不让初始化?
มุมมอง 58Kหลายเดือนก่อน
代码规范竟然要求局部变量不初始化?讲一个我在微软的故事!
【python】3.11是如何变快的?我来给你讲一下其中原理!
มุมมอง 30Kหลายเดือนก่อน
这期视频聊一下3.11是如何让python整体提速25%的。主要设计在函数调用的部分的优化机制。
【python】定义好的变量读不出来?详解全局变量和自由变量的使用!
มุมมอง 4.5Kหลายเดือนก่อน
这期视频我们讲一下python中使用全局变量和自由变量时候的一些坑。到底什么时候需要加global和nonlocal声明呢?
写程序为什么要检查传入值?给编程新手们一个详尽的解答
มุมมอง 16Kหลายเดือนก่อน
前两天在粉丝群有个朋友问了一个看似简单的问题,但是这个问题之后其实也有蛮多可聊的内容。这期视频我们就尽可能详细地聊一下,为什么我们在函数里要检查传入值。
Google裁掉了整个Python基础团队?
มุมมอง 83Kหลายเดือนก่อน
今天来和大家聊一下最近很热的Google裁掉Python基础团队这个事。到底发生了什么?这个事情又意味着什么?
【Code Review】十行循环变两行?argparse注意事项?不易察觉的异常处理?
มุมมอง 7Kหลายเดือนก่อน
【Code Review】十行循环变两行?argparse注意事项?不易察觉的异常处理?
【python】你绝对不知道的字符串缓存机制!这个知识点有点太偏了
มุมมอง 3.4Kหลายเดือนก่อน
【python】你绝对不知道的字符串缓存机制!这个知识点有点太偏了
【python】三元表达式为什么不用这种酷炫的写法?
มุมมอง 4.5Kหลายเดือนก่อน
【python】三元表达式为什么不用这种酷炫的写法?
在微软捅娄子是什么体验
มุมมอง 25K2 หลายเดือนก่อน
在微软捅娄子是什么体验
【python】加俩下划线就私有了?聊聊python的私有变量机制。为什么说它不是真的私有变量?
มุมมอง 3.9K2 หลายเดือนก่อน
【python】加俩下划线就私有了?聊聊python的私有变量机制。为什么说它不是真的私有变量?
【python】如何在class内部定义一个装饰器?这里的坑你要么不知道,要么不会填!
มุมมอง 6K2 หลายเดือนก่อน
【python】如何在class内部定义一个装饰器?这里的坑你要么不知道,要么不会填!
十分钟学会常用git撤销操作,全面掌握git的时光机
มุมมอง 8K2 หลายเดือนก่อน
十分钟学会常用git撤销操作,全面掌握git的时光机
十分钟学会正确的github工作流,和开源作者们使用同一套流程
มุมมอง 87K2 หลายเดือนก่อน
十分钟学会正确的github工作流,和开源作者们使用同一套流程
【python】我调用的我不是我?你绝对不知道的python递归陷阱
มุมมอง 3K2 หลายเดือนก่อน
【python】我调用的我不是我?你绝对不知道的python递归陷阱
【python】学会用try finally优雅地释放资源,再了解它啥时候不好使
มุมมอง 6K2 หลายเดือนก่อน
【python】学会用try finally优雅地释放资源,再了解它啥时候不好使
【python】短短一行代码都读不明白?python源代码中技巧与荒谬模糊的界限
มุมมอง 4.6K2 หลายเดือนก่อน
【python】短短一行代码都读不明白?python源代码中技巧与荒谬模糊的界限
【python】内存管理结构初探--我要的内存从哪儿来的?
มุมมอง 5K2 หลายเดือนก่อน
【python】内存管理结构初探 我要的内存从哪儿来的?
【python】原来我可以少写这么多for loop!学会之后代码都pythonic了起来
มุมมอง 61K2 หลายเดือนก่อน
【python】原来我可以少写这么多for loop!学会之后代码都pythonic了起来
【python】十分钟极速入门unittest--写测试其实很简单!一套实践就够了!
มุมมอง 8K2 หลายเดือนก่อน
【python】十分钟极速入门unittest 写测试其实很简单!一套实践就够了!
【Code Review】传参的时候有这么多细节要考虑?冗余循环变量你也写过么?
มุมมอง 15K2 หลายเดือนก่อน
【Code Review】传参的时候有这么多细节要考虑?冗余循环变量你也写过么?

ความคิดเห็น

  • @PoolsharkTang
    @PoolsharkTang 5 ชั่วโมงที่ผ่านมา

    感谢高老师讲解,受益匪浅。总结一下本节课的所有知识点,欢迎大家改正和补充: 代码中加入一行breakpoint(),会在此处设置断点,程序运行到这里会进入pdb 进入pdb之后,检视当前程序状态的命令: p --(print)打印变量,可以打印任合法的python expression w --(where)看调用栈 l --(list)看当前位置附近的源代码,默认11行 l. -- 回到当前行数 ll --(long list)显示当前函数全部代码 u --(up)到调用栈当前帧的上一层 d --(down) 进入pdb后,控制当前程序的命令: n --(next)执行当前行 s --(step)如果当前行包含其它函数调用,进入子函数 retval -- 拿到函数返回值 until -- 运行到比当前行数大的行为止。用于debug时跳出循环 until 10 -- 加参数,运行到行数>=10 r --(return)在函数里,停到函数返回之前 lst = [1,2,3] -- 可以在pdb里面,手动修改任何变量 c --(continue)继续,到下一个breakpoint 如何不修改代码,用pdb调试程序: python -m pdb example.py 不在代码中加breakpoint,程序直接进入pdb模式 b -- (break)列出所有breakpoint b 5 --(break)加参数,在pdb模式下,用命令行在当前代码的第5行加一个breakpoint,可以用ll查看当前代码,用命令c让程序直接跑到断点停下 q --(quit)从debugger退出 b inspect.currentframe -- (break)加参数,在pdb模式下,直接在第三方库函数中加断点 clear -- 删除所有breakpoint clear 1 -- 删除第1个breakpoint

  • @xichuanxc
    @xichuanxc 10 ชั่วโมงที่ผ่านมา

    感谢高工,受益匪浅!

  • @qiyuzhong4287
    @qiyuzhong4287 11 ชั่วโมงที่ผ่านมา

    pylint或者vsc的自带插件也行

  • @didi098710
    @didi098710 12 ชั่วโมงที่ผ่านมา

    我只会按箭头😂

  • @micro.nahida
    @micro.nahida 13 ชั่วโมงที่ผ่านมา

    It is similar to Gdb, debugging c code.

  • @UCan927
    @UCan927 13 ชั่วโมงที่ผ่านมา

    卧槽 流弊~ 涨姿势了 👍

  • @yuan.pingchen3056
    @yuan.pingchen3056 15 ชั่วโมงที่ผ่านมา

    原來B是斷點 我老是想到不好的意思 也不能說是不好的意思 是生命的出口的意思

  • @jian294
    @jian294 15 ชั่วโมงที่ผ่านมา

    为何不直接用ide的debugger,感觉更好用,pycharm或者vscode

    • @Cordic45
      @Cordic45 10 ชั่วโมงที่ผ่านมา

      我的工作環境基本上沒有辦法使用ide 這時候pdb就很好用了

  • @f840810
    @f840810 16 ชั่วโมงที่ผ่านมา

    學習了 這個可以應用到leetcode debugger嗎?

  • @hengzhang9671
    @hengzhang9671 17 ชั่วโมงที่ผ่านมา

    平时debug都直接用vs code的断点了。这个命令行也蛮有趣的

    • @Cordic45
      @Cordic45 10 ชั่วโมงที่ผ่านมา

      我的工作環境不方便使用vs code 所以pdb真的非常好用

    • @bingyanliu6370
      @bingyanliu6370 9 ชั่วโมงที่ผ่านมา

      感觉用服务器的话就不太好用vs code的断点 因为没有GUI 还是有用武之地的

    • @duzhuo
      @duzhuo ชั่วโมงที่ผ่านมา

      @@bingyanliu6370 vscode可以远程连接到服务器,按需求来吧

  • @MZstudioservice
    @MZstudioservice 17 ชั่วโมงที่ผ่านมา

    不如print

    • @leafyoung
      @leafyoung 14 ชั่วโมงที่ผ่านมา

      你这是把print当成logging来用。对于复杂的程序,能够在断点处修改程序数据做测试还是很方便复现问题,或是测试改正方案的方法。

  • @xinyuzhu4448
    @xinyuzhu4448 17 ชั่วโมงที่ผ่านมา

    大神可以讲讲远程debug的原理吗,很多时候本地有个文件,但debug的时候代码实际上是运行在远程服务器上的,但却仍然可以通过IDE在本地文件上断点调试,感觉很神奇,不知道是不是IDE在中间充当了一个交流debugger命令和结果的角色,还是有专门的 远程debug库可以实现这一点?

  • @user-zz4qi7uc1o
    @user-zz4qi7uc1o 17 ชั่วโมงที่ผ่านมา

    想請問,為什麼不直接在 vscode 的介面上,直接設下紅色 break point,接著只要滑鼠指到想看的變數上,就可以直接觀看這個變數了 ? (誠心發問)

    • @LaoZhao11
      @LaoZhao11 16 ชั่วโมงที่ผ่านมา

      因為 vscode 也是依賴 pdb 在幫你 debug 少數情況需要比較刁鑽的 debug 時 Gui 會幫不上忙

    • @user-zz4qi7uc1o
      @user-zz4qi7uc1o 14 ชั่วโมงที่ผ่านมา

      @@LaoZhao11 謝謝你的回答。比方說有些較複雜的 Dict 結構,或是某些 ndarray,如果用 print 對我來說會很難可視化,所以我平時非常依賴斷點調適 (gui 行數那邊直接下斷點,然後 F9 慢慢一行一行執行,直接用滑鼠看變數),看到大部分人都用 print 的方式 debug,就有點懷疑自己是不是養成不好的習慣。

    • @jacobjiang1809
      @jacobjiang1809 13 ชั่วโมงที่ผ่านมา

      大型的项目,比如后端开发和大模型训练,都是在服务器环境进行调试的。 虽然现代IDE,比如vscode/pycharm支持SSH远程调试,但是受限于安全原因,服务器上的SSH配置可能变得非常繁琐。 所以基于命令行的原生调试工具比如gdb/pdb就会显得很方便。 另外就是,一些命令行的代码编辑工具,比如vim/emacs,熟悉快捷键后,开发效率不输IDE,vim/emacs+gdb/pdb的组合,整体上效率更高一些。

  • @omeletwithoutegg
    @omeletwithoutegg 17 ชั่วโมงที่ผ่านมา

    學習了

  • @andycheng5639
    @andycheng5639 17 ชั่วโมงที่ผ่านมา

    高工可以展开更深入的讲一讲pdb吗?谢谢!

  • @user-ix7td7ny5d
    @user-ix7td7ny5d 18 ชั่วโมงที่ผ่านมา

    这个pycharm编辑器debugger会不会更简单呢

    • @kirkzhang3483
      @kirkzhang3483 15 ชั่วโมงที่ผ่านมา

      会更简单些,还提供了更多信息,其实本质上也是PDB的功能或者原理跟PDB相同

  • @armgxxx
    @armgxxx 23 ชั่วโมงที่ผ่านมา

    在ARM security做嵌入式方面的,那时候follow的都是MISRA-C的规定。当时有QAC的rule不允许局部变量在定义一开始全部初始化,要求使用变量最近的前面的位置时候进行初始化。GNU的编译器应该不会有这么严格的检查,但是ARM的商业编译器是可以检测出来if分支初始化的这种情况。

  • @stephenpan2879
    @stephenpan2879 วันที่ผ่านมา

    赞!一定要做下去啊 我这几天看你的视频 受益良多

  • @tim-701cca
    @tim-701cca วันที่ผ่านมา

    原來可以這樣用

  • @wycmiracle
    @wycmiracle วันที่ผ่านมา

    说的太好了,别的教程都讲什么add push 也没讲冲突怎么解决 没讲怎么使用

  • @chih-chiehhung8742
    @chih-chiehhung8742 4 วันที่ผ่านมา

    想問一下會不會建議用@dataclasses(fronzen = True)來取代nametuple呢?

  • @LeafYe
    @LeafYe 4 วันที่ผ่านมา

    当然无法证明,因为b站的那个博主可能刚好也开了一个youtube频道,然后制作了这个视频,而你这期视频就是纯搬运,无法证明你的identity

  • @easeeasy
    @easeeasy 4 วันที่ผ่านมา

    我和你的想法一樣,偏向第一個方案

  • @xiaodongli-vx1fd
    @xiaodongli-vx1fd 4 วันที่ผ่านมา

    这不是我的菜,我好菜😢

  • @juvewan
    @juvewan 5 วันที่ผ่านมา

    hash('a') 每次运行的时候 结果居然不同 学到了

  • @0ManPiano0
    @0ManPiano0 5 วันที่ผ่านมา

    有趣!

  • @hengzhang9671
    @hengzhang9671 5 วันที่ผ่านมา

    讲解的很好,天天都用,但没这么清晰。

  • @AI-de6nw
    @AI-de6nw 5 วันที่ผ่านมา

    9:52 处说的“对于Python的使用者来说,就是三个字,不要用” 我想请教一下,如果我自己定义的Class 需要override magic mathod 比如 Class MyClass: def __str__(self): print('yes') 这种使用是建议的吗?还是我理解错了你的意思

  • @yuli.kamakura
    @yuli.kamakura 5 วันที่ผ่านมา

    lv-cover 对比 covergepy 如何?

  • @atony8155
    @atony8155 6 วันที่ผ่านมา

    影片真的很棒 謝謝你對開源的貢獻

  • @hengzhang9671
    @hengzhang9671 6 วันที่ผ่านมา

    写了很多年的python都还是不行啊。看您的视频如醍醐灌顶

  • @henrysu2566
    @henrysu2566 6 วันที่ผ่านมา

    感谢博主的解析,最后看到了Haskell的影子

  • @praenubilus1980
    @praenubilus1980 6 วันที่ผ่านมา

    希望还能出一期 C/C++覆盖率得节目

  • @hughtong5551
    @hughtong5551 6 วันที่ผ่านมา

    公司和这套流程一摸一样..

  • @behold0815
    @behold0815 7 วันที่ผ่านมา

    請問專案架構是用什麼CLI套件產生的?

  • @33lee61
    @33lee61 7 วันที่ผ่านมา

    非常認同應該要100% cover 抱怨一下 公司專案KPI之一是coverage rate 但只要求70% 前人為了快速衝cover的行數 只挑簡單的寫 稍微複雜的branch都沒加測試 之前想要補這些branch 但對於coverage rate沒有顯著增長 就被主管質疑怎麼只增加一點點

    • @jim1977
      @jim1977 7 วันที่ผ่านมา

      100%覆盖率只在很简单的逻辑才有可能,复杂的项目是不可能的,就算军工类软件的覆盖率也只要求到80%,这已经很不得了了

    • @33lee61
      @33lee61 6 วันที่ผ่านมา

      @@jim1977 作為工程師 我認為100%才能讓我安心 而不是每次merge之後要在那邊擔心會不會再沒cover的部分出現意外

    • @jim1977
      @jim1977 6 วันที่ผ่านมา

      @@33lee61 你的心情我理解,代码里一般会写一些保护性的代码,这些代码正常情况下是不可能执行的,但这些代码又是保障质量锁必须的,所以追求100%的覆盖率代价高昂且没有意义,覆盖率能到80%就非常好了。

    • @benny123tw
      @benny123tw 6 วันที่ผ่านมา

      身為前 QA,我可以說 100% coverage rate 在一個快速迭代的產品上維護上是很困難的,因為工程師會花更多的時間在寫測試和維護測試,當某項功能朝令夕改的時候,痛苦的就來了。 我自己更傾向於專注在重要的地方寫測試,盡量不要過度測試。當然,這個沒有對錯,一直以來都有人在討論要不要 100% coverage rate,很多開源專案也都會強調自己是 100%,不過你知道的理想很豐滿,現實很骨感。

  • @chencyu
    @chencyu 8 วันที่ผ่านมา

    恭喜!台灣和大陸的業界風氣導致開發者不太願意投入太多心力到開源軟體,播主對開發的熱情真的值得讚許

  • @kit00001
    @kit00001 8 วันที่ผ่านมา

    有沒有大神告訴我繼承其實是不是必要的,每次拆解別人寫的繼承類我都好頭疼啊

  • @kit00001
    @kit00001 8 วันที่ผ่านมา

    舊版應該釋放兼容和正確版本,兼容的版本兼顧了性能,正確的版本兼顧了簡易,內存佔用和性能的損失在日益進步的硬件上實際給留了不少空間,只要在文檔寫清楚就行,未來的版本裡嘎掉是肯定要嘎掉的

  • @cnl0005
    @cnl0005 8 วันที่ผ่านมา

    另外一個不該用的範例就是 `x if (x := y) > 0 else -x` 判斷式中間才有辦法得出x的值 沒辦法先建tuple

  • @ericchow2910
    @ericchow2910 8 วันที่ผ่านมา

    很好的意見

  • @kwokpuitsang9472
    @kwokpuitsang9472 8 วันที่ผ่านมา

    這個頻道算是言之有物, 不是亂說亂講那種. 但以說書方式表達技術性內容好像格格不入. 因為說書可以算是搞笑. 其實只要平實表達更容易吸收內容, 已經很好了.

  • @albertyi4798
    @albertyi4798 9 วันที่ผ่านมา

    都是些入门问题,国内计算机基础课教学很多都不过关。

  • @albertyi4798
    @albertyi4798 9 วันที่ผ่านมา

    如果必须初始化,可以修改编译器,让所有没有显式初始化的变量自动置null,高级语言c#和java都是这么做的。c,c++不这么做肯定是有它的道理的。

  • @markchen6549
    @markchen6549 9 วันที่ผ่านมา

    我遇過的都是開發者自己close issue😂

  • @roychuang0702
    @roychuang0702 9 วันที่ผ่านมา

    果然是CPython Core Dev 最神的解釋阿...

  • @roychuang0702
    @roychuang0702 10 วันที่ผ่านมา

    專業up主 可以去講段子了 XD

  • @wanggang999
    @wanggang999 10 วันที่ผ่านมา

    可不可以保持locals()不变,添加一个新方法(比如 instant_locals())去提供这个新版本的行为呢?

  • @laingsongting2810
    @laingsongting2810 10 วันที่ผ่านมา

    讚讚 C cool 😂😂😂

  • @kjc8751
    @kjc8751 10 วันที่ผ่านมา

    很重要的觀念傳遞, 謝謝分享。