关于“大漠”的一点不好的记忆

关于大漠的一点不好的记忆。不过当年没搞清楚到底是哪个。发生了最近的事情,我觉得可能是这个……

我这个人不爱交际,在行业里一直是个小透明。

不过我当年也曾想试着改变一下自己,所以找了个前端交流群加了进去。具体的群名字忘记了,总之是“大漠”创建的群。

然后发现这个群真TM恶心。群主大漠有几个小弟,一副高高在上颐指气使的样子,对群里成员吆五喝六随意攻击,不仅对发问者提出各种限制,对回答者也提出各种限制。群主也是一副老子对你们这些废柴施恩,还不快快对我歌功颂德的气势。(具体做法记不清了,好多年了。)

然后我就受不了啦。如果前端圈子都这个吊样子,那我不交际也不要紧。于是吐槽两句自己退群了。

退了之后,想说这个大漠是谁啊,怎么这么差劲,然后搜了一下,发现叫这个名字的好多,无法确定是哪个,我也懒得跑回去确认。


发生了最近的事情后,我举得按人品和气度,有可能是这个……

第二次直播课程完结,兼谈对前端,对培训行业的看法

第二次直播结束,现场感觉还不错。继续推荐给大家:https://segmentfault.com/l/1500000008757392。顺便推荐新直播:https://segmentfault.com/l/1500000008879826。关于编程培训,我有几个观点:1. 未来前端变化不会那么大,这个时候做培训比较合适;2. 未来是终身学习的时代,程序员尤甚,我自身条件也合适干这个;3. 所以我准备今年好好干一干。

这篇文章写于上周,结果赶上服务器故障,写到一半去迁机器了……参见上篇文章

前些天播出了直播课程的第二讲,《Promise 的 N 种用法》,感觉播出本身还算成功。现场气氛不错,学员们积极提问,我做完解答,大家也纷纷表示听懂了,有收获。

如果人多点就更好了……

这里再打次广告,课程地址:https://segmentfault.com/l/1500000008757392。购买后可以任意回看,页面上还有推广链接,分享可以得实惠。如果大家想学 Promise 的用法,看这个视频,就够了,完全够了。

最开始策划这堂课的时候,把问题想简单了,结果做幻灯片的时候才发现,那句话:老师要想给学生一杯水,自己至少要有一桶水,古人诚不我欺。准备的时候花费了比第一次直播,比想象多得多的时间,讲试了两次,才得到了比较满意的结果。

这次购买的人数也比上次稍微多了几个,感谢亲友团支援,也希望更多的是真实用户吧!试讲的时候,在斗鱼也取得了不错的效果,增加了几个关注,还有人给了100鱼丸。以后录像的时候,都会选在斗鱼同步直播。如果能借机积累点人气的话就更好了。

总而言之,有进步。


做了两次直播之后,会有朋友问我说以后是不是就准备干这个了?关于这点我有几个想法跟大家分享。

选择这个时间去做前端培训,很合适

在过去很长一段时间里,前端这个行业,发展非常快。新技术新框架,层出不穷,快速更迭。对于我们这些从业者来说,确实不敢放松,甚至有些同学表示担心,学不过来。这个阶段我认为不能当导师,很可能误人子弟,既坑自己,又坑别人。

但是现在,情况有所改变。ES2017 增加的新特性数量,相对于 ES2015 而言,少得多。现在被大家津津乐道翘首以盼的,也就 Await/Async。CSS4 新增的特性,比 CSS3,也少很多。至于 ES2018,就更少了,写成博客都不带翻页的。这其实也很自然,就像 iPhone567,代际之间几乎没有什么大变化。因为过去的技术积累,其它语言当中有价值的特性,多半已经被前端吸收借鉴进来了。能够极大改善我们开发环境、生产环境的点,基本都已经被发掘过了。

未来的日子里,我们必须学会不断打磨手头已有的工具和技术,把思路从学习吸收,向深耕细作转换。比如用 ESlint 工具维护统一的代码风格,提升代码质量,提升安全系数,补足团队短板。或者,开拓前端的新边疆,比如 Hybrid,PWA,Electron 正在做的。

在这样的时刻,我觉得,可以停下来一段时间去做培训。正如我在上面所说,老师要给学生一杯水,自己至少要有一桶水。培训教学是非常好的总结、查缺补漏的手段。可以说利人利己。

换个角度,现在停下脚步做培训,一时半会儿也不会落后于行业。

终身学习的庞大市场

这是我的第一个想法,第二个想法从罗辑思维听来,便是所谓的“终身学习”。

在他的设想中,我们的未来,会是一个终身学习的时代,所有人都学习,并且是终身不断学习。我觉得至少在程序开发领域,他没说错,我自己就是例子。我2006年参加工作,做页面仔,切图。一边切一边学习 PHP,学习 JS,学习 AS,学习面向对象,学习开发模式,一路边学边干,走到现在。

我没有放松过学习,并且积极走出舒适领域,主动逼自己学习。回想我的学习历程,主要分两部分:

  1. 刚工作的时候,跟前辈学,靠脸皮厚,抱着大腿猛学
  2. 把他们学得差不多了,就只能自学,订阅博客,关注微博,以及看文档读源码

然而我发现,并不是所有人都能自学。比如前阵子认识个小妹,我发给她文档链接,她说看不懂英文……然而她必须学会,因为他们公司只有她一个前端。所以这又是一个非常大的市场,即由我,藉用我磁性的声音,清晰的普通话,带领他们学习,帮助他们学习。

并且现阶段来看,用户的付费意愿,也蛮强烈;付费习惯,也基本养成。

而且我觉得我周围的大多数人,还不太认可这一点,那么这也是一个机会。培训讲师常有,有10+年一线开发经验的资深前端工程师,愿意做培训讲师的,则不常有。

与时间赛跑

综合前面两点,我觉得,眼下这个时机,很适合切换到新跑道。毕竟以现在的我而言,一方面有前线工程师的视野和能力,另一方面又有专职讲师的时间和精力,并且我普通话说得好,声音稳定有磁性,天赋不能浪费。

希望接下来的时间里,能把讲师做好。说实话,现在课没人买没人听,我并不太担心。我觉得这是必经之路,想想郭德纲当年一后台人给一个听众(都不堪称“众”……)讲相声,也是这么熬过来的。我花了十多年时间才成为一个资深工程师,自然也要花很多时间,才可能成为一名优秀讲师,这很自然。同样借罗辑思维的话,终身学习知识服务,不是随随便便就能搞成的,一样需要专业人士专业服务。

所以现在我要做的,就是积累课程、积累用户、积累行业内的名气。我计划今年就干这个。所以我也是在跟时间赛跑:在全家饿死之前,把课程培训做起来。


最后再打个广告,明天我会开始第三次直播:《Web 永恒不变的主题:布局——Box,Flex,Grid》,这次要分享的内容是比较基础的 CSS 布局,除了回顾前几年妖魔鬼怪横行的布局 hack,还会展示 Flexbox 使用和最新的 Grid。对各种级别的前端同学都是很好的一堂课。欢迎大家光临,帮我推广也感激不尽。

另外我考虑接下来用3周时间,直播一个完整的项目,包括项目配置、webpack + babel + ES6、CSS 预处理、gulp 批处理,整个一套做下来,以及自动化测试、代码规范检查等等。这个得跟站方商量一下。

前端框架点评

点评一下当下各种前端框架、类库。

前两天被人@,提问前端框架的问题。这还是第一次在微博上被陌生人提问,感觉有点小激动。今天写篇小文章,简单点评一下我用过的前端框架,希望对大家有所帮助。

本文涉及的范围

本文要点评的前端框架,都是我用过的,以JavaScript框架为主,也可能包括一些工具类库。由于前端的特殊性,弱语言HTML和CSS是必不可少的工具,运行机制导致很多成熟的工程学方法没法用,必须用工具库补充。烦请大家不要抠字眼,我一向很马虎,呵呵。

Bootstrap

一定要先推荐Bootstrap。它由Twitter的两位工程师首创,当前版本2.3.1,涵盖了文本、布局、表单、工具,除了暂时没有日期选择器之外,几乎包含了网页所需的一切。我们知道,网页出现是为了传递信息,而成熟的印刷业对其影响很大,表现出来就是,HTML中很多标签,比如H1~H6p等,都是有具体语义的。但很多前端框架并未给予他们足够的重视,所以往往需要我们重置或者自己动手写。Bootstrap则不是这样。它不仅包含大量组件,还帮助我们给每种可能用到的语义标签都定义了样式,又设计出很多helper;而其网格系统也能帮我们出色完成排版工作。总而言之,使用它几乎足以满足任何网页开发需求。

值得一提的是,Bootstrap的组件和Widget都基于HTML标签构建,非常好用;而响应用户操作则基于对document的侦听,所以几乎不会对我们其它代码逻辑造成影响,我们可以放心大胆的在项目当中使用。当然,Bootstrap依赖jQuery,后者近期遭遇到一些纷争。不过我还是要强烈推荐这个框架。

jQuery UI

比较遗憾的是,虽然号称UI,但jQuery UI只能算作一个组件库。因为缺少基础排版支持,所以既想使用jQuery UI,又想和自己的样式保持一致会有些困难,需要花费不少时间做修改。

抛开这一点,jQuery UI也是个很好的工具,几个widget都很实用,文档丰富详实,如果项目本身对交互要求不高,只是个别地方需要一些功能补充,jQuery UI确实是不错的选择。尤其当我们需要draggablesortableresizable这几个功能时,选择的余地真的不大。

HTML5 Boilerplate

这个工具力图给开发者提供一个舒适的起点。他们为项目建立了标准化的目录结构,并且把常用的资源都整理在合适的位置,这样我们只需要替换它们就能保证项目对所有浏览器都有完美表现。同时,他们重置了CSS,引入了GA统计,在页面中标记了合适的输入点,这样我们能尽快投入到项目逻辑的开发中。

但这个工具的问题也很明显,它努力达成的目标,是消弭浏览期差异。假如我们只需要统一的环境就能开展工作,那H5B就足够了;而实际上,我们通常需要更多,比如排版、比如组件。所以,这个工具对我来说,学习的意义大于使用的意义。

HTML KickStart

我见过的前端框架里只有这个跟Bootstrap的覆盖面接近。它的设计更好,更鲜艳更有活力,不过最近的开发好像慢了下来。我并没有真正使用它,因为它的组件太少了。

Backbone

非常好的MV*框架,真的像根脊柱一样,把被jQuery拆的七零八散的js统一在合理的框架内,让整个项目都变得协调了。引入Collection真的很天才,结合其出色的View设计——其实Backbone的View并不是传统意义上的View,更像mediator——可以看出,Backbone的设计者对Web开发有着深刻理解。哦,差点忘了,Router还能帮我们很好的整理单页应用的逻辑。

不过js毕竟是一门很烂的语言——或者让我换种表述方式,缺陷很多,所以它尚无法做到像AS3的Robotlegs那样好。不过,如果我们希望把代码组织的更好,Backbone类的框架是不可或缺的。

Rachet

Rachet的目的和架构,很像Bootstrap,不过它瞄准在移动端。Rachet现在仍处于比较低级的阶段,组件太少,开发起来不太方便,最多相当于Kickstart把。可惜的是,移动端移动框架普遍较弱,在我看来,基于它的Junior仍然是不二之选。

Zepto

说到移动端开发就不能不提Zepto。它力图实现一个十分类似jQuery的库,不过只考虑支持移动端,所以体积会小很多,速度也会快不少。Zepto的升级频率最近也不高,不过还是到了1.0。新版Zepto放弃了ruby,使用coffee作为编译工具,支持使用者自由组合功能模块,相当贴心。

不过具体使用时,还是会有一些函数的用法和jQuery不同,需要注意。举个例子,css函数,jQuery里支持数字,比如$('div').css('height', 100),会把页面中所有div的高度设置为100px;而Zepto不行,必须$('div').css('height', '100px')才会正常工作。

jQuery Mobile

强大的jQuery团队最失败的作品。贪恋于风光的过去,迷信“全覆盖”,使得jQuery Mobile步履蹒跚,在移动平台上无法取得足够好的性能表现(早期版本甚至不支持固定底部)。而这直接带来了对HTML在移动端的质疑。有很多本不擅长前端开发的人,看到Phonegap,就直接上jQuery Mobile,结果发现性能不行,体验很差,便在各种渠道大放厥词,说HTML不行。这种行为直接伤害了HTML和Hybrid应用。

jQuery Mobile失败不仅在于此。jQuery本身方便快捷,使用它很容易养成不重视代码组织的习惯;而在移动端,单页应用占据主流,这意味着,使用jQuery Mobile很可能无法良好的组织代码,直接带来项目维护成本的提高。另外,早期版本的设计也不可避免的带有大量Web痕迹,导致实用性不足。所以直到今天,jQuery Mobile都还是个悲剧。

不过,jQuery 2.0已经beta2了,我们知道,jQuery 2.0里放弃了对IE678的支持,性能会得到不小的提升;jQuery Mobile 1.3已经引入了对hash的支持,组织代码好多了;同时,随着3次小版本更新,越来越多适用于移动应用的组件加入进来,大大扩充了军备库。我认为,未来的jQuery Mobile,值得一试。

Sencha Touch

大家可能还记得,Facebook闹过一阵,说HTML5不够好,还把他们的手机客户端用原生重做了一遍。之后Sencha的两位工程师表示不服,以HTML5为基础开发了功能几乎完全一样的客户端,他们用到的框架就是Sencha Touch。据说,它的性能比jQuery Mobile好不少。

但是,真正用了就知道,sencha touch实在太不“前端”了。它里面几乎没有给HTML和CSS留下太多位置,明明十分强力的布局样式工具,被封装成了单薄的接口;但是没少往JS框架里加内容。结果就是用起来非常复杂,随时需要看文档;自定义困难,它里面甚至有一个属性叫“html”,用来填入大段文本类型的html;数级嵌套起来的对象也很让人头疼,而且感觉维护也不会太容易。所以我做了一半就还是放弃了。劝大家也别去尝试了。

如果有哪位高人愿意以实际经验教育我的,我洗耳恭听。

【转载】如何唤醒前端植物人

【前端开发遇车祸成植物人,IE6将他唤醒】北京程序员王xx遭遇车祸成植物人,医生说活下来希望只有万分之一,唤醒更为渺茫。他的Leader和亲人没放弃,他们根据王xx视工作如命的作风,每天都在他身边念:“xxIE6侧边栏又乱了,线上BUG啊!快起来改!”奇迹发生,王醒来,第一句话:我这是好的

【前端开发遇车祸成植物人,IE6将他唤醒】

北京程序员王xx遭遇车祸成植物人,医生说活下来希望只有万分之一,唤醒更为渺茫。他的Leader和亲人没放弃,他们根据王xx视工作如命的作风,每天都在他身边念:“xxIE6侧边栏又乱了,线上BUG啊!快起来改!”奇迹发生,王醒来,第一句话:我这是好的

做过前端的都懂得……最后一句大亮……