出于各种原因,即将离开毕业后的第一家公司。提出离职到现在也快一个月的时间,工作交接没有那么顺利,所以依然战斗在岗位上到最后一刻。
离职原因也很明确,前端只有我一个人写,而且无论前端还是后端,技术陈旧,执行层想要更新框架,引入新技术,但是上有领导层的不理解,下有不间断新的业务需求的提出。想要推动一把,还是非常困难的。
这周的最后一次例会上,想着既然要离开了,那就向领导表达一下自己的看法,在这个部门先埋下一颗发展技术的种子
写给不愿意改变或难以改变的传统行业。
一、框架
jQuery是早年大热的Js框架,它是对原生js方法的拓展和封装,使操作DOM的时候能更加高效和灵活。在MVVM框架大行其道的今天,市面上依然存在着大量使用JQ写的产品。虽然JQ损失了一定的性能,但是它曾经不可动摇的地位也是毋庸置疑的。
有些强推JQ的老员工会持有以下观点:
我们的目的是完成需求
首先,我们的目的就是实现需求,既然现有的工具可以完全满足,为什么要费力气去学新的东西?因为不论是学习一门新技术,还是去重构一个老的项目,都需要占用大量的人力和时间成本。
JQ依然很强大
其次,和MVVM类的框架相比,jQ也有得天独厚的优势,如果说一个界面是属于纯展示性的静态站点,何必为了使用新技术搭半天框架。JQ搭配它强大的插件库可以省时省力地高效完成任务。
以上其实观点都对。
在开始论证之前,我先简单介绍下到底什么是MVVM框架(Model-View-ViewModel)`。
什么是MVVM框架
简言之就是,通过数据绑定,使页面和业务逻辑剥离开来,极大降低耦合。
比如说,为一个输入框设置值。
JQ开发时需要在html文件中对输入框设置类名或ID,并在Js文件里获取当前的DOM,并通过text方法为其赋值。
Vue则是在页面文件中设置modal
指令和数据名称,然后在js中Vue对象里返回这个数据。这个数据和输入框的值是绑定的,任何一方变化,就会引起另一方的改变。
其实就差在这个双向绑定上。无论多复杂的业务逻辑,在vue来说都是在操作数据,通过数据驱动生成vm渲染页面。
所以显而易见,使用mvvm框架面对复杂的业务,也能保证高效的开发,和后期维护的便捷。
而有些人不愿意改变的主要原因,还是觉得当前的技术栈完全能够实现需求,没必要费这个精力去引进新技术。
我也不是说JQ应该被抛弃,面对有些需求它的确能够效率更高。但是我认为,新框架兴起必有其原因,是不是选择使用是一回事,会不会使用又是另一回事。学习它的思想和使用方法是作为一个前端开发者必须要做的事情,我们在面对需求的时候,应该在权衡利弊之后选择最合适的框架,使产品能够又好又快地产出,而不是因为技术的局限而被迫在现有的技术中挣扎。
即,主动匹配需求,选择框架,而不是被框架选择
二、打包工具的应用
目前部门发布版本的时候,是把整个项目包拖进服务器项目目录下。平时在测试环境中如果测试出了Bug,反馈到开发人员,开发人员改好代码通过自测,要重新提交测试时就需要把修改过的文件路径记录下,再去服务器中找到对应的路径,替换文件。而越是复杂的项目,文件结构就越复杂。像webContent/statics/js/manage/alarm_mge/list.js
这种恶心巴拉的文件路径,多来几个就呵呵呵了,难找不说还非常容易出错。
其实在很早很早以前,前端领域就已经有了解决方案
像webpack、gulp、grund这类的打包工具早已出现。结合npm包安装开发需要的各种依赖,并引入各种模块。以webpack为例,配置各种loader,使用各种高效的高级语法而不需要去考虑兼容性,配置生产环境和开发环境,使用webpack-dev-server实现热更新等等。
- 预编译。对less或者sass文件,es6或者更高语法进行解析。可以在写业务的时候更加便捷
- 热更新。保存文件浏览器自动刷新
- 打包发布。对项目文件进行压缩和整合。减少发布文件的数量和提及,提高发布版本的效率。
除了包括1,2两点等其他给力功能的额外加成之外,第3点,使用打包工具可以做到,所有的项目代码,无论有多少Js和css,有多少页面文件,被划分了多少组件,打包编译后就一个dist文件夹,文件夹中只有几个文件(以iview-template
为例,最终的生产文件就只有main.css,vendor.js,main.js,index.html
四个文件,以及一些外部图片资源)
三、个人的成长
当下的社会,人们在满足了自身的物质文化需求之后,开始把重心放在自身价值的提升上,我相信大部分人不会满足于在原地混吃等死,都会想要紧跟时代的发展,不至于走在前沿,起码是不想被甩到后面的
所以就需要把一个部门当成一个足球队来打造,给力的前锋,牛X的后卫,神级的守门员。无短板,持续稳定地晋级
如果一个部门或者公司能够让个人感受到是在向前进步。市场人员感受到公司业绩的节节攀升,这是很直观的成绩,也是大部分人衡量一个公司好坏的标准。然而另外一个很重要的点,也是最容易被忽视的点,就是研发部门整体技术在紧跟时代,并且持续创新。
如果一个技术团队的眼光仅仅放在眼前产品的完成与否,而不考虑整个流程是否有值得改进的地方,不考虑所用技术选型是否对项目最适用。整体技术总是在原地踏步,那我觉得,真正愿意向前走的人才,是不会在这里久留的
四、js的发展方向
由于nodeJs
近年来的大热,js开始在服务端中大显身手。据不可靠消息,javascript荣登2017年最热技术排行榜第一,打破了十几年来java一家独大的局面。js已经不仅仅是一个呈现页面或者交互效果的工具,在服务器上进行文件和数据的存储、读取,接收客户端的请求并进行处理等等,已经让js变得十分强大,并且炙手可热。前端工程师的只能早就不是“还原视觉稿”,“撸几个后台管理界面就可以”这么简单了。
作为一个技术部门,不仅仅关注客户的业务需求,还应该关注技术领域的发展和趋势。才能保证整个部门的活力,和可持续发展
网友评论