点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
作者丨Alexander Stigsen
翻译丨lloog
译者注:作者通过介绍Realm移动平台,引出无服务器开发模式的优点,解释无服务器架构为什么适合移动开发。
当我们将旧版服务器堆栈取消时,构建移动应用程序将变得无限简单
当我们谈到构建移动应用时,我们真正的意思是构建与服务器技术交互的移动应用。这就意味着要与一个被设计为与以太网电缆连接的桌面计算机的世界进行交互。尽管世界已经超越了大屏幕和有线连接,但移动开发者还是不得不接受无休止的妥协,以获得他们想要的体验。
要交付有用的服务器端代码,您需要大量新颖的、特定领域的技能。当开发人员构建一个应用程序并将其连接到服务器时,数据并不会神奇地开始流入有用的列和行。在发出第一个请求之前,您必须部署和管理这些服务器。而devops让这种可能性变得更加容易,但它们占用很多时间。
接下来,你的服务器必须从请求中获取的任何格式(可能是JSON)数据进行序列化,然后必须将其存储在通常理解为SQL的数据库中,然后必须对该数据执行业务逻辑。 它将以服务器端语言完成所有这些操作,当然这与用于编写移动应用程序的Swift或Android Java不同。
一个简单的移动应用程序突然需要一个复杂的服务器端团队,而大部分的工作只是为了让你的堆栈移动和服务器之间的相互交流。 我们有移动应用程序和移动开发团队,他们必须很好地与服务器端堆栈和使用在移动前世界建立的技术的团队进行良好的合作。
简化服务器
现在有一个更好的方式,一种称为无服务器开发的新兴模式 ,在Realm,我们一直努力把这种模式带给移动开发人员。 无服务器架构旨在抽象出所有服务器端开发需要的基础设施和框架,从而,开发者只需要将注意力集中于:编写能够满足需求的,以及随时响应数据更改的代码。
服务器还在,但是所有的工作都已经消失了。
这是Realm移动平台的背后理念。因为Realm对象服务器是与Realm移动数据库一起工作的对象同步和事件处理服务器。它只要对数据模型或控制器进行最小的更改,便可以在设备之间无缝自动地将数据保持同步。
由于Realm对象服务器自动处理设备之间的数据同步,您可以直接进入Realm仪表板,创建一个新的Realm函数,然后开始编写JavaScript,以响应客户端应用程序生成的变化数据。
这与正常的服务器端开发有什么不同呢?作为一名移动开发人员,您即使没有掌握服务器端开发知识,也可以有效地开展工作。不需要考虑如何让服务器运行,也不需要考虑如何将数据传输到服务器,你不需要做devops,也不需要学习如何处理Postgres和Redis以及其他复杂的应用程序所需要的服务器端技术。
开发者不必学习一种全新的语言和框架,比如Django或Rails,只需要写一些JavaScript,而平台则负责我们所有使用框架的管道。该平台不需要处理中间件和URL路由,而是按照预期的格式获取所需的数据。您只需直接处理传入的数据,而不是构建基于rest的端点并将请求指向它们。
我过去编写Django应用程序时,常常将数据发送到新视图,结果需要用到四到五个文件中的几十行代码。 相比之下,无服务器的Realm函数中的JavaScript代码只包含重要的部分,你按下运行按钮后便立即开始运行。
专注于应用程序
你最终也会写很多不那么移动的代码。与其在你的移动应用程序中编写网络和序列化代码,你所要做的就是你所创建的模型和数据。因为这个平台可以处理同步,所以你可以专注于应用代码,这将会让你的应用变得很好,而不是为了让你的应用程序工作而需要的代码。您可以从以前编写的那些用于与rest式的API进行交互、占用您剩余的时间的脆弱的代码中解脱出来。
使用无服务器架构,您不再需要专门的devops和服务器团队。您不再需要知道服务器端框架, 只需要了解一点点JavaScript就足够了。而且,您甚至不需要编写与服务器通信所需的所有代码,因为该平台的设计初衷是为了避免此类工作。
Realm移动平台是一个将移动用例放在首位的无服务器平台。数据同步是优秀移动应用程序的基础(无论是显示你的Uber驾驶员的位置还是Facebook上的家人最新的图片)。服务器端编码也是必需的,但不是编写所有在移动应用程序之间连接和共享数据的样板代码。你可以专注于现在服务器上编写的代码,而无需学习超过javascript外的东西。
移动应用程序应该尽可能做到快速移动。像实时协作、双向数据同步、端点计算和“脱机优先”这样的特性通常都是昂贵且难以构建的。通过采用无服务器、移动优先的方式,开发人员可以拥有利用Realm功能来构建下一代的能力,而这只是我们用来构建的应用搭建舞台的一小部分资源。现在,我们可以开始工作,建设未来。