大家能在写程序之前把每个细节都能想清楚吗?

2017-06-30 00:16:25 +08:00
 guyeuro

我有时写一些有点算法或者复杂点的程序, 都是只能想个大概 感觉不动手写,就不能把细节完全想清楚 而是边写边改 写出来才发现有些地方考虑不周(调试前) 然后改一下

牛人估计是写之前就每个细节都想清楚了吧

2943 次点击
所在节点    问与答
31 条回复
geelaw
2017-06-30 01:02:00 +08:00
正确的模块化+自顶向下的顺序书写可以让你不用立刻想好细节。
imn1
2017-06-30 01:07:44 +08:00
不能,又不是穆罕默德
cranelee13
2017-06-30 02:49:22 +08:00
我认为那怕是 Linus 也不会想好整个细节才干活吧。
guyeuro
2017-06-30 03:08:35 +08:00
@cranelee13 我意思是十几二十行的程序,譬如写下面这个方法:

整数数字转读音]
string num2Voice(int num) { … }
例:输入:12345 输出:一万二千三百四十五
binux
2017-06-30 03:20:11 +08:00
可以啊
不过你这个「十几二十行的程序」根本就没必要想清楚
「整数数字转读音」这又是另一个问题,根本不是是否想清楚程序的问题,而是是否想清楚规则的问题。
WhoMercy
2017-06-30 07:54:00 +08:00
小的程序有大概思路就可以写了,边写边思考。
大的程序动手前一般都要构思好对当前项目的影响、对以后开发的帮助,基本上要把细节都拿捏好(看经验)。
cloverii
2017-06-30 08:15:17 +08:00
以下特指 lc 这种不超过 50 行的代码 我也有类似情况,以为自己想清楚了但是写起来还是会有问题,跟我汉子讨论过这个问题,得出的结论是我人脑编译能力不太够 - - 不过我们可能还是不太一样?毕竟我开写的时候是确确实实以为自己想清楚了…
JonyOang
2017-06-30 08:16:52 +08:00
都想清楚了,估计就没点儿开始写了
Tunar
2017-06-30 08:37:41 +08:00
大致框架想清楚了,然后再一点一点往里填
baiyi
2017-06-30 09:54:06 +08:00
每个细节都能想清楚 是不是就没有 重构 的事了
GaoYL
2017-06-30 09:55:17 +08:00
尽量想呗.
buckyRRRR
2017-06-30 10:07:31 +08:00
如果能想清楚的话,请问 bug 是怎么出现的,不是程序员,纯好奇
Jameson1559
2017-06-30 10:20:07 +08:00
@buckyRRRR 如果能想清楚……那可能导致 BUG 的只有手癌了吧……哈哈哈哈哈……
TaoSama
2017-06-30 10:36:17 +08:00
说明思考的太少了 = = 一开始能 control 50 行就很不错 多刷刷题就能 control 100~200 行 最后 300~500 行都是可以的
再往上就没啥意义了 毕竟 50 行的水平感觉就能 hold 住一般工程了
(我 xbb 每个人的感觉毕竟不一样
lsido
2017-06-30 11:48:23 +08:00
我一般都是做个需求分析就开始做了,遇到问题再解决,一个项目里会出现千奇百怪的问题,怎么可能把每个细节都想到呢?神人也!
msg7086
2017-06-30 12:35:07 +08:00
整数数字转读音

这个能十几二十行?
光写个单元测试都不够十几二十行吧。
chnhyg
2017-06-30 13:11:28 +08:00
每个细节都想清楚是不可能的,但想清楚七八成的细节还是没问题的,80% 的时间思考,20% 的时间编码。
guyeuro
2017-06-30 13:16:57 +08:00
@msg7086 我看了下我写的这个方法,二十多行,不包括单元测试
guyeuro
2017-06-30 13:21:59 +08:00
@TaoSama

比如我写这个方法的这一段


voice[maxlen-1] = numberChars[number % 10];
int i = 2, j = 0;
number /= 10;
while(number != 0){
int x = number % 10;
if(x == 0){
voice[maxlen-i] = numberChars[0];
}else {
voice[maxlen-i] = units[j];
i++;
voice[maxlen-i] = numberChars[x];
}
i++; j++;
number /= 10;
}

动手写之前只能想个大概,不动手写,去想细节,就想不清楚[]里是-i 还是-i-1, i 和 j 的初始值设为多少合适,if else 里的细节等等
然后写了之后,再慢慢花几分钟调整,就能把细节全想清楚
TaoSama
2017-06-30 15:22:41 +08:00
@guyeuro 这还是思考的太少啊 你可以强迫自己去完全想清楚所有的细节 (我的意思是指编译器编译的结果跟人脑编译的结果完全一致) 注意强迫二字 反正非一日之功 不想清楚就不写 这样才会有提高

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

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

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

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

© 2021 V2EX