(回顾下昨天让我不爽的简单问题没有design,结果%70完成度的时候,发现结构不好,需要大幅度调整,很火大,仔细把这个design的尺度问题想了下)
简单讲限制design的因素是两个:
- 脑力限制
- 知识限制
当design所需要的知识不具备的时候,就去探索,这种情况下其实是prototype,只能从下至上,一个个问题解决了,然后从上至下的去把结构做好。因为有未知因素的存在,你也没法去design。
另外也要考虑人的因素,当一下子面对一个巨大的系统,里面时不时或者经常有不熟悉的领域,那么这个脑力负担是很恐怖的。
这时候在design的时候,一直要背负一个巨大的复杂度,这个对于脑力体力的消耗非常大。
其实写程序写多了,coding也很快,大可以粗略的有个想法,然后就做,然后回头看一下,把自己靠潜意识写出来的东西有问题的地方处理一下,这其实是通过平时积累的基本功来把一部分脑力负担分担掉,也是可以用的。
归根到底,决定怎么做最好的根本标准时如何在最短的时间内作出最高quality的实现(要是能耗费最少的体力就更好了),可以根据具体问题具体去变通。
而不是浮于表面的形式,应该做之前有明确的design啦,应该敏捷啦,应该暴力直接干了再说啦。
另外也是具体的人具体的分析,不同的阶段也是不同的做法。
但是有一点是肯定的,如果要做的事情里面每个东西都知道,那一定要design,一气呵成,很快的写出好的程序,才是我们应该做的。
另外在结束实现了的时候,一般在做的过程中都会有更好的想法更深的认识,一个refactor也是应该的。