gpt4 book ai didi

language-agnostic - 什么是有据可查,稳定,安全和可扩展的Web应用程序框架?

转载 作者:行者123 更新时间:2023-12-04 13:30:07 25 4
gpt4 key购买 nike

我们正在为我们的公司构建一个RESTful API,它将提供XML,JSON和可能的其他内容类型。

我的团队正在寻找一个框架(按优先顺序排列):

  • 有据可查
  • 理想的情况下,它具有出色的教程以及繁荣的社区和知识库
  • 遵循合理的设计模式
  • 通常,我们希望框架保持一致性。命名约定不会根据您所调用的方法而改变。
  • 安全
  • 专注于强制开发人员对GET,POST,PUT和DELETE变量执行某种形式的验证
  • 马able
  • 在某种程度上来说,这是成熟度,即框架不会经常更改
  • 另一部分是一个有据可查的错误列表,它并不是很大的
  • 可扩展/性能导向
  • 我们在全局范围内有超过5万名用户,它们需要很高的可用性。如果我们的应用程序出现故障,则人们家中将没有互联网。因此,这是一个非常关键的环境。
  • 理想情况下,我们可以在10台服务器上启动相同的代码库,而只需不断添加负载均衡器即可。我们不需要定义哪个服务器在哪个方法上。...
  • 与Linux/MySQL环境良好集成
  • 我们没有单个MS服务器。我们没有改变。抱歉.Net粉丝:-D

  • 我意识到这是一个模糊的目标。不会有任何一个框架可以满足所有这些需求,实际上,可能会有许多框架以不同的方式,形状和形式满足它们。

    这是独立于语言的。我们已经有PHP的经验,但是我们也有一些开发人员一生从未编写过Web应用程序,因此学习Python或Ruby或Java是可以接受的。

    最佳答案

    我会在这里四处走动,并建议Ruby与 Sinatra一起使用。

    为什么?

  • Sinatra没有“很好的记录”,而是“很好的记录”。考虑到它比其他框架要简单得多,因此不需要太多的文档,并且由于它是基于Rack作为网络服务器构建的,因此与之共享一些通用文档。但是,您需要知道的是网站上的内容,而且语言写得很好,没有发现任何错误(IE,它们都是最新的)。

    您需要了解的大多数内容都在Sinatra BookReadmeFAQ中。尽管本书的工作正在进行中,但其内容非常准确和有用。而且,如果您仍然遇到问题,请访问IRC聊天室freenode.net#sinatra。
  • Sinatra可以在基于功能/路由的逻辑方法中使用,或通过重写Sinatra::Application对象来使用。您可以使用其中一种,将逻辑和方法拆分为多个文件,或者将其全部保存在一个文件中。全取决于你。
  • Sinatra本身就是安全的。您必须验证用户发送的所有变量,因为除了解析它们并将它们传递给您之外,Sinatra不在乎它的有效性。因此,您要么强制变量的有效性,要么后悔。 ;-)
  • Sinatra在过去四个月中没有改变很多,但是它确实进行了维护和较小的更新。另外,我还没有发现错误列表太大或没有威胁。实际上,已经有了构建我的应用程序所需的一切。
  • Sinatra不必与Passenger一起部署,但可以轻松地定制为快速定制。如果您使用Enterprise RubyThin之类的东西,则可以代理Nginix或LightHTTPd。如果您使用了两台服务器,则可以将其中一台作为主服务器(使用代理和多个线程),将第二台作为数据库服务器(使用MySQL和多个线程),然后松开它们。这样,任务可以分散在服务器之间。它会给您比我认为的乘客更多的控制权。 (更不用说更好的性能了。)

    我发现,与Rack,Mongrel或Thin的运行线程相比,Password(在Dreamhost上)提供的性能相对较差。也就是说,加载后,即使在那种环境下,应用程序也可以响应。如果可以预料的话,那么扩展应用程序就不会有问题,因为您只需要重新部署代码并重新启动线程即可,而Capistrano则无所不能。
  • Linux上的Ruby速度很快,而且实现起来也不成问题。带有Ruby的MySQL很容易,并且有几个非常好的ORM软件包可用,例如ActiveRecordSequel。 Sinatra不会让您选择自己讨厌的一种。

  • 除了回答您的问题外,我还有其他一些原因。
  • Sinatra学习曲线简单,很容易上手。由于Rack是较旧的版本,所以我遇到的最大问题是将其安装到Dreamhost服务器上,但是使用Rack的供应商版本,该问题就消失了。如果可以的话,我会用ActiveRecord重写Sinatra中最新的Rails项目,以便于自己进行维护。已经花了太多的精力。

    由于它的易用性和易学性,我发现自己在没有代码生成器的Sinatra中比在拥有所有代码生成器的Rails中效率更高。那是在说些什么。
  • Sinatra支持Rack中间件,因此可以灵活地使用它。
  • 如果要对IRC上Sinatra社区的帮助进行平均,我想说的是,他们比普通的Rails用户对框架的了解要多得多-只是粗略地比较。原因是新手和没有业务编程的人员更容易使用Rails。
  • Sinatra将支持Ruby 1.9。我仍然不能完全确定Sinatra当前对1.9有多少支持,但我确实知道他们最初在等待Rack。 As of April 25不再是问题,所以大概Sinatra已经为1.9做好了准备;我知道事实上1.9支持将在2009年中期推出,但我不知道会持续多久。

    假设您可以轻松地使Sinatra与Ruby 1.9一起工作(版本0.9.2已经支持Rack 1.0,并且通过Rack的代码中的代理1.9),在支持1.9的公开1.0之前,您在Ruby方面的性能将是出色的。即使您不能,Enterprise Ruby也会帮助您提高速度。
  • 关于language-agnostic - 什么是有据可查,稳定,安全和可扩展的Web应用程序框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893076/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com