个人开发者的后端语言及框架选择

10多年前我刚参加工作的时候,公司花了近千万收购了一家小公司,这家小公司的创始人后来也成为我们团队的头儿,平时经常跟我们一起在食堂吃饭,让我惊讶的是整个公司13个人就靠他一个人开发软件养活,除了主打的软件,他还在版本升级的间隙抽空开发一些小软件放在AppStore来获得一些收入,我就问他你怎么在这么多个软件来回开发,他告诉我不要什么东西都自己来做,浪费大量时间造轮子,一定要先看这个东西有没有参考的,有就直接拿来用,腾出更多的时间去做其他事,他的一番话对初出茅庐的我影响很大。

因此作为个人开发者选择一套适合自己的语言框架来做后台支撑还是非常重要的,我在这上面也折腾过很长时间,尝试过一堆方案

1. Java

我工作做后台开发主要是用Java+SSH框架,因此早期的时候自己的一些项目是用Java写的,曾经写过一个足球数据分析后台,虽然Java写起来爽,我也非常喜欢Java,但是对服务器要求高,配置稍微低点就容易OOM,对个人开发者来说成本稍微有点高,因为本身跑的业务量不够大,没必要弄太好的配置。

2. Scala

有段时间我去尝试了一下Scala+Play框架,没有感觉到太多的优势,而且Scala跟我不是太搭嘎,用了Kotlin之后,再也不想用Scala了,主要是Kotlin是我做iOS项目后直接能把Swift的代码复制到安卓工程下随便改改就能用,没有学习成本。

3. Golang

上面那个提到的足球数据分析项目,API部分我曾经闲的没事用Go+gin全部写了一遍,但是我对它的错误处理机制实在不适应,觉得需要太多时间耗在这上面不太划算。

4. Python

Python是我最喜欢的语言了,大多数情况我都是用来写桌面应用和蜘蛛,曾经也用DjangoFlask写过音乐管理和小程序后台,可能是我心里觉得它更适合写工具类应用和数据抓取分析软件,我有40万左右条足球历史比赛数据是Python写的蜘蛛抓取的,就不太想用它来写后台,不过对个人开发者来说Python还是很值得用的,部署调试都很方便。

5. JavaScript

现在很多人用NodeJS做全栈了,我工作的项目也有JS做的模块,我个人感觉来说很多地方用它还是很方便的,不过不太喜欢npm那一堆东西,也许很多人觉得很实用,我认为它太浪费个人时间了,很多时候你看到一个demo想跑起来看看,结果一大堆时间都是浪费在处理各种包的导入和配置上,此前一些APP上UI逻辑很复杂的部分我选择用这个来做,整体给我的感觉就是能做,但是效率不高,不是第一选择。

6. PHP

PHP我接触有20年了,但是我真不太会,2000年左右我接触到这门语言,但是仅停留在能看懂部分代码的水准,一直到2007年的夏天我学了一个月,那时候我的博客是asp搭建,后来换成了WordPress,然后我就改个主题和插件代码什么的,多多少少写了部分代码,前两年我做了一个简单的商品管理后台,用来导入京东和淘宝的商品很方便,还能随意插入页面,做出了相当于联盟SDK的效果,有特定的模板在某个页面希望插入商品只需要一个ID值即可,这个对某些做电商推广的来说挺好用的,不过我仅仅是用来练习了一下PHP+Slim,早期我自己写了个博客是用PHP+CodeIgniter,用起来也不错,腾讯小程序的后台demo也是CI写的。

综合起来我最后的选择是PHP,原因主要有以下几点:
1. 资源丰富,PHP可选的框架实在太多了,早些年都是人手一个框架,如今大家都偏向知名的开源框架,比如Laravel,这类框架成熟稳定,但是个人开发者选择Slim和CI这样的轻量级框架稍微好点,能减少工作量。
2. 开发调试方便,直接用code-server开发调试,分别部署一套线上和测试环境,这样出现问题方便解决,能直接在线跟踪调试,在任意地方都可以编码开发。
3. 部署方便,直接用GIT部署就行了,都不需要Jenkins一类的东西了,个人开发者没有太多的时间去测试,因此开发出来的东西稳定性会低很多,这时候通过GIT分支来部署相对比较安全,一旦出现问题切回稳定分支即可。

当然PHP也有缺点,就是安全性问题,早期除了ASP就是PHP组容易被SQL注入攻陷了,有人会整天翻阅一些框架的代码来寻找切入点,一旦出0day漏洞就很危险,平时需要多注意,自己有能力就加强防范,及时更新。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

 桂ICP备15001694号-3