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

2021-01-01 12:44:41 +08:00
 dxcqcv

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

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

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX