在编程的时候,你会花多长的时间来思考? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wyan453351466
V2EX    程序员

在编程的时候,你会花多长的时间来思考?

  •  
  •   wyan453351466 2019-12-11 09:25:21 +08:00 5348 次点击
    这是一个创建于 2136 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到一个说法是,编程应该用 80%的时间思考 + 20%的时间写代码。

    你如何看看待这个说法?

    你会在编程前,先花 80%的时间用来思考吗。

    或者说,你有在开发前,先写好思路 /文档 /流程图的习惯吗

    42 条回复    2019-12-12 15:12:35 +08:00
    meepo3927
        1
    meepo3927  
       2019-12-11 09:28:39 +08:00
    确实是 80%的时间思考, 其中 90%是在思考怎么调试。
    37Y37
        2
    37Y37  
       2019-12-11 09:29:10 +08:00
    对于我来说 80%可能有点多,但至少也有一半,可能跟写的东西有关,我写的一般也就只有我是需求,从前端到后端一人撸下来,也没太多时间限制,所以想的时间多点
    pingpingping
        3
    pingpingping  
       2019-12-11 09:30:32 +08:00
    先草草写下来,然后不断完善,完善过程中思考?
    很久没写了,最近都是这么操作的,感觉效率不高可能
    diubo
        4
    diubo  
       2019-12-11 09:34:49 +08:00
    时间上不一定 80/20,但动手前的思考,确实对开发效率影响很大,尤其是前后端一个撸的情况下。
    YanSep
        5
    YanSep  
       2019-12-11 09:39:03 +08:00 via Android
    反正先想清楚最好,避免写着写着发现不对……
    zgl263885
        6
    zgl263885  
       2019-12-11 09:40:10 +08:00 via iPhone
    不是必须,但是差不多,上去就是干的一般都干到半夜还干不完
    mcfog
        7
    mcfog  
      &nbp;2019-12-11 09:40:22 +08:00 via Android   1
    是 80%,但不是集中在编程前,不是瀑布式的先全想好,然后无脑实现。而是先总体设计,然后实现的同时考虑细节、异常、维护性等等
    season4675
        8
    season4675  
       2019-12-11 09:41:16 +08:00
    40%思考,10%写代码,50%调试和解 bug
    IGJacklove
        9
    IGJacklove  
       2019-12-11 09:44:02 +08:00
    会先考虑逻辑可行性,觉得没问题就直接写。过于纠结时间比没什么意义吧
    Leonard
        10
    Leonard  
       2019-12-11 09:48:26 +08:00
    看你写什么东西,写简单逻辑或者 UI 的话只管上手就行了
    zunceng
        11
    zunceng  
       2019-12-11 09:50:03 +08:00
    实际开发中 项目越大 思考的占的比例越大 , 主要原因是程序的主干框架变得更重要

    前期主要是做抽象考虑程序的主干框架, 不考虑细节。
    编码时处理细节也很重要 工业(生产)级别的代码 一般来说每个 error 都需要 handling, 这个需要查手册 局部的代码逻辑思考 必须在编码过程中处理的, 没必要一开始就想好。
    Vegetable
        12
    Vegetable  
       2019-12-11 09:52:05 +08:00
    思考实际上是在设计,不同人的岗位职责不同,设计需要的时间也肯定不一样.负责搭建架构的人肯定要想更多,按照接口文档撸 crud 自然就没什么可设计的,经验丰富的话就等于抄.
    zunceng
        13
    zunceng  
       2019-12-11 10:04:01 +08:00
    对于一些依赖比较少的项目 比如 linux 内核,前期很多时间花在前期看论文查资料上, 编码时使用的其他模块 API 甚至 API 的报错对于开发者来说已经很熟悉了, 确实可以做到, 编码占很少时间。

    对于现在一些应用开发, 处于一种 API 爆炸的阶段 一个应用可选择的第三方库,细节处理方式都很多, 对于开发者来说不熟悉就要花更多时间。

    不用太在意 “应该用 80%的时间思考 + 20%的时间写代码” 这句话怎么适合自己适合团队就行
    fengbjhqs
        14
    fengbjhqs  
       2019-12-11 10:09:11 +08:00
    要看复杂程度, 经验,
    cwjokaka
        15
    cwjokaka  
       2019-12-11 10:14:16 +08:00
    花少部分时间思考,先实现最基本的功能,测试,再优化
    sonxzjw
        16
    sonxzjw  
       2019-12-11 10:22:41 +08:00
    看情况,流水线不怎么需要脑子的,20%绰绰有余
    设计的话,我基本要超过 50%进行思考设计
    weer0026
        17
    weer0026  
       2019-12-11 10:23:14 +08:00
    思考比重肯定很大,但是我没思路了就会先写一会儿找找灵感。
    wlfeng
        18
    wlfeng  
       2019-12-11 14:07:58 +08:00
    先全部理清了再动手,中途发现问题再做调整
    qinyusen
        19
    qinyusen  
       2019-12-11 16:14:22 +08:00
    90%的时间想清楚,然后写测试(测试即用例),然后 10%差不多就能写了,因为想清楚了,而且测试写完,不会有模糊不清的需求和功能,直接搬砖就行。。。10%时间很充足。
    zhujz
        20
    zhujz  
       2019-12-11 16:15:37 +08:00
    公司急着上线,根本没时间想怎么搞,基本是能实现功能就上了。
    gpra8764
        21
    gpra8764  
       2019-12-11 16:23:55 +08:00
    写底层至少要按这比例,堆 UI 差不多适当降低思考比例
    otakustay
        22
    otakustay  
       2019-12-11 17:24:43 +08:00
    思考大部分并不是在编程的时候的,比如吃饭时、蹲坑时、睡觉时、看动画时、玩游戏时、坐地铁时……所以真正编程的时候,思考绝对不会有 80%的比例的,太假了
    zhybb2010
        23
    zhybb2010  
       2019-12-11 17:55:04 +08:00
    前后端一个人,运维架构一个人,纯思考占总项目时间的 30-%40%,coding 中思考占 coding 中的 70%。。。
    xxyang
        24
    xxyang  
       2019-12-11 18:28:49 +08:00
    看有没有复杂的逻辑,没有的话信手拈来
    xiri
        25
    xiri  
       2019-12-11 21:44:58 +08:00
    大部分时间花在思考怎么调试、修改上了
    INCerry
        26
    INCerry  
       2019-12-11 21:46:55 +08:00
    40%的时间和产品撕逼
    INCerry
        27
    INCerry  
       2019-12-11 21:48:56 +08:00
    40%的时间和产品撕逼
    30%的时间和对接方撕逼
    20%的时间在试图理解别人的代码
    2%的时间写代码
    8%的时间在调试
    visonme
        28
    visonme  
       2019-12-11 21:58:14 +08:00
    曾经有过这样 80%思考(程前准备),20%编码, 那种感觉确实很爽(编码过程) ,而且效率确实很高,各种出错率都低了不少....

    可现实中,这样的机会很少,大多数时候都是 10%思考,40%跟各类人群沟通 /确认 /等等 30%编码 20%修改
    good1uck
        29
    good1uck  
       2019-12-11 23:02:28 +08:00
    0s
    JamesR
        30
    JamesR  
       2019-12-12 00:18:04 +08:00
    20%写代码,50%测试修 Bug,30%思考。
    wangkun025
        31
    wangkun025  
       2019-12-12 00:18:46 +08:00
    我花 80%的时间胡思乱想
    charlie21
        32
    charlie21  
       2019-12-12 01:00:05 +08:00 via Android
    主要是思考怎么和别人的垃圾代码对接。自己写 不用思考
    loading
        33
    loading  
       2019-12-12 01:03:40 +08:00 via Android
    80,10,10
    思考,ctrl c,ctrl v
    driveby
        34
    driveby  
       2019-12-12 01:37:47 +08:00
    ![截屏 2019-12-12 上午 1.35.23.png]( )
    driveby
        35
    driveby  
       2019-12-12 01:38:31 +08:00
    @driveby 图片粘贴错了,不好意思。。。
    sikong31
        36
    sikong31  
       2019-12-12 09:38:37 +08:00
    先快速实现一遍,摸清细节,再慢慢改。除非经验特别丰富,计划赶不上变化
    luvroot
        37
    luvroot  
       2019-12-12 10:36:41 +08:00
    90%在做别的事情,1%的时间在 一把梭子,拿起键盘就是干,9%的时间再被各种隐藏 bug 坑得死去活来。
    FlexGap
        38
    FlexGap  
       2019-12-12 13:14:57 +08:00
    思考肯定是有的,但是就我个人来说,可能不会花 80%那么多。还有就是看项目,小项目一般就是草写之后不断迭代优化。
    zhanlanhuizhang
        39
    zhanlanhuizhang  
       2019-12-12 13:53:36 +08:00
    每次,思考的时间占用过多。造成后面天天加班,赶进度。
    lewinlan
        40
    lewinlan  
       2019-12-12 14:20:26 +08:00
    大概 50%思考,50%编码+单元测试+整体测试解 bug

    看项目难易度,如果是起一个新的模块,那思考的时间会多一点,相当于干了产品经理的活。如果是熟悉的或者相对健壮的模块增加功能,那思考时间就少很多。
    CantSee
        41
    CantSee  
       2019-12-12 14:27:40 +08:00
    40-50%的时间来进行思考 10%开发,30%调试和优化,20%摸鱼
    jedihy
        42
    jedihy  
       2019-12-12 15:12:35 +08:00
    写 iOS 和前端的时候基本不思考,直接撸。基本不会推倒重来,因为就那么多东西。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5937 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 02:12 PVG 10:12 LAX 19:12 JFK 22:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86