阅读作业2——《大泥球》
这次阅读作业好纠结啊,对于一个六级英语低空飘过的我,真心感到有些吃力。在利用了各种可以利用的工具:有道,谷歌等等之后,最终还依然是一知半解的状态,唯一十分确定的一点就是:他们都讲的是软件开发~
因为对《big ball of mud》感到有些兴趣,所以其他的五篇就不一一阐述了,只是谈谈自己对《big ball of mud》的感想吧。
Big ball of mud,翻译成大泥球,一个令人感到很纠结的名字。作者讲的是有关软件体系结构方面是事情。所谓“大泥球”指一个随意化的杂乱的结构化系统,只是代码的堆砌和拼凑。存在“大泥球”的软件往往会出现很多错误或者缺陷。这是一个很神奇的事情,之所以说神奇,是因为人们明明知道“大泥球”是一件不算是很好的东西,但它却一直存在,经久不衰。究其原因,大概可以列出以下几点:
1、 成本——当一个新的领域正在探索的时候,成本是昂贵的。而这种比较糟糕的随意化的杂乱的结构化系统,却是在探索初期一个比较好的选择。或许在该领域的逐步发展中会暴露出很多问题,但不得不承认,相比于一个顶级的设计,在初期的时候它还是很有优势的。
2、 经验——程序员在初期的时候经验是不足的,因而在解决特定的问题的时候,会利用学校所学,采取一些缺乏经验的方式。而这也是产生“大泥球”的一个原因。
3、 技巧——程序员的技术水平不同,以及专长,倾向和气质。一些程序员有一个激情去寻找良好的抽象,而另一些则擅长浏览复杂的代码。这就导致在一个团队中,由于每个人的习惯不同,堆砌起来的工程如同一个“大泥球”.
如今想想我们团队的软件工程项目,两周的时间里,我们都是在各自做着各自的部分。彭笑东在一心一意设计着UI,连昭鹏从网上搜到一些网页做着去噪的工作,我在和数据提取进行着持久战,隋宇豪做着与数据库有关的工作,胡仁君对提取的数据进行着最终的数据处理。每一部分看起来都还算是井井有条,但很悲剧的是,一次小小的整合,便暴露出了很大的问题。最严重的便是我和连昭鹏之间的衔接。由于最开始没有意识到每个网页的编码方式不同,导致除了UTF8编码之外,提取的数据显示的都是乱码。在意识到这个问题之后,我们小组进行了讨论,最终决定在连昭鹏的去噪部分进行一下转码,使得去噪后的编码方式是同一种。
不得不承认,我们的合作是一个“大泥球”,看似每个人都很有效率的完成了各自的部分,但合在一起的时候却如同一个个小泥球堆砌在一起成了一个大泥球,漏洞百出。不过我相信在我们的合作下,这些问题都会一一解决。