目前独立开发者这个话题聊得貌似比较火,目前我是一名创业者兼独立开发者,来谈谈我自己技术栈问题。

概览

当前独立开发者的领域应该大部分都集中在APP、小程序、H5开发这些方面,这些门槛比较低,只需要一个好的点子,基本就能很快变现。

这方面的开发,主要分为两个方面:

  • 前端 APP、H5、小程序、管理系统
  • 后端主要提供REST API服务

基本上独立开发者,就是全栈工程师了,包揽了前后端的所有开发,这就需要会多门语言,其实比在公司给别人打工要求会的更多;不过全栈工程师会尽量减少自己要学的东西,最好能一种语言吃遍天下,不过目前而言没有这么完美,但是尽量减少是没有问题的。

技术栈

REST API —— clojure

目前做的所有产品肯定是离不开服务端,需要对外提供api服务,这就需要会一门后端语言,目前我选择的是clojure,一门比较小众的语言。

他的一个优势就是他是lisp方言,不知道lisp的可以去自行搜索一下;虽然他还很年轻,但是他的lisp血液造就了用他来写任何系统都能够很快很优雅地实现;他的第二个优势就是他是基于JVM宿主机的语言,可以跟java进行无缝对接,也就是说java里面可用的库都可以在clojure里面进行调用,一个语言好不好用除了看他自身的语法,还需要看他的生态圈,虽然clojure年轻,但是他背靠java这棵大树,java经过了这么多年的发展已经拥有了一个很成熟的工业级的生态圈了,你需要的东西基本在这里面都可以找到对应的解决方案。

后台管理系统 —— clojurescript/clojure

后台管理系统基本也是绕不开的,一般的都是选择html+css+js配合react来实现,我这里选择的clojurescript,他跟clojure拥有同样的语法,只是最后代码编译成了js,有了它我就可以用lisp来写前端了,配合上clojurescript社区的reagent、re-frame写起来真的是很快很舒服。

此外,我是自己购买了一个后台管理的主题,然后把里面的样式剥离出来,然后配合上ant-design组件,基本就能实现一套很通用的后台管理系统了。

APP —— clojurescript

现在APP一般都是分为安卓、IOS两种,做安卓开发需要用到java,做ios开发需要用到OC、swift,我们不可能都去把这些语言学习一遍,虽说语言大同小异,因此最好能有一种跨平台的方案,一门语言打通这两个平台,这样既提高了产品的维护性,也节约了时间,最好这个平台能够利用我现有的语言,不要再去学习一门新的语言。

目前比较流行跨平台方案有两种:

  • react-native
  • flutter

最后我是选择了react-native,原因如下:

  1. 用js来开发APP
    react-native是用js来开发APP,这就意味着我可以用clojurescript来编写APP了,以另一种更优雅地语言来快速地实现创意;而flutter使用的是另一个dart语言,说实话看到了写的那段代码以后真的是忍不住想要吐槽,太丑了,跟cljs相比真的是无法忍受。

  2. 社区维护积极
    react native发展的时间比flutter长,相对而言更加成熟一点,而且目前Facebook目前也在加大投入,现在基本是处于一个react-native跟flutter博弈的阶段

  3. google的历史
    flutter是google出品的,目前flutter是比较火的,但是Google有过抛弃过技术的先例,不排除还会重蹈覆辙,持观望态度

  4. 性能
    这应该是很多人关心的,react-native中间毕竟多了一层js桥接,性能肯定会有损耗,但是从我的角度来看,这不是什么大问题:

    • 对于前期要快速构建产品然后用市场来验证的点子,性能上不算大问题,而且react-native的性能也不至于差到哪里去
    • facebook一直在努力优化性能,最近发布了全新JS引擎Hermes,根据目前的数据显示性能提升了一大截
    • 真的需要关注性能的时候说明你的产品得到了市场的认可,肯定是有了不错的收入,这时候可以考虑找人用原生的重写,一个人是肯定搞不定所有事情的,想都别想

小程序 —— taro

目前小程序比较火,用完即删,删完走人。各大平台都推出了相应的小程序:微信、支付宝、字节跳动、百度都,^_^是不是觉得又有很多东西要学了,这时候有个统一的框架得多好,于是乎有了taro。

引用taro简介上的一段话:

现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动小程序、H5、React-Native 等)运行的代码。

目前taro应该是在小程序领域做跨平台比较好的一个了,社区维护地也非常好,赞一个。

数据库

Postgresql

NOSQL

Redis

产品部署

现在有了各种云服务部署产品变得越来越方便了,我目前就是直接购买的阿里云,在上面买的数据库、服务器、负载均衡之类的,基本上想要的服务都有,维护、管理起来都很方便。

更新历史

  • 2019-07-20

    • 初稿