我为什么成为了一个全栈开发者
没想过会变成全栈
作为一个写了七八年后端的程序员,一开始我从来没想过自己要成为一个全栈开发者,虽然我一直有去拓展自己的技术栈,但是还是聚焦在后端领域,工作中主要还是使用java,但是我自己平时还是非常喜欢用go和python来写一写小项目。然后也花了很多时间去深挖一些基础领域的知识,例如编译器和操作系统。一直没想过去点前端这课技能树,因为在公司上班不需要我在前端项目上做出任何贡献。
工作需要第一次用vue写项目
因为公司里需要我独立负责一个内部的运营系统,这个系统是一个电商部门的商品定价和上下架系统,需要帮助运营人员从大量的excel操作中解放出来。然后公司让我带着一个前端和后端小伙伴一起来开发这个项目,其中这个前端小伙伴是从其他组借过来的。
因为项目需求一直在变更,所以直到这个前端小伙伴的借用周期满了,我们还没上线,所以我只能硬着头皮来啃vue 和 elementui,好在vue上手起来不是很麻烦,所以基本上没有在前端上遇到特别难得问题。唯一就是代码的复用性可能一开始写的有点差,后面逐渐模仿一些开源框架的组件库,把一些业务组件包装成了组件之后,代码看上去就优雅不少。从这以后我慢慢就对前端有了兴趣,后面还自学了react。
参与前端的code review
在上海的最后一家公司里,我是一个后端的组长,但是直系boss应该是觉得我的技术栈比较全面,所以让我来组织部门内的code review,不仅是后端,前端也是我组织,所以我一开始还是有点不自信,因为在前端同事面前评价他们的代码,就有点像是在关公门前耍大刀,但是我还是骨气勇气去推进了这个事情,这中间我觉得我的收获非常大,因为我觉得编程,虽然在范式上前后端有差异,但是理念上其实共通的点非常多, 我会分享一些我的看法, 我也去倾听其他小伙伴的看法,这个过程提升非常大。
全栈能力给了我最快速的落地速度
22年9月回到武汉创业,到现在也过了将近1年半时间, 我越来越觉得前端的重要性。对于一个小团队而言,以前老生常谈的分布式、微服务、高并发、高可用之类的词汇,和创业基本搭不上边。创业就需要快速落地一个项目,这些“过度”的架构理念对于创业者来说都是包袱。所以我在创业之后写的后端项目基本都是单体为主,如果是java项目,我就直接springboot + mybatisplus,如果是go的项目,我就直接用 gin + gorm,python的话直接用 flask + sqlachemy。然后中间件我也会尽可能的少用,因为有部署成本,成本是一个创业者没办法忽视的问题,数据库上我尝试过用sqlite3,缓存直接就使用应用自身的内存来管理,然后直接通过ssh脚本或者用阿里云免费提供的docker registry来部署。
创业者一定有很多产品想法,对于我来说也一样,我总是认为,对于一个技术创业者来说,缺乏运营能力和市场能力是一大硬伤,但是技术创业者也有技术创业者的优势,比如说能够低成本并且快速的落地一个想法或者一个产品。那一个产品一定是包含前端和后端的。如果我作为一个创业者,并且我只会后端的话,那我得需要团队来协助我来完成某个想法,这样的话试错成本就会高很多,很多尝试性的想法其实就是拿到市场上去试错,有很大的概率项目刚上线就死掉了。所以我如果是个全栈开发者,我就能自己去落地一些想法,如果碰到了还不错的反馈,那我会把这个反馈再传递给团队。
next.js和vercel让大家做一个产品成本越来越低,next.js不仅拥有客户端能力,服务端能力也非常突出。vercel更是极大的提升了前端项目cicd的便利性。
作为我来说,自从学会了next.js之后,我会把一部分后端逻辑直接通过node来实现,通过http请求对接一个数据源,然后业务通过node写,再封装成模块提供给render环节来使用。比如我的这个博客系统,就是通过把notion作为数据源,剩下的部分全部都是通过next.js来实现的。
对全栈开发未来的一些思考
我加了一些独立开发者社群,线下也认识一些独立开发者朋友,独立开发者基本都是full stack,但是真正赚到钱的独立开发者很少很少。从我自己的认知来看,全栈开发者创业的优势并没有想象那么大,一个产品能够成功,除了coding,还需要做好多好多事情,而且都是程序员不一定擅长的事情。
从就业来看, 大公司一般也不需要全栈开发者,大公司更需要一个垂直发展的某些领域的专精者。全栈开发者在作出耀眼成果之前,很大概率会被认为是一个什么都会,但是什么都不精的一个状态。而且全栈能力在面试上的优势也不是很大,目前这个行业面试,更多是在考核极端情况下的问题解决能力,而不是考核你能解决多少常规问题。可能在一些小团队,全栈开发者才能体现出优势,可以在业务没那么繁多的情况下,能够为团队节约用人成本。
特别是这两年,行业需求普遍在收缩的情况下,除了AI领域,可能都不会有太多的机会传导到互联网或者it行业,AI确实有非常大的想象力,但是目前大厂还都是在卷大模型的阶段,能够结合的业务场景目前还不是非常多。但是我觉得全栈的机会在于一个新的科技真的普及的时候,过去的产品都百废待兴,拥有全栈能力能够在第一时间跟上科技的变革,快读落地适合新时代的产品。所以我相信全栈不会是一个错误答案,先等等,机会一定会来。