首先,请允许我做这样一个对比,毕竟,这两件事看上去太没有关系了。事实上,我捉摸房间收拾这个事情的时候,压根就没有想过和工作联系在一起。可是最后竟然走在了一起。
不是每一个人都需要收拾房间,但是每一个人都可以花点时间研究一下收拾房间的方法。我目前一个人住在北京的自己的房间里,女友偶尔来一下。大家可以想像得出,这种情况下,房间的状况如何。基本有两点:
于是,女友每次来都很生气,我也知道后果比较严重。可是对我来说,改变这点非常难!必须要超人的毅力和决心不可。不幸的是,我却犯了重理论轻实践的错误。我开始关注女友是如何收拾房间的。
刚开始的时候,她告诉我,厨房必须保持干净,否则如何如何云云。可是每每发现就是不行。我也很头疼。后来,女友想到一些办法,在厨房进行功能区划分,告诉我什么东东应该放到什么位置。特别是那些篮子,盆子什么的。让我知道什么东西最后都放到什么地方就可以了。我发现这点要求,比要求我“保持干净”有用多了,至少我知道如何保持干净。
厨房还是简单的,关键在卧室,什么东西都乱扔。一开始也是一样的要求,可是我一样做不到。慢慢地,她开始发明一些宝贝。比如,零钱罐,以后所有硬币或零钱就放到里面,发票盒,脏衣处,杯子存取处等等。尽管我们还有很多地方需要改进,可是这些概念的提出,的确可以对房间收拾起到很大帮助。
如果我们看看我们的软件架构,也是一样。如果不思考一下,简单进行软件开发。就像我女友以前一样,把家里重新收拾一遍,过不了几天,我又会把房间搞乱了。软件也是如此。软件在版本开发完成之后,维护工作很有可能将软件带入一个可怕的境地。
所以我们需要软件架构。那么软件架构又是在做什么的呢?说简单点,就是解决问题,可是复杂就复杂在如何解决问题。首先是发现问题之所在,对症下药。其实对比一下房间收拾,基本上也就是两个问题:
一个是当前的问题,一个是以后的问题。解决第一个问题,大家都顺其自然地比较得心应手。收拾一个房间,相对还是比较容易的,一般就是比较累的了。但是解决第二个问题,必须有相当的智慧。我们工作几年之后,往往都能积累一些经验,但是如果不知道总结和发明,做软件架构,往往也只是经验主义。不能在关键点上找到关键解决方案。
找到了问题的关键点,在我们软件架构中,就应该提出一个相应的方案来解决它。这和收拾房间一样,你提出的方案应该有几个特点,才方便这个方案在以后的软件维护中,生根发芽!
- 问题单一。不要让几件不同的事,混杂在一起处理。这样智慧让人困扰。
- 概念清晰。这样,知道什么问题,什么方案解决。一个复杂的概念只是会让人不知所云。
- 借口简单。至少,使用起来简单。也许内部结构比较复杂。但是不能因此就有吓倒以后的维护人员的理由。
- 模块独立。不需要单独维护。谁不喜欢呢?如果每一次需求变更,还需要让我来维护这个解决架构问题的扩展问题的话,我会很头疼的!因此本身的扩展性也一定要做好。
说到底,好的解决方案,不光是在软件架构的时候会有人提及,在软件维护的实践中,不断有人提到。当然不是因为麻烦,而是因为舒心!并且,由于问题单一、概念清晰,这些方案往往能够复用到其它项目中去。
总结一下,本文将房间收拾和软件架构进行了对比,重点是要描述软件架构中的解决方案本身的提出及实现的原则。软件架构包含很多领域,不过我们讨论的这个领域,具有超凡的创造性在里面。
一句话,软件需要智慧,软件需要借鉴!
分享到:
相关推荐
一款很好的精品课程网站 适合学生毕业设计答辩用
在开始一个软件项目之前,公司领导要与项目主管对需要完成的工作内容、时间期限、考核的标准达成一致。项目主管把任务进行分解,和每个软件开发人员对各自所需完成的工作内容、期限和考核标准达成一致,特别是各个...
收拾整理习惯问卷调查.doc
收拾收拾收拾收拾收拾收拾收拾收拾收拾收拾收拾收拾身上所上市实施上述事实上
基于草绘和收拾的着装系统
幼儿教育电子资源“聚焦教与学转型难点”的信息化教学设计收拾整齐要牢记.pdf
“勇士”归来约战ARM收拾旧河山.pdf
唯美忧伤的女生伤感网名 散落的心事无从收拾.docx
穷游网的”穷”局:有多少人收拾背包去远行.docx
中班优秀主题详案《我们给金丝熊收拾家》润新教育.txt
unigui框架使用中的问题集发的收拾收拾收拾收拾收拾收拾
新领导要立威,往往收拾的是这六类员工,你在其中吗
收拾收拾
收拾收拾
后台管理网站模板,html页面优美!设计合理,集成各类优美插件,基于bootstarp设计制作!
到宿舍收拾收拾收拾收拾收拾收拾手术室时尚
有关于authorware的课件,说是施收拾收拾收拾收拾收拾收拾
去收拾惹您生气的人吧
不愿意写描述 收拾收拾收拾收拾收拾收拾收拾收拾身上所实施点点滴滴点点滴滴点点滴滴地对地导弹
好用的人事档案管理系统,是很好的软件的事发生的发生地 阿斯顿发生大法师打法啊啊啊收拾收拾ssd反反复复实施手术室收拾收拾ssd