第7章 可扩展性
《奔跑吧,程序员》章节:第7章 可扩展性,宠文网网友提供全文无弹窗免费在线阅读。!
7.1 创业的扩展
本章会讨论在创业中需要考虑的两种可扩展性:第一种是对编码的实践过程进行扩展,以应对更多的开发人员、代码和复杂性的需求;第二种是扩展代码的性能,以应对更多的用户、流量和数据的需求。
创业的扩展和手动汽车换挡有点类似。太早扩展就像在汽车低速行驶时切换到高速挡:齿轮会越转越慢,可能还会彻底熄火;太晚扩展就像在低速挡上把油门一脚踩到底:发动机会承受巨大的压力,出现红灯告警,如果持续的时间太长,发动机会过热,根本不会达到最高速度。所以,为了能平缓前进,我们必须在合适的时间进行扩展和换挡。
有一件最重要的事情要先弄清楚:可扩展性不是一个布尔属性。我们不能说一种实践方法或者一个系统是可扩展的还是不可扩展的。我们最多能说的就是,在某些条件下,它在某些维度上可以扩展到什么程度。适用于10人小公司的可扩展性实践并不适用于千人的大公司;同样,将数据库扩展到每秒一百次查询和能够处理以吉字节为单位的数据的实践方式也无法适用于每秒一万次查询和以拍字节为单位的数据库。为了更快地前进,我们需要切换到完全不同的挡位上。
本章大部分重点都放在编码实践的扩展上,因为这一点在公司的早期就会非常重要,每一个创业公司概莫能外。它们就像汽车的低速挡:我们必须通过这些档位才能切换到高档位,比如性能的扩展。通常来说,只有在公司发展到后期,对用户有强大的吸引力时,性能问题才会对公司有所影响。