Swish的App开发策略:托管服务还是自建框架?

App开发

数据处理

APP开发


浏览:1319 次

#数据库#数据库#后端#后台#后端#开发_策略#开发策略

本文编译自《应用开发杂志》对Swish App CTO Jeff Whelpley的采访:

原始地址:

1、 托管服务或自建框架:

对于一个App开发团队来说,最好在初始阶段尽可能多地选择托管服务,因为项目可能在成功之前任何时候都无法进行,而且会被扔进垃圾桶。在早期阶段,应考虑产品特性和用户体验。当他们变得成熟时,他们应该考虑升级托管服务(特优)或重组内部基础架构。

这主要是在以下两个方面之间的权衡:第一是雇佣工程师来协调托管服务的价格,第二是重建内部架构时对整个项目生产力的影响。

另一个值得考虑的问题是切换成本是否相对较低。一个简单的测试是您是否有信心在一个月内将现有项目从托管服务转换为自建框架。

当然,对于一个大型团队来说,建立自己的DevOps团队是非常有价值的。然而,对于一些需要快速实验的想法或项目,托管服务仍然是更好的选择。如上所述,项目可能会在任何时候失去订单前的努力。

使用开源技术:

开源技术可以在使用较低预算的同时提高团队效率。Jeff提到了Swish App更依赖的开源项目:

角度:构建现代WebApp

Ionic:快速构建移动App

2、 后端相关:

Swish使用的后端技术和数据库引擎:

MongoDB:我们的记录系统

在最初阶段,MongoDB被使用,并决定尽可能多地使用JavaScript。MongoDB接口对JavaScript相对友好。后来,以下两种技术被用于解决MongoDB无法很好解决的一些问题:(PS:Studio 3T-IDE*for MongoDB with GUI**)

ElasticSearch:用于搜索查询

Firebase:用于实时数据同步

选择数据库的一些建议:

表演

可靠性

员工的大力支持

如上所述,在选择数据库服务时需要考虑转换成本。Whelpley的经验是将一个数据库作为服务提供商试用一周,然后切换到另一个服务提供商。通过这种方式,我们可以检查数据库是否具有较低的切换成本。

3、 项目开发中的一些经验教训:

1.将程序分成模块,并始终使其易于更换或丢弃

在一开始构建架构时,您可能会想得太多,随着项目的更新和迭代,模块可能会被认为是不合适的。因此,在构建模块时,我们总是认为它们是临时的,并且它们可能在不久的将来随时被替换或禁用。然而,有必要确保高质量的编码标准,最大限度地减少内部依赖性,并使未来的解耦更容易。

2.精益数据分析方法

Jeff的团队在开发过程中遵循精益数据分析方法。这种方法最重要的原则之一是尽可能避免构建软件。

每当有人提出可以改进产品的假设时,该假设就会在投入生产前进行测试。

这样,对代码的每一次更改都基于目标。变更后,对其进行测量和评估,在缩短迭代周期的同时提高团队效率。

在实践方面,Jeff的团队每天发布测试版,供一些用户使用,并获得反馈,以验证这些测试项目是否正确,用户是否真正需要。

3.改变为自建架构以改进后台数据处理的压力***此翻译可能有争议

杰夫提到,Swish App的大部分数据处理压力都集中在后台。根据上述关于托管服务和自建架构的分析逻辑(第一部分),Jeff最近专注于从托管服务提供商转换为使用Firebase构建自用系统,以改进后台数据的计算。

缩写:

*IDE-独立开发环境

**GUI-图形用户界面