从生活琐事看到软件开发原理
那天去了银行,想取点钱。没有银子了。提款机也没有钱了。看见柜台前没有人,所以跑到了柜台。可是被柜员拒绝了。保安让我去那个抽了个号码。我很郁闷的说。什么时候银行,搞起这个来。于是明白银行希望客户一个好的服务态度所以大家不用像以前那样站在那里排队。听见喇叭喊自己抽的号码就去对应柜台去服务就好了哈。坐在座位上,看看当时正在服务的号码,看看自己的号码。晕。还有N多人呢。唉。。有是痛苦的等待啊。
突然想到了观察者模式。那天晚上记了好久的类图,才依稀记得之间复杂的关系。我不就是那个Observer吗?自己拿了一个号码就在Subject那里注册了。Subject有了新的更新之后,就会通知所有的Observer,Observer根据自己的需要处理事务。哈哈。。其实一切原来这么简单啊。于是,记下了“去银行取款是观察者模式”。
一天临近中午时分,该去吃饭了。公司现在人多了,吃饭的人也就多。我第一来公司的生活,就觉得公司吃饭很好玩。好像工厂里的流水线作业,也好像OS里的多线程服务。每次站在那里排队的时候,公司的同事也不忘记拿着报纸看看。真让人觉得大家都很抓紧时间。而我却常常在这长长的队伍中发呆。记忆里,曾经就有一次,已经走到了最后,却发现没有什么饭菜也没有拿。呵呵。汗自己一下。还被后面两个兄弟笑话了一下。
今天和同事一起在排队,脑子里还在回味着前一天晚上看到的五个创建型。并一个一个的默默数着,单件模式、工厂方法、抽象工厂、原型、Builder模式。回想一下每一个类图的结构。突然,好像发现了新大陆一般,身后的兄弟说,在饭堂吃饭原来是Builder模式。我们拿了菜、汤、主食、交了钱,就有了可以吃的中饭。中饭就是经过这N步而产生的对象。而这N步中的对象是饭堂提供的,可以在其中挑选自己需要的。然后组成自己需要的对象。而我们不需要关注饭菜是如何被制造出来的细节,只用饭堂这个接口,得到饭堂创建出来的实际对象。这个就是抽象工厂。呵呵。 心里爽的不行,端着饭菜坐在那里开始吃。(这次没有忘记拿饭菜,不会被旁边的兄弟笑话我了哈。)坐在那里吃饭,脑子里也不老实,回忆着刚才的Builder模式和抽象工厂。看见队伍越来越长了,然后有食堂的管理人员,让后来的人转了个弯接着刚才的排。其实,就这一点点简单的事情,就是数据结构里的队列。但是队列一般都是一个线性结构,不会“转弯”的。转念一想,说它更像是STL的vector,我觉得更复合事实。Vector开始分配一定长度的空间。当空间不再够用的时候,就再次分配原来空间的两倍,然后把原来空间的数据copy过来,把新的数据写在最后。刚来的人自然要排在后面的。唯一的区别就不用分配空间和进行copy动作,所以不存在时间的效率问题。呵呵。看这眼前的这队人,就想着给他们一人一个空间,一人一个序号。看来去食堂吃饭所涉及的软件相关的事情还是比较多。
软件设计的东西,有时候很抽象,很难理解。有时候却就在你的身边,其实很多设计的思想,天天都能接触到。从开始知道程序语言,到现在成为了一个真正的程序员。算来算去,也就几年的时间。可从我生下来到现在时间也有二十多年的时间了。如果我能将这二十多年的生活经验用到软件的设计中。会是什么样子?为什么需要将生活中的思想融入到软件开发当中呢?原因其实很简单。是因为生活的经验不是只是自己一天天积累起来的,其中也有从父母、长辈或者其他人那里“继承”过来的。这些生活上的经验时时刻刻伴随着我们。这些生活的原理,是经过千锤百炼之后,指导着我们现在生活的方式。这些方式都有它的道理所在。而软件就是将现实中复杂的运算和逻辑转换用计算机来进行运算,来提高生产力的。
套用一句老话,我们需要将无限的生活经验,投入到有限的编程经验之中去。面对那些复杂和枯燥的数据结构、操作系统原理、设计模式,一切似乎又变得的那么简单。生活中到出到是那些原理,只要你留意你就能发现。
网址:从生活琐事看到软件开发原理 https://www.yuejiaxmz.com/news/view/42754
相关内容
「从事应用软件开发」从事应用软件开发公司黄页软件开发:从入门到精通
软件开发app,按需原生定制开发app
软件开发:从概念到实践
软件开发知识:什么是软件开发?
简单谈谈软件开发,软件开发走进生活
软件开发者会在日常生活使用自己开发的软件吗 – PingCode
本味生活软件开发案例 111
软件开发工作总结
软技能2软件开发者职业生涯指南