,译者 | 陈峻,策划 | 云昭,如今,程序员们可以选用多种编程语言,来创建在线平台、网站和应用程序。其中,在编程社区中,广受不同开发背景的人员所推崇的一种流行语言,便是React Native。它是由Facebook的JavaScript工具包所构建,适合为移动平台、而非Web,设计和创建独特的用户界面。目前,React Native已被广泛地运用在采用JavaScript的框架,并为iOS和Android平台构建移动应用的项目中。,可以说,该领域的开发者不但需要了解JavaScript和API服务、而且要能够构建前端的UI,维护跨平台的兼容性、以及整合基础架构与其他应用。下图展示了历年来,时下各种编程语言,在项目中被使用的占比分布。,,目前,适合React Native应用的数据库有:Async Storage、SQLite、Realm、以及PouchDB等。下面,我将和大家一起深入讨论各种数据库的特性和优缺点,并最终给出为React Native应用进行选择时的建议。,由C++开发的MMKV存储具有快速高效的特点,可方便您在React Native应用中快速地保存数据。同时,该数据库非常轻巧。它在Android上仅占50K空间,而在iOS上只有30K。如果被打包的话,其体积会更小。此外,MMKV不但支持redux-persist(持久化),而且允许用户保存任何形式(无论是否加密)的数据。,特征如下:,
,,由于可以使用动态映射到完整且专有的数据库引擎,基于SQLite的Realm能够处理各种原生的JavaScript对象,并在保持性能的同时,提供一套简单的API。同时,Realm允许开发者创建各种高级搜索、复杂的数据表示、以及在图表中的事物链接。,Realm在Android中属于轻量级数据库。与下文将讨论的SQLite相比,Realm不但使用的内存更少,而且在读写数据等常见操作上的速度更快。此外,它还具有极其丰富的功能集。,特征如下:,,作为C语言数据存储库的SQLite,在移动应用程序中,特别适用于离线应用。许多平台都以简便的设置方式,提供了开箱即用的SQLite支持。而作为最著名的免费Android开发数据库之一,它不但具有开源的显著特点,而且可以满足开发人员广泛的项目需求。,特征,,Firebase实时数据库是一个由Google支持的应用开发平台,可允许开发人员为iOS、Android和web创建各种应用。而作为一种基于云端的NoSQL数据库,Firebase可以通过提供分析跟踪、报告、应用问题修复、以及市场和产品实验功能(experimentation capabilities)等服务,在用户之间实现实时存储和数据同步。,特征,,在React Native和React的在线项目中,WatermelonDB提供了一种管理用户数据的新方法。它是专为创建复杂的React Native应用而设计的,且十分重视应用的实际性能。简单而言,由于Watermelon的架构与数据库无关,因此开发者可以横跨多个平台使用它,并能达到快速启动软件的效果。此外,作为一个高级数据管理层,Watermelon还可以根据平台的要求,连接到任何React原生的数据库层面上。,特征,,PouchDB是一个基于Apache CouchDB的开源JavaScript类型的数据库。它针对在浏览器中的各种使用场景进行了优化。PouchDB在浏览器中会使用IndexedDB和WebSQL在本地存储数据,并且持续实现本地和远程数据库的交互。据此,PouchDB可以帮助Web开发人员创建具有离线和在线等效功能的应用。也就是说,它允许应用在离线时,将数据保存在本地,而在应用重新上线后,再与CouchDB和其他兼容的服务器相同步,以确保用户的数据始终为最新。,特征,
,,Vasern是一种基于链接一致性的键-值存储式React Native数据存储系统。其目标是提供一个开源、且对开发人员友好的端到端数据库系统。而且,由于其数据引擎是从头开始创建的,因此Vasern提供了原生的性能。,特征,,一些小型组织往往会使用MySQL、MongoDB和DynamoDB等服务器端数据库,进行React Native的应用开发。三者的比较如下:,
,,开发人员在选择数据库之前需要考虑什么?,众所周知,在中小型软件运行的过程时,数据往往是被保存在变量之中的。不过,当程序重启时,变量则会因为恢复初始值,而导致数据的丢失。对此,我们需要数据库在能够起到很好的数据存储、保持、以及在程序重启后的持续检索等作用。通常,我们可以在为React Native应用选择数据库之前,考虑如下方面:,上述介绍的各种数据库分别有着自己的一组特性和优缺点。因此,在为React Native应用选择合适的数据库时,开发人员应当清楚地了解自己的项目目标和应用需求,通过试用、比较和深入研究,从中选择最符合要求的数据库。,原文链接:https://dzone.com/articles/how-developers-need-to-choose-the-right-database-f,陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。
© 版权声明
文章版权归作者所有,未经允许请勿转载。