软件程序开发,也许人们的印象是一帮程序员对着电脑狂敲代码。但是事实上一套好的程序仅仅是敲代码敲出来的么。答案是,敲代码只是程序开发的一部分,甚至不是最主要的部分。
那么什么才是最重要的?是程序设计。所谓程序设计,是指开始敲代码之前的所有准备工作都是称之为程序设计部分,程序设计直接关系到你敲代码敲的是否顺手,以及敲代码时间的长短。设计是智力劳动而敲代码只是体力劳动!如果按照时间划分的话,程序开发总时间=程序设计时间+代码编写时间,且,程序设计时间>代码编写时间,如果在实际中你的代码编写时间大于了程序设计时间,那么,你的设计是失败的,你的工作将会很痛苦。因为好的设计会让你觉得写代码是一种享受,差的设计就会让你漏洞百出,痛苦不堪。
为什么是这样?原因很简单,古人云,谋定而后动,磨刀不误砍柴工,欲速则不达,都在说一个道理,干什么事都要做好充分的准备。软件开发,无论是小软件还是复杂的软件,实际上都要涉及很多方面,你只有在事先考虑周全,不说面面俱到,至少要你能想到的都要考虑。不做任何准备或准备不足,即使让你写再简单地功能模块,写的过程中你会发现,有问题没处理,于是你返回去处理一个问题,于是继续写,你又发现一个问题没处理,于是又返回... ...如此反复,会让你的思维不断被打断,精神折磨不说,写出来的东西也不一定很完美。因为开发软件应该是一种享受的过程,假如你写代码写的怨声道载,备受折磨,只能说,你不适合玩儿这个。
设计有什么好处呢?设计是当你拿到一个需求或者任务时,你要先构思,如何下手,如何实现... ...于是你就理清了思路,有了步骤,那么接下来你只需要按照你设计好的思路和步骤写代码就可以了。当然会很顺利的完成。而且经过你的认真设计,可以把bug减少至最小,想想,如果你开发了一个东西,结果测试人员测试完之后没有发现bug,这是多么爽的一件事!
那么,如何进行设计呢?
1、画详细流程图,这个路程图不是简单地开始-功能-结束。程序设计的过程中使用的流程图,要非常详细,详细到你要用到的函数的过程。
2、当你按照需求构思出了详细流程图,接下在就需要不断推敲,这样是否满足需求?还有哪些问题?结构是否合理?数据结构是否正确?如此反复梳理你的思路,从头至尾检查你的流程图。检查的次数要不少于三次。因为如果你的流程图够详细,你有认真检查了三次以上,而且你的智力也正常的话,那么你的程序将不会有问题了。
当然这个流程图,是有要求的,那就是要足够详细,分解的足够小,只有这样才能在写代码之前足够多的发现可能遇到的问题。这个足够详细,包括函数的参数列表,各部分的接口,大概的数据结构,保存等等。而且设计后面的时候要不断的返回到前面检查是否合理。
认真的设计,会让你的能力不断提高,只有能力不断提高,才能拿更多的钱,只有能力高了,才能做到想加班就加班不想加班就闪人... ...
——参考自我们老大的思想。