Performance 创建Web应用程序的体系结构最重要的是什么?可扩展性、可维护性还是性能?

Performance 创建Web应用程序的体系结构最重要的是什么?可扩展性、可维护性还是性能?,performance,web-applications,scalability,maintainability,web-architecture,Performance,Web Applications,Scalability,Maintainability,Web Architecture,我目前正打算重新设计一个运行中的、专用的德语社交网络web应用程序。目前的版本是如此混乱,我们决定从头开始。我不想再次遇到所有的问题,所以我一直在思考和阅读很多关于: 可伸缩性 代码的可维护性 演出 对于我们系统的体系结构,我将使用与上述含义相同的重要性顺序: 可扩展性>>可维护性>>性能 这些结果让我有些惊讶,因为我一直认为性能是创建可伸缩系统的关键 你对这三个因素的重要性有什么看法 我还认为,为了实现这些目标,需要事先进行仔细的规划和设计。你还有什么其他必须要有的建议吗 可伸缩性与性能不同

我目前正打算重新设计一个运行中的、专用的德语社交网络web应用程序。目前的版本是如此混乱,我们决定从头开始。我不想再次遇到所有的问题,所以我一直在思考和阅读很多关于:

  • 可伸缩性
  • 代码的可维护性
  • 演出
  • 对于我们系统的体系结构,我将使用与上述含义相同的重要性顺序:

    可扩展性>>可维护性>>性能

    这些结果让我有些惊讶,因为我一直认为性能是创建可伸缩系统的关键

  • 你对这三个因素的重要性有什么看法
  • 我还认为,为了实现这些目标,需要事先进行仔细的规划和设计。你还有什么其他必须要有的建议吗

  • 可伸缩性与性能不同

    性能通常以单个请求执行的速度来衡量。在我的本地机器上,有一个用户在上面,我的请求通常非常快,10毫秒或以下。现在把它放在一个有50000个并发用户的面向外部的Internet服务器上,你将看不到任何接近这种速度的地方

    可伸缩性是总体性能——您能够支持大量并发请求,并且系统仍能在合理的时间内做出响应的程度。这可能是你最关心的问题,因为如果在任何给定时间只有少数用户可以使用社交网站,那么社交网站又有什么好处呢?您的用户增长也可能以指数形式结束,因此您需要能够轻松扩展到更多硬件(云中或本地数据中心)

    如果是一个社交网站,我会将这些项目排名如下:

    可扩展性>性能>维护

    我认为应该

    可维护性>>可扩展性>>性能

    可扩展性/性能 对我来说,可伸缩性是一种特殊的性能问题。性能还包括响应时间。但我认为可伸缩性和响应时间一样重要。尤其是对于社交网络。但在这个比较中,两者有点接近

    通常,如果出现性能问题,您最好处理这些问题。如果您试图针对未遇到的问题优化代码,很可能会浪费时间。您可以做的是模拟页面上的用户流量,以强制出现性能问题

    维修性
    对我来说最重要的是可维护性,因为它更昂贵。stackoverflow的博客上有一篇关于这个的帖子,但我现在找不到。如果您只需购买更好/更多的硬件并解决问题,性能问题基本上可以得到解决。硬件相对便宜,而且价格不断下降。真正昂贵的是程序员的编码时间。

    “任何软件公司都可能犯的一个最严重的战略错误:他们决定从头开始重写代码。”