你必须询问自己的第一个问题便是:为什么选择Node?现在许多公司聘用Node开发者,但是他们都是必要的么?我看不见得。
毫无疑问,Node是一个有力的工具,但是它像一头难以驯服的猛兽。它可能并不适合于你的应用。当你雇用一名开发人员之前,停下来想一想,为什么我会选择Node?如果你仅仅只是需要开发一款CRUD (增删查改) 应用,那么你最好是选择聘用一名Django或者Rails开发者,因为他们具有更大的社区和更详细的文档。
评估应聘者最好的地方就是他们的开源作品(open source portfolio)。也就是说浏览他们的GitHub资料或者其他类似的信息。很有可能,应聘者拥有大量的开源Node项目,更好的是,这些项目被细心的着。
比拥有自己的Node项目的应聘者更好的,就是那些同时对其他node或Javascript项目提供bugfixes(Bug补漏)和patches(补丁)的应聘者,因为这意味着他们具备良好的交流技能和团队,这些是杰出员工必备的。但是如果他们仅仅是Node项目本身有贡献只能说明他们能够很好的理解Node的内部结构而已。
Node.js应用有很多可选的数据库,你应该确定你的应聘者熟悉这些数据库。你是需要关系数据库还是NoSQL呢?为什么?你想使用哪种实现?
这些都没有标准答案,但是可能会有大量的错误答案。确定你的应聘者精通相关的数据库,并对他们有自己的看法,以及具有相应的技能来支持这些观点。
应聘者具有为非HTTP应用使用Node的经验么? 一些不错的midd-984例子可能就是XMPP server/client协议,或者某一点对点协议,像BitTorrent。
即使你的应聘者没有非HTTP协议的开发经验,但他们至少需要有Socket.io的经验。Socket.io是Node上的一款了不起的WebSocket包,它使得交互式的、多用户web应用成为可能。
Node的部署是很棘手的。没有关于如何部署Node的规范文档,因为大部分的Node部署具有不同的需求。
每个Node开发者也必须是一名DevOps,一名涉足运营的开发者。应聘者知道系统奔溃的时候应该做些什么吗?他们知道如何将他们的应用扩展到多个数据库服务器上么?他们如何能实现负载均衡?你将期望你的应聘者解决所有这些问题。
大部分撰写和部署Node应用的资源指南都忽视了安全性。近年来有很多关于Node安全性的大灾难,如果你不想遇到麻烦,那么就确保你的应聘者具有应对安全性问题的能力。