完成胜过完美

最近反思系统的可扩展性设计,发现这块在大部分时间大部分场景都不是第一优先要考虑的,在大多数不确定的环境下,首要考虑的往往是实现,以最小成本快速的实现,然后在逐步优化迭代,最终可能会进化成完美的设计。

理想与现实总是有巨大的差距,技术人员都希望做完美的架构设计,但在实际工作中真能做到这样的少之又少,所以很多软件产品的生命周期都很短,国内很多公司的代码设计都被爆又各种问题,比如前段时间网传的腾讯、携程技术、代码上的各种问题。

对大部分程序员,工作的前几年就是代码的搬运工,只有你会用搜索和官方文档,加上一点自己的思考,就能做的很不错。后面再想在技术道路上进阶就要不断提升自己的优化能力,不断解决问题、积累可迁移的经验和能力,进而成为技术专家。

在当下的环境,比起功能上如何更好的扩展,性能的扩展更易被别人关注,有两个方向:

  • 纵向扩展:包括给服务器增加更多资源,例如内存 (RAM)、磁盘空间、处理器等。这在某些方案中具备实用价值,但经过特定时间点后就会发现,这种扩展费用高昂,不如借助横向扩展。

  • 横向扩展:在这个过程中会增加更多机器或额外的服务器实例/节点,这也叫做集群(Clustering),因为所有服务器是作为一个集体或集群一起运行的。

但具体在实施会遇到各种问题,是否能解决问题就是一个人能力水平的最好体现。 

猜你喜欢

转载自www.cnblogs.com/doit8791/p/10777590.html