今年越来越喜欢写js代码了,虽然今年我也写过很多java代码,利用业余时间学习了python。但是写的最爽的还是js代码。
js适用函数式编程和面向对象编程。oop代码有时候会让自己特别不爽,为了去掉代码的重复率,写一堆无用的代码,并不会增强代码的可读性(有时候还会被人强调这是重复代码一定要提取出来。。。哈哈)。
JavaScript天生就是跨平台的语言。我们曾经讲java语言的优点的时候,就会突出java跨平台的特点。实际上java跨平台特点在生产中并没有什么优势。随着智能手机的普及,客户端产品的爆发,提升用户体验效果,前后端分离技术。我们可以看到js跨平台的优势越来越明显。
前端技术的发展是特别快的。有相当多的开发者用 的是比较旧的技术。当然这也和大家对新技术的接受能力有关。16年的时候我和一位面试者交流的时候,我问了他相关javaweb的知识,其中他讲他比较熟悉struts框架。我很难以理解这种apache官方都自己都嫌弃的老框架,他还愿意去学。当然,现在最新的是spring-cloud微服务框架,不过我们还能看到很多基于ssh的项目(这些属于服务端的技术)。关于前端者一块,技术的更新是基于es标准和社区技术。最新版本的浏览器主要支持的是es5标准,支持部分es6特性。浏览器不支持,并不能阻止大家用es6标准甚至是es7标准写js商业代码。然后通过打包工具编译成es5标准的代码运行,因此优秀的前端程序员要去关注新的技术,并跟上步伐。我和某个同事讨论过前端三大框架的问题。他严肃的说现在外面用的最多的Jquery,这时候我发现我没法和他讲模块化,组件化开发思想。
这一年写了很多的js代码,在项目中造了很多轮子。我认为有必要封装的方法就往里面添加,后来都快成一个库了。后来我发现使用我方法的人有很多,但是只有我一个人维护,有需要的时候我依旧会添加方法,但是不会去宣传。后来我想封装一个取对象里某个值的方法,我想了下这个方法实际的使用意义,问了下别人这个方法咋样,我最终还是没有将这个方法添加进去。后来我在谋篇谈react技术的文章中,提到了一个Immutable库有个方法深度取值getIn和我的方法的入参和类型一摸一样,我不要看实现,只要看入参,我知道我们的思想是一样的。
这些年的前端技术发展的太快了,涌入前端的开发人员也越来越多,但是很多新技术新框架对新手是不友好的,搭个开发环境都要很久。别的语言hello world已经写好了,前端开发环境还没有搭好(老技术除外)。学会了node,会用npm管理包之后(淘宝镜像npm不好用),该安装的东西安装好之后,以后学习起来就会越来越简单。