V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iloveyouso
V2EX  ›  程序员

你们开发新功能的时候,是喜欢一次性敲完大部分代码,然后边敲代码边 debugger?

  •  
  •   iloveyouso · 2018-10-27 14:15:16 +08:00 · 3394 次点击
    这是一个创建于 2007 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我发现我最近开发新需求的速度变慢了多,经过反复的反省,发现是我喜欢敲四五行代码就去 f12 那里看看执行情况。以前都是敲完几十行代码,逻辑明白,然后通过记忆各个变量的位置以及含义去 debugger。

    我感觉是不是因为最近加班多了,导致大脑存储能力变差了?细思极恐。。各位敲代码也是类似这样吗?

    15 条回复    2018-10-28 11:58:31 +08:00
    likuku
        1
    likuku  
       2018-10-27 14:19:42 +08:00
    那么不如就走 TDD 路线吧
    lihongjie0209
        2
    lihongjie0209  
       2018-10-27 14:22:01 +08:00
    脚本语言的话 ,类似 python 是一遍在交互式终端测试, 测试没问题之后复制到代码中



    静态类型的语言, 类似 JAVA, 可以直接写完逻辑然后跑一遍就好了, 因为编译器帮你干了很多事
    IridescentChen
        3
    IridescentChen  
       2018-10-27 14:26:22 +08:00 via Android
    我一般是,如果感觉状态良好,一遍下来思路清晰,没什么大问题就敲完了再 debug。如果感觉某个地方有问题,或者没想好,就 //,把敲好的 debug
    binux
        4
    binux  
       2018-10-27 14:27:35 +08:00   ❤️ 1
    如果对上下文和 API 很熟悉的时候,都是一次性写完所有代码,然后写测试。运行一遍,改几个小 bug 就 ok 了。
    如果对 API 不熟悉,开个交互式界面,把输出弄出来,仍注释里,然后一次性写完。
    如果是算法类程序,先写测试,然后一次性写完代码。然后根据需要加 print,从来不用 debugger。
    suckli
        5
    suckli  
       2018-10-27 17:01:19 +08:00
    当然是写完了 DEBUG,在思路清晰的前提下。
    ShareDuck
        6
    ShareDuck  
       2018-10-27 17:52:18 +08:00   ❤️ 1
    很明显,你效率降低不是因为多了查看运行,而是上 V2EX 划水。
    iloveyouso
        7
    iloveyouso  
    OP
       2018-10-27 18:52:15 +08:00
    @ShareDuck 诶,你还真别说,每一次回去看 f12 总不经意的撇到旁边的 v2ex
    leekafai
        8
    leekafai  
       2018-10-27 19:13:48 +08:00 via Android
    看情况吧,一般来说我会先面向过程,写几个空方法作为过程验证,如果过程逻辑没有问题,就填充方法逻辑。当功能验证之后,我最后再考虑做通用抽象,因为业务逻辑一般只是局部通用,抽象太早的意义不大,但是最后不做抽象和封装的话,扩展性就不好了。
    wohenyingyu02
        9
    wohenyingyu02  
       2018-10-27 19:21:42 +08:00
    喜欢全部敲完,但是过程中会有留几个坑等几个模块完成后再连起来,问题是经常忘了,导致运行一堆 bug
    Gcourage
        10
    Gcourage  
       2018-10-27 19:26:01 +08:00 via Android
    我感觉这个才是对的吧,不过方法,可以继承类似 gtest 等 ut 框架写测试用例来验证。
    storypanda
        11
    storypanda  
       2018-10-27 19:27:46 +08:00 via Android
    我是打算边敲代码边 debuger,看到开发的功能在手机上实现会有成就感,对了我是初学者,需要了解模块的功能以及逻辑。
    也想全部敲完,就怕一堆 bug,结果最后没信心。
    envylee
        12
    envylee  
       2018-10-27 22:21:34 +08:00
    “不要过早优化”
    trait
        13
    trait  
       2018-10-27 22:26:12 +08:00
    讲道理 debugger 是遇到测试没发现之类的偏底层的错误才用的到吧,靠 debugger 来修正代码逻辑得多慢啊
    dapang1221
        14
    dapang1221  
       2018-10-27 23:30:18 +08:00
    一般情况就是全写完先跑一遍,万一跑通了呢,而且平时基本也都在写 crud,基本一遍就能过。
    偶尔需要做点算法,或是整理一个奇葩数组时,整理完 print 一下,看下结构符不符合预期,然后继续写。
    如果遇到对接别人接口,先在 paw 里拿数据测试下,看下对方接口返回的是不是跟文档一样,没问题的话也是全写完,中间做好各种异常处理,基本也能一遍过。
    test0x01
        15
    test0x01  
       2018-10-28 11:58:31 +08:00 via Android
    先敲完,目测 diff 一遍,写单元测试,写完跑,修 bug,完工!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5296 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 08:06 · PVG 16:06 · LAX 01:06 · JFK 04:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.