原文来自Quora:Why do companies like Facebook and Uber need so many developers?
先别冲动看下问题:
facebook就是几个网页,uber就是一个小app。我感觉10个普通程序员不到一年就能copy一个facebook或者uber。虽然他们服务着这么多用户挺不容易,有一些程序员我也能理解。但是不懂为什么要有几千个程序员?facebook最近也没出什么大功能,都是一些小改动。
来自Uber的一位工程师的回答
最简单的一次技术使用(在谷歌上的一次搜索,用uber叫一次车)背后都有一个非常庞大的系统来隐藏复杂让用户在使用时觉得简单。必须解决非常多的问题才能打造一个可靠的系统:可以负载大量的请求,处理复杂的操作,并且管理大量的数据。
在uber我们花了大量的时间精力提高系统的容错能力(fault tolerant),我们绝不接受我们的服务器挂掉。后台系统如果出了问题,意味着有些人打不到车无法回家,也意味着一些司机接不到单赚不到钱养家。
来自Uber的另一位工程师的回答
我就说一个方面证明fb不只是几个网页而已:图片存储系统。
fb几年前在一篇报告里提到:『超过2500亿张照片已经上传到facebook,平均每天有超过3.5亿张照片』。这些图片需要被储存,裁剪尺寸,做索引用于搜索。这些工程上所面临的挑战和做几个网页是完全不同的。
不仅仅是存储上传的图片,也要立即响应成千上万的用户同时请求这些图片。然而,图片只是facebook上这个平台上的一个小部分。
如果10个程序员就能copy一个facebook,facebook每天赚这么多钱,那为什么现在只有一个facebook?
事实是fb为了创建这个平台在很多方面都做了创新:他们有很多的开源项目,无论是软件还是硬件。有一些项目已经是业内实现的最好的--这些发生在这家公司成立的很短的时间内(和这个行业相比fb的历史并不长)。打造一个能稳定运行的为数十亿人服务的系统不是几个人在短时间内可以完成的。
欢迎关注我的微博:@没故事的卓同学