从建筑的角度来看编程

来源:互联网 发布:谷歌程序员的起薪 编辑:程序博客网 时间:2024/04/27 13:54
”分而治之“

       将一个大问题拆分成小问题,将小问题抽象成不同的对象,通过这些对象的组合,解决大问题。所以先抽象出问题的主要作用和功能,设计对象的属性和方法,再进行实际编程。就像设计一栋楼,将一栋楼拆分成梁柱,楼梯,地基等,再组合在一起设计。

      说实在的,编程阶段相对来说就是在拿时间换取金钱,过程相当无聊。但是这一阶段又是最不可忽视的部分(不然设计出来的东西谁来键),也是你最容易体现你价值的地方,耗时的多少,质量的好坏,性能的快慢都是在这一阶段体现的。有的人一个人能干别人一个项目组的活,而且比别人更快,更好。这些人很多都是下面所说的“宏观把控者”,掌握着大方向,是一盏明灯。当然如果灯光的方向不对,那么实施的人再好也没用。所以这些人将更多的精力放在方向上,而不是去做什么。这也是软件行业缺口大的原因之一,也是离职转行率高的原因之一,大的方向只在少数人手中,其他人都是实施者。


需求分析(主要宏观把控者)     ----》建筑草图和制作模型(将路先铺出来)
                                                                                所以在需求分析阶段尽可能的将所有问题抽象出来,交给设计人员
                                    
设计(项目组长或程序员)         ----》建筑设计和结构设计(将“图纸”设计出来)
                                                                                根据需求,确定采用什么结构,使用什么技术,确定每一步该怎么做
                                                                                这一阶段很多时候只做了“建筑设计”,对于“结构设计”却忽略了,
                                                                                直接就到编码,但编码实际上是根据“结构设计”来工作的
                                                                                建筑设计---设计原型
                                                                                结构设计---具体到对象的各项功能
                                    
编码(程序员)                                ----》按“图”施工(很多时候没有“图”,直接就开始干)
                                                                                耗时最长,也是最麻烦,需求变化 导致 设计变化,最终影响到实际施工;
                                                                                检测出现问题也是反馈到这一阶段。
                                                        
测试                                                 ----》质量检测(在施工的同时进行)

上线                                                 ----》卖房子(销售阶段)
0 0
原创粉丝点击