前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈?
前两天又有小伙伴私信松哥,问题还是职业规划,Java 技术栈路线这种,实际上对于这一类问题我经常不太敢回答,每个人的情况都不太一样,而小伙伴也很少详细介绍自己的情况,大都是一两句话就把问题抛出来了,啥情况都不了解,就要指出一个方向,这实在是太难了。
因此今天我想从我学习 Spring Boot + Vue 这套技术栈的角度,来和大家聊一聊没有人指导,我是如何一步一步建立起自己的技术体系的。
线上大家看我经常写文章,线下我其实比较宅,跟人交流比较少,我也很少问别人职业规划或者技术规划这些问题,因为这种学什么的问题,我喜欢自己把握,我不太喜欢被别人牵着走。
Rome was not built in a day
,刚开始接触 Spring Boot + Vue 时,我甚至都没有一个明确的想法,只是觉得该学点什么,不能让时间浪费,没有告诉我 Spring Boot 要火了,也没有人告诉我 Vue 要超过 React 了,都是我自己一直在摸索摸索,一步一步,直到构建起这套技术大厦。
Spring Boot
先说说 Spring Boot 吧,三年前差不多也是这个时候,是我第一次接触 Spring Boot ,那个时候我的正式身份还是一名 Android 工程师,那段时间在研究 Android7 的源码,还写了一些博客:
但是那个时候 Android 的行情在慢慢下滑,而我刚毕业 1 年多,未来还有更加丰富的技术人生,我不愿意这么早就把技术栈定死,而且还定在一个行情日渐下滑的技术栈上。所以我打算学一点新的东西。
Python、Go、前端 和 Java 都是备选的方向,但是最终还是选择继续做 Java,有三个原因:
- 做 Java 当时可以在公司内部转岗,做 Python 或者 Go 的话,可能就得换工作了,技术栈切换,一切从头开始,当时心里还是没底,于是就选择继续做 Java
- 刚好大学的时候也有 JavaEE 的底子,重新捡起来 JavaEE 相关的技术点倒也不是啥难事
- 第三点也是最重要的一点,我一直希望能够独立接点私活,这样有一天赚钱能够不受工作地点的限制,基于这样的初衷,我一直希望走全栈的路线,用 Python 和 Go 虽然也可以做企业级应用,但是在目前的技术环境下,这并不算是主流方案,主流方案依然是 Java ,虽然它被被多人吐槽
基于以上三点,我决定还是走 Java 的方向吧。
2016 年那会,CSDN 几乎每个月送我一本技术图书,10 月份的图书我就和梦鸽美女要了一本 Spring Boot 相关的书,书到了之后,一直在忙各种事情没时间看,到了当年 12 月份的时候,公司安排我去深圳出差,出差的话,每天下班后时间就比较充裕了,于是我就带上了书,每天下班回到酒店,就开始搞 Spring Boot。
一开始我就发现这玩意相比我大学时候搞得 XML 配置的 SSM 太好用了,还是 SSM 那套东西,但是有了自动化配置,不用再去写让人头大的 XML 配置了,可以基于 Spring Boot 快速搞一个 SSM 应用出来。不过刚开始学的时候我还不知道 Spring Boot 在 Java 领域如此火爆,当我写了几篇博客之后,我发现每篇博客的阅读量都暴涨,远远高于其他博客的阅读,我隐隐约约感觉到这次稀里糊涂的技术栈切换,算是没走错路。
不过老实说,Spring Boot 技术栈其实不算难,都是 SSM 那一套东西,只是多了自动化配置(当然,Spring Boot 也有不少自己的东西,不过整体上基于 SSM 这点应该没啥争议),我刚开始搞 Spring Boot 的时候,有时候会有一些东西看的云里雾里,后来发现问题出在 Spring + SpringMVC 上,好几年不写 JavaEE,这些东西有一点点生疏了,后来又花了一些时间把 SSM 这些东西系统过了一遍,然后再去看 Spring Boot 就顺畅多了。
所以有一些小伙伴问松哥能不能跳过 SSM 直接学习 Spring Boot,这个我不建议,大家在 Spring Boot 中见到的很多神奇的自动化配置大部分都是基于 Spring 现有功能实现的,要是不懂实现原理,你会发现 Spring Boot 用得时候虽然好用,但是出了问题,你就束手无策了。
就这样,跳入了 Spring Boot 的坑里了。Spring Boot 学完没多久,工作上,马上要从 Android 切换到 JavaEE 了,亟需一个项目练练手,当时我的上司给我介绍了一个西藏大学的项目,我使用 Spring Boot+EasyUI 的技术栈花了不到一个礼拜做完了,从此就算是叩开了 JavaEE 的大门,那会是 2017 年。
当时前端选择 EasyUI 也是没办法,甲方催得紧,而我来不及搞其他的前端框架,当时只有 EasyUI 熟悉一些,不用花时间学,直接就能用,于是就选择了 EasyUI,但是 EasyUI 太丑了,所以在做完西藏大学的项目后,我就一直思量着再整一个专业的前端框架,这样以后再有私活,我就可以独立做出来一个好看的后端管理系统了。
就这样,在综合对比了 Vue、React 以及 Angular 之后,决定跳入 Vue 的坑。
Vue
前端其实还算接触的比较早,最早的 jQuery Mobile,PhoneGap 上大学的时候就玩过,我的第一本 NodeJS 的书是在 2013 年买的,那个时候 NodeJS 还算是一个比较新的事物。当我还是一名 Android 工程师的时候,我就玩过 React 和 ReactNative,RN 是当时比较流行的一个跨平台解决方案。但是在我比较这三个技术栈的时候,我发现 Vue 更加好用,生态也更加丰富,而且大有超过 React 的架势(当时 Vue 在 GitHub 上的 star 数还没超过 React),于是我就选择了 Vue。其实当时我心里想,大不了学完 Vue 再学 React,反正我才刚毕业两年多,没必要这么早就锁定技术栈停止学习。
Vue 的学习确实不费啥事,花了两三天时间刷了一遍官网,然后就开始做项目,但是要去深入学习,又是一个漫长的过程了。
Vue 有很多漂亮的 UI 库,像 ElementUI 等都算是做的比较好的,这些东西只要会用其中一个,其他的就可以手到擒来。
到 2018 年初,Spring Boot+Vue 技术栈基本上已经熟悉了,两个开源项目 V 部落(V 部落)和微人事(视频揭秘微人事项目实现过程)也受到小伙伴们的欢迎,常规的企业级应用可以一个人独立完成了,5 月份的时候,经朋友介绍,接了哈尔滨工程大学一位老师的项目,毫无疑问我就使用了最擅长的 Spring Boot+Vue 技术栈来做了,前后端都是自己做,没人扯皮,美滋滋。
再后来,就是写书(我的第一本书,被选作大学教材了!),业余继续搞点项目用 Spring Boot + Vue 来做,这些以前都和大家聊过我就不再多说了,业余接点项目来做这块倒是有一些经验,以后和小伙伴们细聊。
就这样,没有任何人的指引,我慢慢构建了 Spring Boot + Vue 这套技术体系,这个过程中,最大的学习经验就是要写博客,做笔记,写博客不仅仅是记录,也是总结提炼,在写的过程中,融入自己的思考,加深对技术的理解。 掌握了这套技术栈之后,我觉得我离全栈又更近了一步,离赚钱不受工作地点的限制这个目标也更近一步了。
结语
有前辈大佬的指引,你可能走得快,自己摸索,走的踏实。其实从我第一天自学 Java 开始,基本上都是一直在摸索。大学时候一个 BUG 折腾两三天才解决,但是一旦自己想明白解决了,以后类似的错误不会再犯,这是我的感受。
好了,一点点学习经验,和小伙伴们分享,要是觉得有启发,欢迎转发哦。
扫码关注松哥,公众号后台回复 2TB,获取松哥独家 超2TB 学习资源