先说一下,我公司目前使用的技术栈。
语言层:nodejs
数据库:mongodb
缓存层:redis
框架层:eggjs
ORM层:mongoose
日志层:egg-logger
定时任务:eggjs cron
消息队列:beanstalkd
小程序框架:wepy
前端框架:vuejs layui bootstrap jquery
其它周边的包大部分都是从 npm 上找的,基本上应有尽有。
可能朋友们要问了,为什么没有 php ?下面我给大家解释一下。
首先,php 最受推崇的模式是 lnmp ,即linux+nginx+mysql+php,常用的莫过于 php-fpm,但是做过深入 fpm 性能优化的同学应该知道,mysql 和 redis 连接数非常有限,事实上进行性能升级和横向扩容的时候,保持一个的连接池才能让系统很好的扩容,而刚好 fpm 只支持短连接,也就是说我们无法通过加机器来解决 fpm 应用高并发的场景。
其次,为何没有选择 swoole 这种异步解决方案?对我而言,swoole 技术栈不够丰富,周边的文档缺乏和技术不成熟是我不考虑它的主要理由,技术实现上感觉跟 nodejs 类似,但由于 nodejs 本身稳健的生态和跟前端的融洽度,最终导致 swoole 落选。
另外,为何不选择 golang ,理由更加简单,golang 生态不完善,可以引用的外部包稀缺创业公司最忌讳重复造轮子,因为时间奇缺啊。其实我在2018年年中有一段时间写爬虫都是用的 golang,只是后来发现它能做的事情,nodejs 都能做,所以后面停用了。
说在最后。
猿哥用了php 9年,个中情感肯定比大部分 phper 深,但是新技术和新工具如雨后春笋一样出现,秉着求思进取的态度,不断探索和发现,最终找到最适合自己的一片乐土,那才是一件幸福事情。
领取专属 10元无门槛券
私享最新 技术干货