程序开发应从横向实现(而不是纵向实现)

也许有些人早就是这样做了,也许有些人还在和我一样,也许有些人认为这样挺好的,总之我认为这是我要改进的地方。程序开发应首先统观全局,然后再逐个深入。
举例:要实现某一功能,在开发过程中,往往需要将功能分成多个模块,每个模块下有众多子模块,再拆分成多个相互配合函数,然后是子函数,嵌套函数等等。
这个设计过程中,有时候往往由于头脑太过投入,而让思维不断的递进深入到某一模块下无法自拔。
而当真正开始编码的时候,也是跟着思想走,首先完成最低层的函数,然后再逐步上推到顶层,然而当辛辛苦苦做到顶层后突然发现,自己当初在某处想得其实不够全面。 于是,前面的辛苦就算是白费了。虽然通过不屑的重构调整最终还是完成了,可是,最终的代码已经被改得面目全非,不成人样了。
这一开发过程可以用下面的图示来形容:
纵向实现的程序开发(错误)
 
我经常犯这样的错误,甚至是自己在家里做一些小实例程序的时候也是如此。这也反应了思维方式的一些缺陷。
 
在横向实现的过程中,程序的设计及开发应当是对系统功能树的横向遍历。同样以上面的功能举例,在完成所有模块(模块A、模块B、模块C)的设计前,不急于设计或是实现某一模块的具体子函数或是子模块。
这样的好处是,当发现自己出现错误的时候,调整的幅度会是最小的。就像软件开发过程中的瀑布式模型一样一个阶段一个阶段的完成。
 
另外补充一点使用条件:以上开发方式,适用于对项目中所用到的技术或相关业务逻辑比较熟悉的情况。
 
如果一个开发这第一次接触此类功能,对技术或业务逻辑不是很清楚。基本上无法做到合理的进行模块拆分,也就不可能一个阶段一个阶段的进行了。
这个时候就要先做一些假设的模块拆分方案,然后动手分块做小实验来验证一下。
 
一个问题又出来了,如何才能确定自己对这个功能是否熟悉呢?
答案:个人经验,我会问自己这样一个问题: 这个功能如果我来完成,你能够多长时间实现它?如果回答不出来这个问题,那就是说里面的东西我还有很多不熟悉的。
 
最后,还是希望如果那位GGJJ有好的见解或宝贵经验能够供小弟分享,不胜感激
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值