有时候很想自己设计一些应用出来,但是往往都要考虑服务器成本啊,应用市场上架成本啊 等等,一想到这些都是要花钱的,就会顿时觉得写应用没那么容易了。这里我总结一下我自 己分析出来降低成本的思路。

1. 尽可能客户端运算力

前两天跟禅师聊天,说到早起怎么样低成本写一个应用来验证或推广我们的产品想法,我说 到最低成本的方式是不需要服务器,把逻辑都放到客户端上实现,先做成单机版,等算法成 熟了以后再做成SaaS版都可以。所以之这里就提炼出一个观点:

运用客户端的运算力来实现功能,降低服务器成本

现在客户端/前端的开发体系以及交互体验都很成熟了,不管你是写原生的还是web的(利用 electron)最终都可以开发出重客户端轻服务端的应用,很多时候服务端只需要提供 restful api即可满足联网的需求。而服务端成本减低到极致的情况,就是纯客户端

2. 利用免费服务来辅助开发

现在像github这类网站,除了代码托管以外,像二进制仓库,还有构建资源等都逐步开始免 费了,还有Github Pages,帮你做静态网站的hosting,这些都应该利用起来存放自己的开 发产物。

另外,可能还有很多互联网服务在推广期的时候会有白菜价般的优惠,目标是通过补贴培养 市场,对于个人开发者来说,可以利用这些补贴来给自己省钱。当然,这里也有一些不确定 的风险在,有可能你越来越依赖这个服务的时候,公司倒闭了,你就要得面对迁移数据的麻 烦了。

举个例子:cloudflare-worker

这里提供了一个免费的V8环境,同时每天有一定的免费额度,是不是就可以用来做一些自动 构建或者爬虫的工作了呢?

3. 自动化流程降低的开发成本

个人开发最重要的是提高自己的开发效率,总结开发效率的影响因素有:

  • 网络带宽和延时
  • 个人电脑的性能
  • 工作场景的来回切换损耗的等待时间
  • 重复的人工工作

我们在这个时代有DevOps这样的最佳实践了,尤其是有了docker以后,有很多非常省时的做 法:

  • 利用docker部署服务。当你需要用某个服务的时候,不要花时间装软件了,直接下个 docker镜像在本地跑起来即刻
  • 流水线构建。从你提交代码开始,就自动触发构建,最终生成可部署用的软件包,甚至帮 你部署到测试/预览环境上。
  • 自动化测试。你的产物需要有质量报告,利用好自动化测试,则等于有个测试来帮你完成 这些工作。你需要做的是写对测试用例,它可以帮你省下反复回归的时间。

4. 应用市场决定的分发成本

众所周知,Apple的开发者都需要付年费$99美元才可以上架应用,但其实还可以考虑其他的 分发平台(如果你的目标平台不是Mac的话)。比如Windows的应用市场,上架才$19美元, 比苹果的要便宜很多,当然也是因为其应用市场的竞争力不如苹果;还有Ubuntu也在推自己 的Snapcraft分发平台,貌似还可以支持Win/Linux/OSX的多平台分发,有空可以了解下。