假设你正想聘用一名Node.js程序员或者外包项目给独立职业者,你将寻找怎样的人呢? 好的应聘者需具备哪些能力呢?这个简短的指南将为了你筛选Node人才提供一些建议。
1)为什么选择Node?
Node的logo酷毙了
你必须询问自己的第一个问题便是:为什么选择Node?现在许多公司聘用Node开发者,但是他们都是必要的么?我看不见得。
毫 无疑问,Node是一个有力的工具,但是它像一头难以驯服的猛兽。它可能并不适合于你的应用。当你雇用一名开发人员之前,停下来想一想,为什么我会选择 Node?如果你仅仅只是需要开发一款CRUD (增删查改) 应用,那么你最好是选择聘用一名Django或者Rails开发者,因为他们具有更大的社区和更详细的文档。
2)应聘者的开源项目背景
一旦你确定Node是适合你的,那你会寻找什么样的开发者呢?
评估应聘者最好的地方就是他们的开源作品(open source portfolio)。也就是说浏览他们的GitHub资料或者其他类似的信息。很有可能,应聘者拥有大量的开源Node项目,更好的是,这些项目被细心的维护着。
比 拥有自己的Node项目的应聘者更好的,就是那些同时对其他node或Javascript项目提供bugfixes(Bug补漏)和patches(补 丁)的应聘者,因为这意味着他们具备良好的交流技能和团队精神,这些是杰出员工必备的。但是如果他们仅仅是对Node项目本身有贡献只能说明他们能够很好 的理解Node的内部结构而已。
3)数据库经验
最后,数据是关键。
Node.js应用有很多可选的数据库,你应该确定你的应聘者熟悉这些数据库。你是需要关系数据库还是NoSQL呢?为什么?你想使用哪种实现?
这些都没有标准答案,但是可能会有大量的错误答案。确定你的应聘者精通相关的数据库,并对他们有自己的看法,以及具有相应的技能来支持这些观点。
4)非HTTP协议项目经验
虽然Socket.io的logo不炫,但它仍然势不可挡
Node的许多隐藏功能——除了常见的HTTP应用外,它可以事件驱动的方式为任何应用服务。
应聘者具有为非HTTP应用使用Node的经验么? 一些不错的例子可能就是XMPP server/client协议,或者某一点对点协议,像BitTorrent。
即使你的应聘者没有非HTTP协议的开发经验,但他们至少需要有Socket.io的经验。Socket.io是Node上的一款了不起的WebSocket包,它使得交互式的、多用户Web应用成为可能。
5)Node部署和DevOps
Node的部署是很棘手的。没有关于如何部署Node的规范文档,因为大部分的Node部署具有不同的需求。
每个Node开发者也必须是一名DevOps,一名涉足运营的开发者。应聘者知道系统奔溃的时候应该做些什么吗?他们知道如何将他们的应用扩展到多个数据库服务器上么?他们如何能实现负载均衡?你将期望你的应聘者解决所有这些问题。
一些部署Node.js的相关难点,请查阅Node.js Deploy Guide,这其中包含很多部署Node的相关问题。
6)安全性
Node.js领域显而易见的就是安全性问题。
大部分撰写和部署Node应用的资源指南都忽视了安全性。近年来有很多关于Node安全性的大灾难,如果你不想遇到麻烦,那么就确保你的应聘者具有应对安全性问题的能力。
应聘者了解SSJSi(server side javascript injection)攻击是什么吗?如何避免或减轻攻击的影响?如果应聘者不了解这些,请他们回家吧。
结论
读完本文,关于如何寻找你的下一个项目的NodeJS程序员,你应该有一些较好的认识了。
发表回复