软件臃肿背后的真相

前几天方室网志写了一篇文章《这越来越臃肿的QQ!》,我看完后才懂有这么一个叫做“安迪比尔”的定律,它描述了软件商跟硬件商的关系。定律内容简单说,就是软件与硬件是互相促进的关系。硬件的性能越来越强,软件的胃口也越来越大。实话说,当今智能手机的性能早已经超越了七八十年代的老电脑了,可那时候的计算机能够支撑载人登月的任务,而如今的掌机只能用来玩玩小游戏运行小软件,是什么造成了这种奇怪的局面?不是硬件真的不强,而是软件体积的确太大,这样解释下来真的很符合人们的直觉!

我在文后评论说这“安迪比尔定律”不对,现在仔细想想其实它是说对了一半,软件的确是越来越臃肿,但相应的功能也越来越多,虽然很多功能可能用不着,但作为一个要符合七八亿人胃口的东西,到如今水平也的确不易,但这功能什么的都是次要的,我了解到一些观点,认为背后的真相应该是:当今很多软件充满了垃圾的代码,这并非有意为之,只是一种无奈的现象。我不是行业人士,不能断定这是不是事实,只能提供一些参考信息。

首先,大家猜猜一个完整独立的博客程序代码可以做多么小?wordpress3.8版本解压后占用空间是17.2M。而我了解到的王志勇的博客采用的是他自己开发的,以精简高效为主要目标的Arsue Blog,主程序在20K以内,核心程序在5K以内,Blog首页的主程序在1K左右。注意,两者体积单位是不同的,一个M级,一个是K级,相差一千倍!使用Arsue Blog搭建的博客即便用的是价格低廉的虚拟主机,也能达到运行如飞一样的速度。

以下就是从果壳网上摘来的行业人士的观点

再牛逼的软件,里面也必然有新手/毕业生/实习生贡献的代码,并且是极烂,极不稳定的代码。包括你现在用的微软操作系统,苹果播放器,谷歌浏览器……有人说谷歌对于合入代码控制极为严格,没错,但是仍然有新手合入的烂代码,谷歌曾经吐槽过这样一件事:C语言的创始人曾经被谷歌招聘成为员工,但在入职三个月后仍然没有合入代码的权限,真实原因其实是因为各种流程没有走完,但被外界吐槽的是这样的牛人都不让写代码,同时谷歌还是混入了大量的低质量代码。

Java的创始人SUN公司曾经有一次组织了大量人力物力对所有Java代码使用静态工具检查并消除所有lint告警和错误,这被他们当作一件极其大的成就来宣传。

通常大公司里对于代码的态度是这样的:只要这段代码通过了所有测试并且已经入库,那么,除非有一个能说服所有人,包括项目经理,架构师,测试部,市场部等等的理由,那么就不允许再被修改。而这个理由通常是没有的。而且越是大公司越对这条规定执行的严格,微软的一个前高级官员曾经还特地挑出来一段烂代码自曝家丑。另一方面,越是编程高手越喜欢蔑视编程规则,写出一些炫技的代码,这也造成了一些低质量代码混入

以前微软的源代码曾经泄漏过,里面的注释里,满满的都是程序员面对烂代码的吐槽啊。

有一段时间我还在想恐怕Linux是唯一的神话了,后来我发现在某种意义上是的,Linux会在烂代码之前注释说:这段代码很烂,不要学。

之所以Linux会容忍烂代码混入版本,是因为他们懒得写,然后一些大公司就乘虚而入了。

我知道可能很多人会觉得这没什么,可是对于一个将苹果谷歌Linux奉为心目中的圣地的程序员来说这简直就是精神支柱的幻灭啊!!!

 

然后,我也了解过一些老鸟对菜鸟的忠告,其中一条是

避开重写一切的诱惑

尽可能多的重用代码是最好的选择,无论代码是多么的丑陋,毕竟它已经被测试过了,也被审查过了

抛弃旧代码——尤其是存在于产品中的代码——也意味着抛弃了经年累月测试并实战过的代码,以及你还未知晓的周边代码和bug补丁。这会浪费大量的时间、精力和多年积累下来的知识

 

最后我明白了为何近些年很多大公司的软件更新版本越来越快,其实都是小修小补,鲜见有什么脱胎换骨的彻底变革。原因恐怕就如上所说,没有什么人敢动那些身经百战的老代码,即便效率它们再怎么低下,逻辑有再多的问题,只要硬件能跟上,在当今时代的高性能机子能跑得顺,那就不会有人考虑给它精简了。

觉得好可以点个赞!
(暂无人赞)
Loading...

小站增加邮件订阅及文章评分功能

年底考完试后,近段时间比较充裕了,昨天又折腾了一下,给小站弄了一个邮件订阅功能。至此,除了直接访问、订阅RSS之外,各位朋友又多了一个可以关注本小站的方式,即在右边栏对应位置填写邮箱地址并接收点击确认邮件,往后山哥更新的文章会如同报刊一样,定期发送至各位看官的邮箱,而且还是全文并附带相关文章亲自送上门的哦!

邮件订阅截图
邮件订阅截图

亲测之后,发现这文章能自动送上门的感觉很不错,想交流看法的,直接回信给山哥就好,因为发信地址也是我山哥本人的账号。私底下邮件交流,可尽情碰撞思想火花而不必顾忌什么。想公开表示观点的,还得点一下这“阅读原文”传送回来才行,在山哥的博客上,大伙发表言论就得谨慎一点~~~!

折腾第二件事,是将文章打分的模块换一下位置,话说这打分功能上线有好几天了,之前是在无觅相关文章的下面,很不显眼。昨晚将它挪了一下位置放在了文章底部,无觅自带的什么赞呀,喜欢之类按钮也去掉了,都是重复的功能,能用自己最好。

之前我有仔细考量过是否真的需要这评分,因为独立博客是不能,也不应该被读者牵着鼻子走。聪明的博主,不论别人是否喜欢,都会照着自己思路、想法、风格写博,这大原则明确之后,我不介意多一种与各位看官互动的方式,都只是交流看法的地方,打分评分什么的彼此都不用太在意,点点鼠标,权当消遣娱乐好了!

觉得好可以点个赞!
(1个赞)
Loading...