也谈软件设计

       很早就听说过这本书,《代码大全2》,凭感觉应该是讲一些程序代码中的奇淫技巧,而我对这些没有多大兴趣,前两天无意间在经理的桌子上看到了这本书,顺手拎起来看了几页,发现并不像我想的那样,它是从一个项目的规划开始一直细化到具体函数的编写,甚至是变量的声明,里面用了大量的例子代码(很短的)来告诉我们为什么做是风险最小的,是最容易维护的。对后面过于细节的方面我没有看,倒是里面关于构建方面的章节让我拍手称快,感觉里面有好多东西都是自己曾经体会到但是理解比较模糊的,读完之后清晰了很多。 
       软件设计中的一个很重要的方面就是管理复杂度,当我们对现实需求有了足够的理解后,如何将一个复杂的,看似无头绪的问题逐步分解为许多可实现小模块将成为重中之重,这种分解的极端是一句句的程序代码。在我刚刚学编程的时候我经常会陷入这样一个误区:当我面对一个问题时我会试图一次把它细化到具体的代码,这种尝试当然是幼稚的表现,当我们为一个问题建立了一个解决它的模型,然后试图把这种模型具体到一句句的代码时这之间的思维跨越是很大的。软件设计,其实就是管理好这分解的过程,将这比较大的思维跨越分解为一个个小的细化过程,我对这点体会尤为深刻。 
        最近在工作之余一直在写一个纸牌游戏,虽然只是一个小的游戏,但是直到我们认真去实现它时才会知道它的复杂程度。从某种意义上来说它可以说是一个小小的系统:有负责UI显示的模块,游戏时序的控制,游戏规则的定义,人工智能等等。如果我们始终把游戏作为一个整体来考虑的话可能我们永远都没有思路,我们不得不把它分为N个小的模块,如上所述。每次把注意力都集中在其中的一个子模块上,继续细化,直到具体的类或者接口。这种设计的过程不一定非要写到文档里或者画出图来(正式的项目是必要的),因为这毕竟是个小小的项目,我基本上是边设计边写代码的,这样我们每次关注的范围很小,写起来很轻松,而且成功率也很高。 
         以上是我对那本书和软件设计的理解,写出来跟大家分享一下,有兴趣的可以一起讨论。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值