怎样克服 JavaScript 框架疲劳?
【编者按】Tero Parviainen 著有 Build Your Own AngularJS,曾两次组织 Clojure CUP 竞赛,在 Twitter 上有近两千名关注者。
在本文中。Tero 阐述了在 JavaScript 框架层出不穷的当下,不少开发人员对选择框架的种种困惑。假设你也有相似的困惑。最好还是读一读。

下面为译文:
JavaScript 社区正受「框架疲劳」困扰。着眼近段时间涌现出的大量新框架、技术和想法,令人振奋的同一时候也让人觉得非常难追上科技更新的脚步。
既然难以追赶,那么必须选择专注的领域。而做这个选择也正是由于这样的焦虑感。那么,你在专注于「正确的事」么?你正在学习的框架又是否是最合适你的,或许还有比它更好的?会不会下个月就发生些什么让你的选择显得过时?
这里有一些个人总结,用以抵抗这样的疲惫感和焦虑感。
1.学会赞赏已知中的未知数
其实假设你遭遇了这个问题。那么说明你已经非常了解环绕 JavaScript 正在发生些什么。全部你觉得应该学习的其实都是你有所了解的,它们都是你知识领域中的未知点。在这里,你必须要理解——「已知的未知」会不停地扩张。永无止境。
其实,恰恰相反:这不仅意味着新事物在不断出现,还意味着每一次你学习了一些东西,也会了解到与它相关的——那些你原本还不了解的事情。
举个样例,在读 Cycle.js 时,才发现对 Reactive Programming 知之甚少。
学习 React 又带来了接触 React Native、GraghQL、Redux 的途径,并如此无休止的重复。一件事总是可以引起另外一件事。
与其被一系列已知的未知所扰,不如学着接受这样的情况。当意识到缺乏某种知识,可以选择兴许去学习。知道它存在并大概知道它是什么。这意味着你可以决定在某个时候,假设可能的话,花费时间去学习这样的知识。我们总是陷入选择中。倾向于抗拒这样的选择却又由于仍有那么多不会的知识而抱有负罪感。
这样的纠结毫无意义,进行选择比忽略全部可以学习的东西更好。
这样的未知——你所不知道的知识——不能作为实际知识和技能的替代。但也绝不是毫无用处。
2.接受事情总是处在变化中
毫无疑问, Web 开发总在不停地衍变——更好的解决方式被共认,亦或是设备性能增强等等。
不管如今 JavaScript 最前沿的技术是什么。我敢说这个「前沿」绝对支撑不了3年。它们中的大多数会被长久的遗忘,也有一些会留存。但创新或许会环绕我们甚至还不能想象的某些事情发生。
举个样例,Angulai 1.x 如今仍然非常强大而且会维系数年,但环绕它并没有创新点。这样的情况终于也相同会发生在 React 或其它现今看来新鲜的技术上。
我们或许并不希望这些发生。但这却是不可避免的现实,你只能选择去接受事情的持续变化或者停留在落后于前沿技术的拐点。
不论什么一种选择都是有效的,但也都要付出成本。不管怎样,变化是持续的,试图阻止这样的变化往往收效甚微。
3.理解一切都有价值
不管你选择将时间用在哪种框架或者技术上,付出终究会得到回报,即使它不是最正确的那一个。
你所学习的一切都在帮助构建你头脑中的神经元网络,会帮你建立某种联系使你在兴许学习其它东西时更加easy,了解一种知识可以使你跟其它知识进行比較和对照。
因此,学习总是实用的,不管学什么。
这还意味着焦虑地去寻找一种正确的框架或技术用来学习并没有想象中那么重要。
不不过由于所谓的正确的框架或技术非常难确定,而且在非常多情况下它们并非一開始就存在的。相反。寻找实用的知识显然更为简单。它们无所不在。
你或许可以学习一些看起来有趣的东西,即使它并非绝对正确的东西。
举个样例,我花费了数年时间学习多种 Ruby 技术而且利用 utm_source=TechCommunity&utm_medium=TechArticle&utm_term=ruby&utm_campaign=JulSoftArti&from=optcfijuru">Ruby
那么。这是否意味着我花费的那段时间一无所获?我不这么觉得。
那些技术不仅在当时非常实用,而且全部在当时学过的东西形成了我如今的编码风格。
我非常希望这样的情况也终于发生在我如今学习的工具上。
那么,怎样去摆脱因寻找正确框架所产生的焦虑感?在这里你最好还是去寻找或许此时并不那么实用的知识——寻找一篇有趣的计算机科学论文并探索当中的观点。或者花时间在并不能直接应用于所做之事的技术上。
你从这些地方得到的收益或许并不那么明显。但它们真实存在并会在不经意的地方显现。
临时摆脱激烈的框架选择也可以让人振奋。
4.学会学习
还有一种有效的方法是回归本源,只将时间花在学会学习上。为什么不练习解决这个问题这一过程本身,或者像刻意练习一样去研究技术。相似行为将有助于了解职业真正能带来什么。
这是 Rich Hickey 对此的看法:
你须要细致辨识事情的本质。精通编程不在于语言、范例、平台、构建模块、开源、会议等。
这些都是随着时间变化的基础知识。汲取知识的能力可以使你按需使用。我更愿意选择具备良好学习技巧和解决这个问题能力的程序猿,而不是不论什么时候只汲取浅显经验的程序猿。
就像学习新框架非常有价值,学会学习非常显然能获得更大的回报。善于学习和解决这个问题,将会使你遇到更少的麻烦,不论接下来你会须要什么样的新技术。
原文链接:Overcoming JavaScript Framework Fatigue
本文系 OneAPM project师编译整理。OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发人员轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读很多其它技术文章。请訪问 OneAPM 官方博客。
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
怎样克服 JavaScript 框架疲劳?的更多相关文章
- 从零开始定义自己的JavaScript框架(一)
来自:http://www.ituring.com.cn/article/48461 1.1 模块的定义 一个框架想要能支撑较大的应用,首先要考虑怎么做模块化.有了内核和模块加载系统,外围的模块就可以 ...
- 转:Twitter.com在用哪些Javascript框架?
原文来自于:http://blog.jobbole.com/63964/ 我一直在研究twitter.com使用的一些UI框架.下面是这些框架的清单(大部分是Javascript框架).如果你发现有些 ...
- 从零开始编写自己的JavaScript框架(一)
1. 模块的定义和加载 1.1 模块的定义 一个框架想要能支撑较大的应用,首先要考虑怎么做模块化.有了内核和模块加载系统,外围的模块就可以一个一个增加.不同的JavaScript框架,实现模块化方式各 ...
- Twitter.com在用哪些Javascript框架?
我一直在研究 twitter.com 使用的一些 UI 框架.下面是这些框架的清单(大部分是 Javascript 框架).如果你发现有些框架 Twitter 已经没在使用了,请随时告诉我! 测试 J ...
- javascript 框架、根基技巧、布局、CSS、控件 JavaScript 类库
预筹备之 JavaScript 今朝支流的 JavaScript 框架排名中,jQuery 和 Ext 可算是佼佼者,得到了用户的普遍好评.海内的一些框架许多也是模仿 jQuery 对 JavaScr ...
- 顶级的JavaScript框架、库、工具及其使用
几乎每隔一个星期,就有一个新的 JavaScript 库席卷网络社区!Web 社区日益活跃.多样,并在多个领域快速成长.想要研究每一个重要的 JavaScript 框架和库,是个不可能完成的任务.接下 ...
- JavaScript框架设计(三) push兼容性和选择器上下文
JavaScript框架设计(三) push兼容性和选择器上下文 博主很久没有更博了. 在上一篇 JavaScript框架设计(二) 中实现了最基本的选择器,getId,getTag和getClass ...
- JavaScript框架设计(四) 字符串选择器(选择器模块结束)
JavaScript框架设计(四) 字符串选择器(选择器模块结束) 经过前面JavaScript框架设计(三) push兼容性和选择器上下文的铺垫,实现了在某一元素下寻找,现在终于进入了字符串选择器 ...
- 偶的《javascript框架设计》终于出版
#cnblogs_post_body p{ text-indent:2em!important; } 历时两年多,我的书终于付梓出版了.应各方面的要求,写软文一篇,隆重介绍一下此书对各位程序员的钱途有 ...
随机推荐
- 关于js小数计算的问题
在js浮点运算中 var a=0.2-0.1; var b=0.3-0.2; console.log(a==b); 答案是什么呢,很多人可能认为是true,包括我在内,但是当我写出来运行了一下,我被答 ...
- C# 网页自动填表自动登录(转)
自动填表的方式有很多,关键是获取控件的id或者name. 比如源代码有 <input id="pwdInput" tabindex="2" class=& ...
- PPT2010小技巧 教你如何快捷抠图
相信不少人在做PPT时,都有想插入个漂亮个性图案的想法,但是往往手头上的图片都不太令人满意,需要“裁剪”一下才能达不到自己想要的效果.这时大部分人可能会PS,但是相比起今天要分享给大家的方法,步骤就显 ...
- c++ 标准委员会网址
c++ 标准委员会网址: http://www.open-std.org/ C++11 文档网址: http://www.open-std.org/jtc1/sc22/wg21/docs/papers ...
- Mybatis 学习
1. Mybatis 中 # 与 $ 符号的区别: a. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号. 如:order by #user_id#,如果传入的值是12,那么解 ...
- 在windows下创建.gitignore文件
1.使用另存为的方式 2.在win7下,文件名输入 ”.gitignore.“ http://hbiao68.iteye.com/blog/2055496 http://lyhopq.github ...
- Sql中的datetime类型的空值和c#中的DateTime的空值的转换方法
[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3412796.html] 在NET 2.0以上版本提供了一种新的方法 就是加问号,DateTim ...
- RTP
RTP学习(三)RTP/RTCP/RTSP数据包格式 h264RTP打包描述的较为详细(含SDP中sps等信息的描述) UDP.TCP.RTP三种协议的总结 http://super-and-star ...
- PHP数组和Json之间的互相转换 json_encode() 和 json_decode()
之所以要用到Json,很多时候是因为使用ajax对象时,程序与JS函数之间的数据交互.因为JS不认识PHP中的数组,PHP也不认识JS中的数组或对象.Json很好的解决了这个问题. Json简介 JS ...
- Win7新建ftp快捷方式(原XP网上邻居中客户端图标)
2014-6-2 XP逐渐隐退,新机器一般都是Win7或者Win8了.有很多朋友反映在这两个新系统中找不到类似XP网上邻居中的ftp链接图标.故稍微研究了下,以Win7为例,总结如下. 1.骨灰级 ...