下午贪嘴喝了瓶咖啡,半夜睡不着,想我的宝贝前端怎么办。
实在睡不着,拿起手机百度一下“前端js文件打包”,“前端angularjs测试”,这两个拖了快一星期的问题。
不搜不知道,一搜不得了,分分钟被教做人。
原来,实验室我折腾出来的东西其实是个四不像。既不是传统前后台开发,更算不上前后端分离开发。
想想当时真是很傻很天真。前端的所有html和对应的js直接存在后台的资源文件下,没有进行打包,也不支持import和es6;说要单页面开发,就把页面粗暴的分为导航、标题和主体页面,很多共用的按钮是ctrl+c/v的,没有抽成组件.....然后自以为这就是前后端分离了,用个搞不懂的前端框架就有点水平了。肤浅!
之前做梦说接下来写写ES6、加入测试单元、用webpack优化等等等都是yy。
那么问题来了,意识到自己的渺小,我该怎么办?
时间上,离我预计准备实习的时间只有6个月。除了准备项目,还要各种基础。按我现在的学习速度,项目方面预计只准备一个No.1,其他的项目经历作为补充项。
纠结了几天,该选一条路了。
- 把已有项目的前端代码从后端分离出来(Angularjs)
- 为已有前端项目用nodejs搭建后台(vue-cli)
- 实现一个逻辑/代码较复杂的产品
- 学习vue源码
1.把已有项目的前端代码从后端分离出来(Angularjs)
现状:项目为传统web开发。技术栈springboot+Angularjs。后台比较成熟,涉及微服务,物接入等。前端部分由于主导的开发人员(鄙人在下...)水平太low,虽然是前后端是靠接口对接的,但开发时是直接在后台的资源文件下编写前端业务代码。这样不符合前后端开发分离的初衷,还有很大调整的空间。
出发点:个人好奇心。好奇这些解决方案是怎么组织的
计划:需要重新搭建前端项目结构,配置webpack文件,再把现有js放入其中,可能会修改springboot代码。
风险:项目团队有十几个人,前端完全没有话语权,所以要分离得在本机上搞,确定成功之前没法放线上。结合我目前的水平...目测前方巨坑无数。
可参考项目:k8s-dashboard,thingsboard的frontend
预计效果:实现前后端开发分离,上线时对前端进行打包,打包后的文件还是放在后端的resource下
预计收获:实现前后端开发分离,会用webpack,理解现代前端开发流程,学习组件划分等思想
展望:搞定之后可以继续试试前后端分离、node做中间层、测试、组件化、ES6等等等
担忧:1.吊死在Angularjs可以吗?是不是投入vue怀抱更明智。
2.相当于项目“重构”了,我能做到吗?
3.折腾了一圈,最后落在我的简历上的是别人简历里常见的‘webpack、组件化、工程化’,面试官会不会觉得‘华而不实’‘全是工具’‘不重基础’,哪怕我最后该搭的都搭好了,会不会被认为'小题大做'‘可信度低’?
心底的疑问:我现在的水平向往这个,是不是一种眼高手低....?
2.对已有项目进行代码书写和项目结构优化(Angularjs)
不太想折腾angularjs了,有时间就优化一点,不作为主攻方向。
现状:和选择1同一个项目。写的时候能实现功能就万岁,代码中堆了各种变量,也没考虑回调闭包等。不符合angular提倡的代码规范,$scope里包含jq甚至原生js。Angularjs部分有路由,主体部分基本是一个对应一个控制器,没有用到服务,自定义指令之类的angular指令。
先天不足:由于寄养在后端的resource下,没法引入nodejs,不能做很多事,可能会没有“深度”,也不先进。
计划:1.研究一下angularjs的各种指令。如把功能抽出来作为自定义指令,公共代码抽出放到service等
2.清理代码中的jq,原生js,改用angular的插件代替
预计收获:熟悉Angularjs....(听起来就找不到工作==)
担忧:如果说选项1还能理解一下前端发展啥的,这个选项就是纯死磕Angularjs了吧....
3.为已有前端项目用nodejs搭建后台(vue-cli)
现状:前端部分主要是用表格显示数据,比较简单,已经上线。借助vue脚手架做的前后端分离,后端同事用的flask。本人对后端知识基本不懂,很多需要补充的内容。身边有同学做数据库和后台的,咨询方便。
出发点:有公司前端招聘要求有后台经验
预计:用nodejs+数据库搭建后台,实现和前端交互。
担忧:首先是对后台开发不了解,然后猜测相比用node开发后台,还是该先学会用node搞前端工程化更好。
4.实现一个逻辑/代码较复杂的产品
如个人博客及开发小功能、工作流程管理编辑器等。
5.学习vue源码。
是的,没看错,只是学习....尽可能理解深点,然后面试去吹.....
啊啊啊又一个不眠夜。时间不够用了啊,偶都开,呀卖呆,苦呀西....干巴爹