• 保存到桌面加入收藏设为首页
服务器技术

为了5分钱把程序搞的面目全非,这划得来吗?

时间:2016-07-05 10:40:06   作者:老谭   来源:IDCSPED   阅读:5879   评论:0
内容摘要:Oren Eini曾发表博文《You saved 5 cents, and your code is not readable, congrats!》,在文中他表示有人提出过长的变量命名会导致大量硬盘空间的浪费,建议缩短命名名称长短,这样会带来很大的节省。他认为为了5分钱把程序搞的面目全非,这很划不来。外刊IT评论对本...

Oren Eini曾发表博文《You saved 5 cents, and your code is not readable, congrats!》,在文中他表示有人提出过长的变量命名会导致大量硬盘空间的浪费,建议缩短命名名称长短,这样会带来很大的节省。他认为为了5分钱把程序搞的面目全非,这很划不来。外刊IT评论对本文进行了翻译,全文如下:

我无意间看到一篇文章,里面有些观点,读来让我想哭:

MySQL里的命名都有点长,带有描述性,例如timeAdded或valueCached。对于不多的数据来说,每行只会多占用几个字节,但当你有1亿行时,每行用100个字节存字段名,这样一下子就白白用掉了你的硬盘的大量空间。仅仅是字段名就用掉了100 * 10,000,000 = ~900MB!

如果我们把名称减到2-3个字符,这也许会使代码变得有点难懂,但节省下来的硬盘却是物有所值的。使用一些简炼的名称看起来也不是那么糟,例如 timeAdded -> tA。每行节约15个字节,那么一亿行就意味着只从名称上就能省大约140MB,——一个很大的节省。

让我们花几秒钟做道算术题,好吗?

一个2TB的硬盘目前价值120美元。根据我的数学知识,我得出:

1 TB = 60 美元

1 GB = 0.058 美元

换句话说,他们说的这很大的节省是多少呢?5分钱!

那么,让我们来做另外的一道算术题吧。

一个程序员每年的劳力成本大概是75,000美元。

(52 周 – 2 周假期) x 40 工时 = 2,000 工时每年。

75,000 / 2,000 = 37.5 美元 / 小时

37.5 / 60 分钟 = 62 美分每分钟。

换句话说,假设这个改变要花费一分钟的程序员的时间,那整个的节省还不及消耗的。

而且肯定花费的时间不止一分钟。

有些人指出实际的服务器磁盘空间要更贵一些。当然,你说的没错。我只是在简单的说明一个问题。即使假设按你说的价格再高出2个数量级,那也只有5美元。难道你要对我说省下这一杯咖啡的钱很有意义吗?

有人指出MongoDB为了提高效率,把整个数据都加载到了内存里了。这篇文章谈论的是磁盘空间,可没说到内存,但即使这样,那也没关系。因为 MongoDB只是把索引放到了内存里,但我想(推测的)每行索引里并不需要存储字段名。如果它真的存了,我想它们的实现方式里肯定有严重的错误。

原文链接:You saved 5 cents, and your code is not readable, congrats!

译文链接:http://www.aqee.net/2010/11/11/you-saved-5-cents-and-your-code-is-not-readable/


IDCsped 提供最新的IT互联网资讯,本着分享传播的宗旨,我们希望能帮助更多人了解需要的信息!

部分文章转载自互联网、部分是IDCsped原创文章,如果转载,请注明出处:www.idcsped.com !
微信号:13430280788  欢迎加微信交流!

标签:服务器  程序员  数量级  算术题  文章  
相关评论

销售电话:13430280788

Copyright © 2012-2017 | www.idcsped.com 版权所有

  粤公网安备 44010502001126号  粤ICP备12006439号-1