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

先脑图流程图再编程还是先编程中修改?

  •  
  •   dxcqcv · 2021-01-01 12:44:41 +08:00 · 3617 次点击
    这是一个创建于 1420 天前的主题,其中的信息可能已经有所发展或是发生改变。

    黑客与画家中有一段,作者不是耐心地一步步写出整个程序,确保大体上是正确的,而是一股脑不管对错,先把代码堆上去,再慢慢修改。你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家、画家和建筑师的做法完全一样

    想问问广大程序员,大家觉得这样对吗

    21 条回复    2021-01-03 15:17:55 +08:00
    loading
        1
    loading  
       2021-01-01 12:49:42 +08:00 via Android
    以前我是一边写一边整,甚至我前端都是这样。现在不了,都是规划好再开始。前端我也自己先画图了,起码用纸笔画个栅格。
    做个小规划很快,纸笔效率特别高,甚至地铁上就能整完。

    对于大项目,自然你也不需要再问了。
    kawaiidora
        2
    kawaiidora  
       2021-01-01 12:53:33 +08:00 via Android
    先梳理流程是为了避免“路线错误,写得越多改起来越麻烦”。而所有细节不可能是初期能都抓到的,就在写代码的过程中逐步完善。

    实际上的互联网公司代码:管他呢,天知道这个功能能否活过一个月( doge
    shroxd
        3
    shroxd  
       2021-01-01 12:59:17 +08:00 via iPhone
    个人觉得没必要分这么清楚,可以先做一点设计,然后写代码,觉得可以改进再折腾一下设计,循环着往前推进。毕竟大一点的模块一时半会也折腾不好
    raaaaaar
        4
    raaaaaar  
       2021-01-01 13:00:41 +08:00 via Android
    什么都不设计肯定不行,但是考虑完美事无巨细也不现实,问题就在于度的把握。
    小细节不用提前考虑,但是大的项目架构这些一定要提前考虑好。
    focuxin
        5
    focuxin  
       2021-01-01 13:02:43 +08:00
    三个时期八个阶段
    YouLMAO
        6
    YouLMAO  
       2021-01-01 13:32:58 +08:00 via Android
    P9 设计方案,一群 p6 哼哧农民
    boris93
        7
    boris93  
       2021-01-01 13:35:09 +08:00 via Android
    我不用脑图之类的玩意
    首先理解我要干嘛,然后写 wiki 大致说明,以及定接口规范
    然后一边写一边调,功能规模太大的话那就大而化小,写一块调一块
    taogen
        8
    taogen  
       2021-01-01 13:40:54 +08:00 via Android
    设计好了再写代码确实很舒服,能够减少写代码时间、减少 bug 和缺陷。
    但是写一份好的设计文档也挺痛苦的,需要大量的思考。
    atonku
        9
    atonku  
       2021-01-01 13:44:28 +08:00
    先做功能,再定需求!
    xuanbg
        10
    xuanbg  
       2021-01-01 14:16:00 +08:00
    你自己也说了:要确保大体上是正确的。那么怎样才能做到确保大体上是正确的?我认为必须做到用脑图 /流程图画出完整的逻辑闭环。只要逻辑完整闭环,其他问题就都是小问题了,可以在编码过程中去完善。譬如哪些数据需要验证,数据类型用 long 还是 int,长度多少,删除是软删还是硬删之类。
    Jackeriss
        11
    Jackeriss  
       2021-01-01 14:45:01 +08:00 via iPhone
    先做出最基本的版本,然后不断改进。改进方向可以先想方案,不需要想细节,细节在做的时候确定。
    Aeoluze
        12
    Aeoluze  
       2021-01-01 15:04:25 +08:00
    先画个流程图呗
    dxcqcv
        13
    dxcqcv  
    OP
       2021-01-01 16:46:41 +08:00
    @xuanbg 作者不是 xxxx,而是 xxxx
    waruqi
        14
    waruqi  
       2021-01-01 17:15:59 +08:00 via Android
    梦中想好醒来敲
    vamayoumo
        15
    vamayoumo  
       2021-01-01 19:19:41 +08:00
    之前看到过一种观点,做需求第一步是明确需求,把需要实现的需求点同需求方完整明确出来;接下来是构思实现方案,这一步不加设计模式和各种流程图;再细化实现方案,简单需求有初步构思就可以,如果觉得需求点复杂就需要画图和考虑适合的设计模式;最后才是代码。
    cmdOptionKana
        16
    cmdOptionKana  
       2021-01-01 19:19:59 +08:00 via Android
    我先写数据库 schema
    JCZ2MkKb5S8ZX9pq
        17
    JCZ2MkKb5S8ZX9pq  
       2021-01-01 19:22:52 +08:00
    手画草图 /编程 /draw.io 再画一遍归档
    tumaowolf
        18
    tumaowolf  
       2021-01-01 20:06:36 +08:00   ❤️ 1
    技术厉害 /真正的全栈:先设计再实施
    我这个菜鸡:先实施,实施到一定程度再设计
    uselessVisitor
        19
    uselessVisitor  
       2021-01-02 00:23:33 +08:00 via Android
    先思维图画出个大概流程,然后按照流程写,发现中间有空缺遗漏再补充
    MeatIndustry
        20
    MeatIndustry  
       2021-01-02 01:17:10 +08:00 via iPhone
    推荐一下 TDD,测试驱动开发。
    huayumo
        21
    huayumo  
       2021-01-03 15:17:55 +08:00
    逻辑吧,感觉逻辑比较重要,有逻辑学习其他新东西也比较快
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1086 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:52 · PVG 02:52 · LAX 10:52 · JFK 13:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.