独立开发者最重要的事情就是做选择。相比于团队可以分摊任务,个人则必须决定把时间和精力主要放在哪里。我们可以精通客户端的开发,也可以专注于用户体验,但必然无法在每一个部分都亲力亲为。为了尽可能的提高效率,功能的复用性和通用性就变得尤为重要。

从单一的功能模块提取(支付系统,用户系统),到现在建立统一的中台架构。这个过程完全是自然推动的。

阶段性交付了一个小项目,今天得空捉摸自己的产品,写模块划分时又想到这个主题。

统计分析&异常监控,原生开发里有不少第三方在做,主要的几个也有了 Flutter 插件,而且还有开源独立部署的选择。为啥还要考虑自研呢?商业化的考虑归商业,对技术的追求归技术,两者应该共存而不是过于偏颇。到底偏向哪一方,由现实中遇到的实际问题来决定。

目前的主要问题在于:1、不希望第三方 SDK 申请涉及用户隐私的权限;2、想得到的数据比较个性化,接入第三方依然需要大量配置。

在这个一切上云的时代,BaaS 对客户端工程师实在是过于友好。能够低成本建立一个完整的产品,不用忙碌于后端运维。加上全自动的负载均衡和灾备扩容,让人能省下大把的精力时间来专注于业务。

然而,即使成本再小,服务端的开发也是必备的。就算数据库完全不用管,总得写监控一下每日的关键流量吧?对开发人员特别友好的,有 Bmob 和 LeanCloud 之类,集成了很多实用的功能,非常方便。而自定义程度更高,相对更需要底层设计的阿里云,腾讯云之类,就容易满足一些复杂的场景。

出于成本和效率上的原因,经过重重考证后,我在一个新项目上完全迁移到了腾讯云。此次简单用户系统的搭建,是对其云开发产品的具体实践。