|
| 如何成为一个优秀的程序员二 |
| 剪不断,理还乱
进入编码之前,程序 员要作一件重要的事情:设计程序的整体构架:也就是将现实世界的具体需求,转换成计算机语言中的各种模块关系,即我们程序员常说的建模.程序的结构是否合 理十分重要,它往往决定了程序的好坏.不合理的程序结构最终将导致整个程序成为剪不断,理还乱的一堆乱麻.
那么什么样的程序结构才能算合理呢?这当然和程序所要完成的任务直接相关,很难作一刀切的定义.但是我认为万变不离其宗,有几条原则:
1 每个模块的属性有清楚的定义.
2 模块之间的关系要简单有逻辑.
3 尽量避免模块之间的循环关系.
建 模工作确实十分重要,软件工业界也推出了很多建模工具,比如UML,OMT等等.但在实际的软件开发工作中,我发现不少程序员有过度夸大建模重要性的倾 向,花大量的时间纸上谈兵,结果反而使得开发工作陷入困境.我就曾遇到一个这样的例子.我有位同事,当时他负责一个为期六个月的项目.可是三个月后,他还在忙着画他的UML图.一个字的编码都没有写.按照他的话来说:要想程序在十年之后还有可运用性,必须花足够的精力让程序结构富有弹性,也就是说,我们比须预想到未来的十年中,我们可能会遇到各种新需求.本来很简单的一个问题,被他这一弄,变得极其复杂.
这种建模理论,在我看来是极其不现实的
首先,人类思维的局限性使得我们不可能预见未来的所有需求.
其次,模型越复杂,开发出来的程序问题也会越多.
最后,软件的开发应该是一个动态的发展过程,最初构建的模型如果有什么不足,可以在开发过程根据需要不断修改.就好像我们不可能要求孩子一出生就具有成人的骨骼一样.
因 此我认为,开发软件需要建模.但是建模不应该成为软件设计中的一个僵硬的单独的板块.它应该是贯穿在整个开发过程中.而且,它必须和实际编码结合起来.很 多问题只有在写编码的过程中才能发现.在软件的结构设计中应该始终秉承这样一个宗旨:我选择目前看来最简单的,最有效的程序结构.
佛教中人常说:世上本无事,庸人自扰之.简单永远是最好的.谁要想一口气吃成个大胖子,他得到的只能是"剪不断理还乱,是离愁,别是一般滋味在心头." |
|