今年早些时候,我可以为现在担任CTO的初创公司选择框架。我可以选择任何东西。我和Rails一起去了。而且您也应该。它仍然是启动和运行以及持续迭代和开发的最佳框架。
编写网络应用程序需要很多工作。如果您使用诸如Spring,Node,Express或任何其他基本库之类的东西,则需要做出许多决定:
这些决定仅仅是开始。我曾经在仅使用库而不使用框架的网络应用程序上工作,所有这些决定以及其他所有决定都必须做出。在团队开始工作之前,必须做很多工作。但是随着时间的流逝和团队组成的变化,管理这些决定是一项持续的工作。
因为我们做出了这些决定并配置了库以特定的方式工作,所以开发人员想知道为什么要这样做并可以更改它并不罕见。这些决定中的许多决定都是无法用代码强制执行的约定,因此我们的代码检查中有很大一部分需要确保每个人都遵循约定。
然后,我们将更新我们的库,以发现它们突然不兼容。因为我们会手动选择图书馆来解决每个问题,所以除了确保我们的粘贴效果正常之外,我们无法保证它们都可以协同工作。很难看出导致该体系结构的一系列决策的价值。
使用Rails,您无需做出任何上述决定。没有。键入rails之后,将做出所有这些决定。确实,您还需要做出更多决策,但是Rails将消除大量最终毫无意义的决策。
JavaScript的打包方式,数据库的命名约定以及HTTP请求如何路由到代码都无所谓。您需要所有答案和约定,是的,但是实际约定并不重要。
您还需要在代码而不是文档中实施或管理的约定。这样,激励每个人专注于特定于其域的问题,而不是专注于应用程序。
自从15年前成立以来,这就是Rails的价值主张。那时,Rails及其生态系统已经成熟,完善并不断向前发展。 Rails带来的价值仍然是需要的,它仍然是大多数团队的最佳框架。
没有Rails经验的工程师可能会继续相信,Rails无法扩展或无法用于“严重”问题的幻想。我们那些拥有Rails经验的人都知道这不是事实。但是我们还担心的是,Rails应用程序可能变得难以维护。
希望很明显,没有框架或库集可以确保可维护性。我认为Rails会给您带来更好的机会。 Rails及其生态系统趋向于一起发展,因此您可以依靠多年来核心工具的稳定性。
约定中的Rails基础也意味着,随着时间的流逝,应用程序中很少有变得笨拙的部分。但是,团队仍需制定约定和利用约定的工作方式。就像任何一支球队一样。
那么,当团队停止做出毫无意义的决定,担心库的兼容性以及花费代码审查时间来遵守约定时,会发生什么?他们开始考虑需要解决的问题。这就是为什么Rails是大多数团队的最佳Web框架。