规划可扩展Web应用程序开发

时间:2009-05-16 21:15:57

标签: scalability scaling web-applications

在开始开发可扩展的Web应用程序之前,应该考虑哪些语言,框架和托管注意事项?

5 个答案:

答案 0 :(得分:12)

最重要的考虑因素不是过度设计,以至于它妨碍了构建和发布某些东西。分析瘫痪是生产力,进步和结果的最大抑制因素。

是的,做一些计划。选择一个框架。在框架中的完美是不可能找到的,因为它不存在,部分是因为在构建它之前你不知道你需要什么。如果你选择一些东西,那么机会就会好于什么都没有。

是的,尝试选择灵活,互操作的工具,以便您自己去哪里。

是的,寻找一个好的内置功能集,您可以在接下来的6-18个月内看到自己的情况。试图超越这一点并不是真的很现实,因为大多数项目都会在第一次发布时发生变化。

所以,选择你熟悉的或熟悉的东西。不要跟随人群,做什么能让你获得最好的结果,最快,最经常。了解您将来可能需要更改。因此,无论您现在构建什么,尝试使用单元测试,以便在需要时重新考虑因素。

如果你正在建造的东西将会取得超级成功,那么这将是一个很大的问题,一旦它赚钱就很容易就能解决,因为你将能够得到其他人才来帮助你。

分享您最终采摘的内容以及您的情况原因 - 这也有助于我们向您学习!

答案 1 :(得分:3)

不一定要将自己嫁给一种语言或框架。可能是您的网站的某些部分使用不同的语言和框架比其他部分更好地工作。例如,37signals的所有站点都基于Ruby on Rails,但是他们最近写了一篇关于如何使用Erlang实际编写的基础技术的博客文章,因为以这种方式更容易进行并发。

显然有一定程度的复杂性,事情变成混乱,但使用正确的工具 - 即使这意味着不同工具的不同工具 - 可以简化事情。

答案 2 :(得分:2)

首先是语言,它在很大程度上并不重要。 PHP,Java和.Net可能是最大的三个都被证明是因为他们在网络上运行一些最大的网站所以不要听任何告诉你一个人比其他人更适合的人。

有些人也可能将Ruby和Django / Python放在这个列表中。我没有反对他们,但我不知道有任何大的(比如前50名)网站使用它们。

托管注意事项取决于您想要启动的程度,但基本上顺序是:

  1. 共享;
  2. 虚拟专用服务器;
  3. 专用。
  4. 可扩展性主要取决于您的应用程序的设计,而不是任何语言,框架或提供程序。高效的数据库模式,高效的交付和使用Javascript / CSS以及内存中缓存都是任何语言或框架的共同问题。

答案 3 :(得分:1)

语言 - 我建议使用优秀的框架和优秀的测试库,如Perl或Java。

框架 - 这取决于您打算做什么。如果您从不允许FastCGI的托管开始,最好避免使用像Catalyst或Rails这样的框架。这就是为什么我喜欢CGI :: Application(主要是Perl,但也移植到其他语言) - 它可以作为CGI,FastCGI或mod_perl运行。对于开发,它可以从它自己的Web服务器运行。

托管 - 没有什么比你自己的服务器更好。它可以是您自己的服务器,租用的服务器或虚拟服务器。但是你可以从最便宜的托管开始,当你需要更多时,你应该能够负担得起。

答案 4 :(得分:0)

取决于。

首先查看您的要求(功能或用户定义)(非功能性 - 描述您所需系统的方面link text

接下来,我将阐明拥有可扩展的Web应用程序意味着什么。将其定义为可以明确测试的测试用例(必须支持X页面视图/秒,响应时间

一旦我掌握了这些部分,我就会看看我的开发团队可以支持哪种类型的技能(对于初始项目和正在进行的维护)。然后在野外找到一些使用类似语言或框架的应用案例研究。如果其他人已经制定了特定的语言/框架规模,那么你也可能做得很好。

最后,请寻找支持您所选语言,框架和要求的托管服务提供商。