全栈 JavaScript 程序员的崛起

JavaScript 无处不在

在以前,JavaScript程序员就是前端开发者的同义词,永远与浏览器绑在一起。
但那已是昨日往事。Node.js的崛起开启了一个新纪元,从此,JavaScript 程序员可能不再是被局限于浏览器的前端开发者了。

相比其他高级程序语言,作为一名 JavaScript 程序员,你可以在更多的平台上发挥才能。但是现在让我们将目光放在两大主流领域上:浏览器和服务端。

为什么我非要在这两者中做出选择呢?

做为一名全栈 WEB 开发人员需要面对的问题

有句古话说得好:”什么都懂但没有一样通“, 每次花时间探索新的领域,你都是在浪费足以让自己成为某一领域专家的时间。

“假如我被困荒岛,唯一能够获救的方法是做出一套漂亮的用户界面,我将毫无疑问的死在岛上” —— Linus Torvalds,Linux 的创始人

成为全栈开发者最大的风险就是在前后端都表现平庸,这比只擅长一种而对另一种全然不知更糟。

在愤世嫉俗的人眼中,全栈开发者是“一帮将bug引入软件栈每一层的家伙”。

原因是开发技术一直在发展。我们面对的问题变得越来越复杂,解决这些问题的技术自然需要发展。几年前,学习 JavaScript 只需要掌握经典的 ES6就够了,但今天,如果从零开始,我需要掌握同时 ES3和ES2015(ES6)。了解最前沿牛逼的技术不等于说我就可以不顾基础了。

全栈记

每一种开发技术栈都有属于自己的小世界。

每一种语言都有自己的 WEB 开发框架。Python 有 Django,Ruby 有 Ruby on Rails。

还有,每一种技术栈都有自己的包管理器,工具库和独特的语言结构,在这些栈背后是一群充满热情的人,他们可能是博客作者、企业开发人员或者是开源软件贡献值。

每一种技术栈都有自己的长处和弱点。

比较不同的技术栈是没有意义的

一旦你决定要成为全栈开发者,你将不可避免的在两种技术栈中徘徊。一种是你深爱的,为之充满激情。另一种便是 JavaScript。

一些人之所以如此讨厌 JavaScript,部分原因是他们没有选择的权利,只能被 JavaScript 选择。

当 WEB 开发者想写一些前端代码的时候,同时又不希望使用恼人的插件,JavaScript 就成了唯一的选择。

有人尝试过创造一种语言去取代 JavaScript,但最终编译出来的 JavaScript 代码质量往往不尽人意。作为它们中的一员,我不方便指出(CoffeeScript),被71%的开发人员所畏惧!简直是要超越 wordpress 的节奏。

无论如何,JavaScript 统治着浏览器, 是浏览器唯一愿说的语言。

有不少非常聪明的男性和女性尝试让浏览器说不同的语言,结果是不少非常聪明的男性和女性都失败了。

食古不化的浏览器。

JavaScript 的优势

让我们换一种角度来看事物。
如果说你深爱的,为之充满激情的技术栈就是 JavaScript 栈呢?

如果是你拥有 JavaScript,而不是它拥有你

如果你选择 Node.js 作为后端开发框架, 你将获得其他技术栈开发者梦寐以求的一些优势。

选择 Node.js, 你就选择了统一而不是分散你的技术栈,你选择至始至终地使用 JavaScript。

你不用再去寻找 Ruby 或者 Python中的Lodash工具库,直接使用Lodash就是了。当然,你可能说pip install和bundle install用着还挺顺手,但最后你还是得解决 JavaScript 的依赖关系。

但如果你选择 Node.js,你可以使用npm install安装所有的东西,无论是在客户端还是服务端。

代码重用率那叫一个高,如果你发现自己正在实现一个左侧字符填充功能,你只需要写一次就行了,在一种语言中,而不是两种。

如果你跟随 Universal JavaScript的脚本,你可以写出一个可以同时在客户端和服务端跑的 web 应用。

如你所见,选择全栈 JavaScript 的好处是巨大的。很多时候,当你在编写前端代码时,你会发现一些知识同样适用于后端,反之亦然。

尽管全栈 JavaScript 开发者的日子要比其他全栈开发者好过得多,但你仍需要掌握前后端领域的专业知识。Node.js 和浏览器都说 JavaScript 一门语言,但编写运行在浏览器中的前端代码和跑在服务器上的后端代码还是有很大不同。

那么,作为一名全栈 JavaScript 开发者,是不是就必须不断地工作在前后端?

70/30原则

有人说并没有所谓的全栈 WEB 开发者,你要么是面向前端的,要么是面向后端的,必须做出选择。

我对此表示理解

一名在前后端分别精确投入50%的开发者就像是谜一样的生物,传说中的小妖精。

你在想着小妖精能实现你所有的愿望并给你一壶金子,结果发现小妖精根本不存在。你只是喝醉了,在和一个穿着绿色外套的侏儒说话。

真相是全栈开发者,要么是面向前端的,要么是面向后端的

明白自己属于哪一种对你只会有好处。意识到自己是更偏前端的全栈开发者并不妨碍你同时擅长后端技术,只不过你会自然的投入更多精力去打磨前端能力。

所以我推荐 70/30 原则

如果需要花一年的时间实现一些功能,同时你可以选择实现哪些功能,将70%的时间用在自己倾向的技术栈领域,剩下的30%投入到其他开发工作中。

你供职的公司可能不鼓励全栈开发,如果在公司只能做后端开发,为什么不自己做一个前端的个人项目呢?没有什么东西是一成不变的,今年还是倾向后端的 开发者明年就可能倾向前端。我想说的是,给自己一个准确的定位,合理安排时间。如果你是一位倾向前端的全栈开发者,将重心放在打磨自己的前端开发能力上, 同时留30%给后端,确保不被落下。

事实上,你完全可以成为一名前后端都牛逼的全栈开发者,只要你愿意。

做一名全栈 JavaScript 开发者的乐趣

在近期 Stackoverflow 的一次调查中,绝大部分的开发者都把自己定义为全栈WEB开发者。同时,有85.3%的开发者多少懂一点 JavaScript。

是什么原因让全栈开发者变得如此流行?市场选择,不愿意在前端和后端之中做出选择,还是全栈开发者那不可否认的性感魅力?

我想答案其实很简单

全栈开发乐趣多

作为一名开发者,最棒的事之一就是一人独立操办前后端带来的满足感

从你创建的用户界面发出数据,在用自己创建的 API 接收,然后保存或者处理这些数据。看着其他人使用你创建的功能,从前端到后端,是一种难以描述的美妙体验。你不禁会想“我创造了它,在这之前这是不可能的,但现在却因为我成为了可能”。

属于全栈 JavaScript 开发者的新篇章

JavaScript 的生态系统一直在发展,从最初的浏览器到后来的服务端,今天我们甚至走得更远。移动应用、Bot Frameworks、物联网、3D 游戏甚至是虚拟现实都可以采用 JavaScript进行开发。

作为全栈 JavaScript 开发者,我们得保证至少精通一个领域。同时,软件开发的大门始终是敞开的,你可以对各种流行技术和前沿科技进行探索,且不用担心忽略了自己的 JavaScript 技能。作为全栈开发者的一个最大好处就是能持续地学习新事物,将其内化并掌握。

JavaScript 就是你的画布,把它变漂亮吧!

**文章转载自 开源中国社区[http://www.oschina.net]
**

时间: 2024-11-08 23:13:15

全栈 JavaScript 程序员的崛起的相关文章

诚聘全职 .Net 程序员1名(武汉)

问题描述 诚聘全职.Net程序员1名(武汉)我们需要的伙伴:1.爱好编程,一天不编程就手痒(^_^).2.精通.Net(Web开发)3.具有良好的编程习惯(见注),真正掌握oop编程思想,熟悉设计模式,并能运用于项目开发中.4.精通数据库(SqlServer)的编程和运用,熟练掌握存储过程,善于优化SQL语句.5.熟悉HTML.CSS样式表.XML6.有大型项目经验者优先:具有系统设计经验者优先7.熟悉网站开发流程,有良好文档编写能力和编程风格8.有责任心.做事认真.自学能力强,而且人品好.9.

JavaScript程序员应该知道的45个实用技巧

 在这篇文章中,我将分享一组JavaScript的技巧.窍门和最佳实践,这些都是JavaScript程序员应该知晓的,不管他们是使用在浏览器/引擎上,还是服务器端(SSJS--Service Side JavaScript)JavaScript解释器上 如你所知,JavaScript是世界上第一的编程语言,它是Web的语言,是移动混合应用(mobile hybrid apps)的语言(比如PhoneGap或者Appcelerator),是服务器端的语言(比如NodeJS或者Wakanda),并且

如何成为一个伟大的JavaScript程序员

遥想当年还年少的时候,我的兴趣爱好就跨越了各种不相关的领域.我喜欢数学,如同我深爱历史那样.我的目标是成为像文艺复兴时期多才多艺的伟人那样--在多个领域都有出色表现.这是一个艰巨的任务--突然之间我发现自己正面临着"样样皆通,样样稀松"的危险. 我开始考虑钻研某些领域,这样至少我还可以成为一个"精通某些领域"的人.那么我该怎么做,才能既专注于某个领域,同时又能学到软件开发所需的大量知识? 这篇文章主要概述在我 5 年工作经验的基础上,我成为优秀 JavaScript

做靠谱JavaScript程序员的应备素质

当我尝试为Cloudera招一个JavaScript程序员时,我发现这项任务相当艰巨.找到一名真正理解JavaScript的人非常困难.不 过,这也证明了一件非常简单的事情,是时侯去研究JavaScript,并成为这个领域的专家了.过去的几个月,我发现了一些天才JS程序员并尝试去录用 他们.显然他们有非常多的选择.他们被各种公司的Offer困扰着.作为一个想招他们进来的人,这让我想起了第一次互联网泡沫时侯的一些事.(我承诺给其 中一位侯选人一辆凯迪拉克,但最终没有打动他).最后他进入了另一家初创

Meteor:快到飞起来的全栈JavaScript开发平台

"meteor"这个单词的意思是"流星",流星的特点是快,一闪而过:同样,Meteor作为一个开源的全栈JavaScript开发平台,特点就是快,目标是为开发者提供一个快速开发的平台. 本文选自<Meteor全栈开发>一书,将向您介绍Meteor为何如此之快! Meteor是什么 Meteor是一个开源的全栈JavaScript开发平台,构建在 Node.js和 MongoDB 之上.全栈开发平台已经有不少了,Meteor有什么特色呢? 虽然Meteor

成为全端(栈)程序员的捷径

今天我们不得不去接受越来越多的概念,不同技能.不同职位的人都有不同的职称.到了今天,算得上是一个全端(栈)程序员,渐渐地发现其实很多人在成为全端(栈)程序员的路上. 全端(栈)程序员需要什么 如果我们去追述Full Stack的起源,想必就是Facebook了,而Facebook对于全端(栈)程序员的定义,想必就是它应该是一个"站长"--维护.开发一个网站.对于一个站长来说,一个必要的知识就是 从用户将URL敲入浏览器地址栏到用户看到这个界面发生了什么. 所以对于这个站长来说,他想了解

窥探jQuery——面向JavaScript程序员

当 jQuery 在2006年1月现身时,给我的第一印象,是这玩意儿构造得很精明.基于CSS选择器(CSS selectors)来打点一切,其思路相当灵巧(参考getElementsBySelector).但链盒工事(chaining stuff)看起来更像个噱头,并且整体看来,jQuery库提供的功能并不能覆盖所有基础性的东西.因此我断定,jQuery只会昙花一现. 几个月以来,我逐渐明白自己想错了.从技术工艺上考量,jQuery十分凌厉.它用简洁的方法,把大量常用功能封装起来,并提供精巧的插

为JavaScript程序员准备的10本免费书籍

你对你从事的职业中的各种概念掌握得越多,那你就越有优势.当你从事的是技术或者IT方面的工作时,你了解的信息越多,你的基本技 能和意识将越宽广.JavaScript就是这样一门编程语言,你需要掌握和学习的是永无止境的.它会时不时的增加或取消一些脚本,以提高网站建设质量. 一个利用JavaScript来设计网页.游戏或者其他图形的程序员应该知道并理解该编程语言所有重要方面的概念. JavaScript正在主宰这个世界,从创建一个简单的web应用到复杂的机器人,你都可以使用它.因此,很多作者和程序员把

JavaScript程序员应该知道的45个实用技巧_javascript技巧

如你所知,JavaScript是世界上第一的编程语言,它是Web的语言,是移动混合应用(mobile hybrid apps)的语言(比如PhoneGap或者Appcelerator),是服务器端的语言(比如NodeJS或者Wakanda),并且拥有很多其他的实现.同时它也是很多新手的启蒙语言,因为它不但可以在浏览器上显示一个简单的alert信息,而且还可以用来控制一个机器人(使用nodebot,或者nodruino).掌握JavaScript并且能够写出组织规范并性能高效的代码的开发人员,已经