BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #38698同步于 2016/9/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

前端开发技术筛选心得

Tsher
2016/9/4镜像同步31 回复
论坛可以用MarkDown语法了啊!!!赞一个。 > 前端开发,顾名思义就是在浏览器端,手机端等以html的形式展示出来的开发技术。 #### 一开始前端开发人员只需要写静态页面,所需要的技术HTML即可。 因为审美的提高,光有html写的table,div展示数据不足以满足需求,交互开发呼之欲出,然后就有了JS&CSS。这时候前端就打开了潘多拉的盒子,前端页面变化多端。可是,这时候又出现了个问题,浏览器种类变多了——兼容性。 `HTML要兼容,JS也要兼容,CSS同样要兼容。`这中间出现了个替代方案——flash,以此来蔑视前端技术发展缓慢,但PlanB就是PlanB,效果总归没PlanA的好。H5技术发展了,浏览器标准都升级了,JS&CSS得到了大部分浏览器的支持,特别是移动端的出现,全部支持H5,得以解除IE6魔咒,video,audio标签就可以做flash的事情。这下好了,技术条件都成熟了,可以出产品了,可是开发是要讲团队合作的。 #### 每个前端开发人员因为水平参差不齐,都有自己的写html,js&css的套路。 你的套路我未必认可,就只能单打独斗了吗?并不是,规范化了,文档详细了不就可以吗: bootstrap的出现,让css样式规范化,写不了css的开发者也可以通过bootstrap来提高审美。 js框架也在路上,最早期的js拼接html,拼接css(jquery),到早期的backbone,knockout,ember,avalon到angular,react,vue都在改变晦涩难懂的javascript程序员的世界。让这个js世界分化出几个容易懂(文档多)的小世界。哪个世界容易懂,还是要看文档和这个世界的生态圈(package)。 #### 图片资源,字体资源,视频资源这些需要融入到网页中。 怎么合理的加载,怎么省带宽,怎么更高效,这些都需要得到控制。HTML没有控制的机制,CSS也没有,只有通过选择器(selector)把控制的任务交给JS了。好的!我前端开发都完成了,后端咋搞呢,我前端页面不是花架子,而是要高效展示数据的。于是抛出了后端的选择:NodeJs?PHP?Ruby?Python?Go?Elixir?Clojure?就效率来说,推荐函数式编程的后端语言(Elixir, Clojure)。就我个人而言,推荐NodeJs。就你们而言,要看圈子。为什么要看圈子呢,我认为圈子很重要,你所在的圈子如果是PHP开发者比较多,资源就比较集中,学起来就快,出现什么问题也可以及时得到纠正。毕竟后端也就是连接数据库,给前端页面提供数据而已。 ### 我推荐基于的理由很简单:isomorphism(同构)。 因为我前端写好了一套控制逻辑,我不想在后端再写一套。我前后端如果都能公用一套控制逻辑,那不是爽翻?所以,对于个人项目,我推荐NodeJs。但公司项目还是要讲效率的,讲团队协作的。对于初学者来说,没必要那么快上升到效率和协作,所以首先看自己喜好啥语言,然后看圈子用的啥语言。 (供参考)假设我要开发个自己的项目,我要想以下的问题(对应的解决方案): 我要提升写HTML的效率:Jade OR EJS … 我要提升写CSS的效率: Stylus OR SCSS OR LESS…+ PostCss 我要提升写Js的效率: CoffeeScript OR ES6 OR TypeScript … > 为了提升开发的效率,我脑海中蹦出了那么多可选择的工具!选了这些工具还需要编译回HTML,JS&CSS,编译不能手动编译吧,累死。所以自动化构建工具呼之欲出。 我要提升构建的效率:Grunt OR Gulp OR Webpack … 是不是有种从此入坑不复返的节奏。这就选择了。我给出我选择的过程,因为需求不一样,我给出的方案不是行业标准,而是让新手能快速上手(入坑),并且喜欢在坑中找自己。好,开始偏执地消灭异己了! Jade OR EJS: 听说EJS不够强大,Jade才是精髓,我个人的项目肯定很多自己手写的html元素和页面结构,EJS太多闭合标签,不够简练,因为短小精悍,我选择Jade。 Stylus OR SCSS OR LESS: 吐槽SCSS安装还还需要依赖ruby,同样很多花括号,不够简练,弃之。Less还不错哦,bootstrap也在用。但我追求的还是简练,短小精悍,所以选择Stylus。 CoffeeScript OR ES6 OR TypeScript:TypeScript是微软出品,是Angular的官方推荐。国内像Antd也在用TypeScript重构了。然而Package的生态规模还不够大。ES6,甚至ES7都可以用Babel来转码实现。ES2015在React开发中火的不要不要的,字面量对象,胖括号都让原来的js代码简化不少,可读性也很高。可是,论简洁程度,还是不如CoffeeScript。插一句,就ES6而言,Coffeescript已经有很好的实现,ES2015还需要ESlint,还需要Airbnb的规范,代码层面还是少不了一些瑕疵。对于一个追求简洁的人来说,只要浏览器还没普遍支持ES7,放心用CoffeeScript做自己的项目。所以我推荐CoffeeScript。 Grunt OR Gulp OR Webpack:Grunt可以过时了,因为Gulp的出现。Webpack很适合开发React,但作为构建工具,需要写配置文件规则。作为一个追求简练的我,不想再花时间精力去维护配置文件规则。所以Gulp作为自动化构建工具相当合适,在React开发过程中,完全可以Gulp+Webpack一起用。不开发React,Gulp的五个主要的api就能让新手深入浅出自动化构建。所以我推荐Gulp。 于是筛选出了前端技术开发栈: Html -》 Jade Css -》 Stylus Js -》 CoffeeScript 构建 -》Gulp 前端框架 Angular OR React OR Vue:Angular让我很不爽的是2.0版本和1.3版本不兼容!!!!鬼知道3.0版本会是什么凑性。Angular和Vue核心都是模版,React独树一帜,核心就是JS Component。组件化思维好,大家好才是真的好。虽然React目前有点不符国情,Weex用上了Vue,但用React做自己的项目,写自己的组件以便今后复用,方便自己的事情还是多考虑的好。所以我推荐React。 Javascript是单线程的,如何消除回调,提升代码可读性,也是Node Learner必然要面对的。ES7的Async无疑是终极方案,但是Babel对于Async的转码也是基于Generator实现的。所以我认为在ES6刚普及的现在,最重要的是Coffeescript暂时不支持,消除回调的任务就交给Promise、Generator/Yield吧。 对于前端开发的理解大致就是以上。 然后再稍微了解下Linux,Docker,Nginx,Git你就是全栈开发了。哈哈。 圈子很重要,特别对程序员来说,有个好的圈子真的可以提高生活质量,而不至于加班猝死在公司的马桶上。我还没遇到Coffeescript的圈子,所以想在北邮拉一个群,相互交流。另外这些只是个人经验之谈……如果有说错的地方欢迎入群指正拍砖。因为群还没建好(微信群还是QQ群呢,所以还是先发我邮箱吧,邮件联系)。 以下内容是软广,介意请忽视 我在的创业公司还在招聘 Nodejs/前端工程师(包括实习),介绍在: https://bbs.byr.cn/#!article/JobInfo/625349 https://bbs.byr.cn/#!article/JobInfo/625350 如果有兴趣入群,对上述内容,或者这个工作(内推),可以发邮件一起聊聊看 —> tshersteven@gmail.com
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
being机器人#1 · 2016/9/5
赞,感觉路漫漫~ 发自「贵邮」
PiEgg机器人#2 · 2016/9/5
跟我的看法和选择几乎一致233
LeeSir机器人#3 · 2016/9/5
我听说过的对前端开发最好的解释是:展示+交互。这俩词可以代表前端做的所有工作
luvlulu机器人#4 · 2016/9/5
赞!!!
PiEgg机器人#5 · 2016/9/5
这两个词是针对以前的前端而言的。如今的前端不仅仅只是关心展示和交互了。有了nodejs之后你可以做更多的事 【 在 LeeSir 的大作中提到: 】 : 我听说过的对前端开发最好的解释是:展示+交互。这俩词可以代表前端做的所有工作
lol机器人#6 · 2016/9/5
路还好长。。。
w153409018机器人#7 · 2016/9/5
es6,7是标准,我觉得新手还是从标准起步吧,coffee是用来提高生产力的,以后再说也不迟
Tsher机器人#8 · 2016/9/5
【 在 w153409018 的大作中提到: 】 : es6,7是标准,我觉得新手还是从标准起步吧,coffee是用来提高生产力的,以后再说也不迟 JS和别的语言很大的不同,并不是面向对象开发(OO),而是面向原型开发(OLOO)。如果要提到标准,也不要忘了es5。 ES7的特性要用我只用Async/Await.然而ES6有替代方案,generator/yield,j Promise. 所以标准中ES5,ES6就够用了。 既然Jade要学,Stylus要学,多个Coffee也不是事吧。无论从入门还是进阶,都有利无害。
Tsher机器人#9 · 2016/9/5
【 在 PiEgg 的大作中提到: 】 : 跟我的看法和选择几乎一致233 激情握爪~