JS说起来必须是一个神器,这个当年10天内被开发出来的神器,以一种谁也想象不到的速度快速发展,它击败了Java Applet,逼死Flash,当Android和IOS看似一统全球的时候,JS慢条斯理的和Html5一起蚕食App市场,甚至还出来了NodeJS这种连后端都不放过的残暴东西。
原生和WEB的两种方式一直在争论不休,而我自己在三年前就是绝对的WEB支持者,windows对于JS支持的更彻底,只是Winphone一直不给力。
好吧,对于拿NODEJS做后端工程项目我还是有点不情愿,然而提供各种辅助工具什么的还是挺不错的。JQuery,Ajax和RequireJS和Angularjs和PhoneGap都是一些标志性的转变,还包括ReactJS。JS简直了,简直了,简直什么都不放过。
所以JS简单么?我带着你们了解一下JS工程师是什么样子的。
1 工作内容:
JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。
对于套页面来说,JS工程师的职责非常简单,一个是做一些简单的动画和交互和验证,轮播图,弹框,验证用户名是否为空等等。另一个就是通过Ajax取一些后台数据,然后在页面上展示出来。
那个时候的JS工程师并不被太多人重视,很多时候一些后端的人把前端的工作也做了–除了写CSS,大部分的后端工程师写点JS还是不成问题的。
可是前后端分离的出现,彻彻底底的改变了前端的世界。前端居然有架构了,前端居然也有“编译”的概念了(你能想象么,JS的项目居然不能直接打开源码直接使用了,必须要经过编译才可以)。前端工程师和后端工程师只通过Json数据交互(感谢Nginx提供了一个完美的跨域解决方案,再也不用什么Jsonp了),然后服务器端的同学发现:好简单啊,我对Android,对IOS,对Html都只需要提供一套API就够了~~
前端同学更开心,再也不用去搭建各种悲剧的开发环境了!前端变的很轻,而且控制欲很强(AngualarJS好赞),页面跳转神马的SoEasy,而且也有了Bower这样的包管理工具,还有类似于JSP自定义Tag的指令,MVC,还有了Service的概念,马丹,前端到底发生了什么!
所以我们现在说到的,基本上就是前后端分离的工程师,他们的工作职责就是和IOS&Android的工程师一样,跟后端定接口,确定框架和架构,分模块,然后跟后端联调互相吐槽对方是渣渣。
项目结束之后修复线上Bug,不停的跟用户说:在我这里是正常的,你换个浏览器试试?不行就清一下Cookie,再不然就换台电脑。
2 需要技能:
环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】
基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】
框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】
业务【金融,教育,医疗,汽车,房产等等等等各种行业】
第三方【微信,QQ等各种第三方登录,支付,IM,地图,语音,视频,图片】
环境不说了,参考CSS的。
基础跟CSS差别就好大了,要有一些网络协议的基本概念,要了解什么是Http,什么是Https,什么是WebSocket,什么是Rest,各种JS的语法(太复杂的完全不用管,别去管什么闭包什么Prototype什么This的指向),Json是必不可少的东西。
框架就多了去了。直接拿JQuery来学习就好,表去太在意什么原生语法,大部分场景你都不用担心引入一个JQuery的库导致系统变慢,AngularJS真是一个好东西,表太纠结一些细节,Bower,RequireJS和GruntJS这些会有一些前端大牛帮你搭好框架你直接用就好了。
想做点App就用PhoneGap,想尝试一下ReactJS就去试吧(我很想试一下然而看到有Render就看不下去了)。
必须提醒一次,你必须要懂业务逻辑,这跟CSS完全不需要懂业务逻辑简直是天壤之别,很多时候你并不是因为技术而无法学会JS,而是缺少对于业务逻辑的理解。
当然啊,这并没有完。还有无数的第三方库等着你,做微信呢你必须要用WX的SDK,要用百度地图呢就必须要用百度的SDK,还有各种支付啊神马的。如果你要做IM就有环信啊神马的。
所以。JS就是一个真正的程序员,一个真正的工程师,不但要能把代码实现,还需要理解需求,需要懂得编码规范,需要知道如何控制项目流程和进度风险,需要修复线下Bug,需要调优,需要做版本管理,需要制订接口,需要编写技术文档,还需要做新技术的调研或者是带新人。
原生和WEB的两种方式一直在争论不休,而我自己在三年前就是绝对的WEB支持者,windows对于JS支持的更彻底,只是Winphone一直不给力。
好吧,对于拿NODEJS做后端工程项目我还是有点不情愿,然而提供各种辅助工具什么的还是挺不错的。JQuery,Ajax和RequireJS和Angularjs和PhoneGap都是一些标志性的转变,还包括ReactJS。JS简直了,简直了,简直什么都不放过。
所以JS简单么?我带着你们了解一下JS工程师是什么样子的。
1 工作内容:
JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。
对于套页面来说,JS工程师的职责非常简单,一个是做一些简单的动画和交互和验证,轮播图,弹框,验证用户名是否为空等等。另一个就是通过Ajax取一些后台数据,然后在页面上展示出来。
那个时候的JS工程师并不被太多人重视,很多时候一些后端的人把前端的工作也做了–除了写CSS,大部分的后端工程师写点JS还是不成问题的。
可是前后端分离的出现,彻彻底底的改变了前端的世界。前端居然有架构了,前端居然也有“编译”的概念了(你能想象么,JS的项目居然不能直接打开源码直接使用了,必须要经过编译才可以)。前端工程师和后端工程师只通过Json数据交互(感谢Nginx提供了一个完美的跨域解决方案,再也不用什么Jsonp了),然后服务器端的同学发现:好简单啊,我对Android,对IOS,对Html都只需要提供一套API就够了~~
前端同学更开心,再也不用去搭建各种悲剧的开发环境了!前端变的很轻,而且控制欲很强(AngualarJS好赞),页面跳转神马的SoEasy,而且也有了Bower这样的包管理工具,还有类似于JSP自定义Tag的指令,MVC,还有了Service的概念,马丹,前端到底发生了什么!
所以我们现在说到的,基本上就是前后端分离的工程师,他们的工作职责就是和IOS&Android的工程师一样,跟后端定接口,确定框架和架构,分模块,然后跟后端联调互相吐槽对方是渣渣。
项目结束之后修复线上Bug,不停的跟用户说:在我这里是正常的,你换个浏览器试试?不行就清一下Cookie,再不然就换台电脑。
2 需要技能:
环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】
基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】
框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】
业务【金融,教育,医疗,汽车,房产等等等等各种行业】
第三方【微信,QQ等各种第三方登录,支付,IM,地图,语音,视频,图片】
环境不说了,参考CSS的。
基础跟CSS差别就好大了,要有一些网络协议的基本概念,要了解什么是Http,什么是Https,什么是WebSocket,什么是Rest,各种JS的语法(太复杂的完全不用管,别去管什么闭包什么Prototype什么This的指向),Json是必不可少的东西。
框架就多了去了。直接拿JQuery来学习就好,表去太在意什么原生语法,大部分场景你都不用担心引入一个JQuery的库导致系统变慢,AngularJS真是一个好东西,表太纠结一些细节,Bower,RequireJS和GruntJS这些会有一些前端大牛帮你搭好框架你直接用就好了。
想做点App就用PhoneGap,想尝试一下ReactJS就去试吧(我很想试一下然而看到有Render就看不下去了)。
必须提醒一次,你必须要懂业务逻辑,这跟CSS完全不需要懂业务逻辑简直是天壤之别,很多时候你并不是因为技术而无法学会JS,而是缺少对于业务逻辑的理解。
当然啊,这并没有完。还有无数的第三方库等着你,做微信呢你必须要用WX的SDK,要用百度地图呢就必须要用百度的SDK,还有各种支付啊神马的。如果你要做IM就有环信啊神马的。
所以。JS就是一个真正的程序员,一个真正的工程师,不但要能把代码实现,还需要理解需求,需要懂得编码规范,需要知道如何控制项目流程和进度风险,需要修复线下Bug,需要调优,需要做版本管理,需要制订接口,需要编写技术文档,还需要做新技术的调研或者是带新人。