聘用Node.js開發(fā)者的六個建議
假設你正想聘用一名Node.js程序員或者外包項目給獨立職業(yè)者,你將尋找怎樣的人呢? 好的應聘者需具備哪些能力呢?這個簡短的指南將為了你篩選Node人才提供一些建議。
1)為什么選擇Node?
Node的logo酷斃了
你必須詢問自己的第一個問題便是:為什么選擇Node?現在許多公司聘用Node開發(fā)者,但是他們都是必要的么?我看不見得。
毫無疑問,Node是一個有力的工具,但是它像一頭難以馴服的猛獸。它可能并不適合于你的應用。當你雇用一名開發(fā)人員之前,停下來想一想,為什么我會選擇Node?如果你僅僅只是需要開發(fā)一款CRUD (增刪查改) 應用,那么你最好是選擇聘用一名Django或者Rails開發(fā)者,因為他們具有更大的社區(qū)和更詳細的文檔。
2)應聘者的開源項目背景
一旦你確定Node是適合你的,那你會尋找什么樣的開發(fā)者呢?
評估應聘者最好的地方就是他們的開源作品(open source portfolio)。也就是說瀏覽他們的GitHub資料或者其他類似的信息。很有可能,應聘者擁有大量的開源Node項目,更好的是,這些項目被細心的維護著。
比擁有自己的Node項目的應聘者更好的,就是那些同時對其他node或Javascript項目提供bugfixes(Bug補漏)和patches(補丁)的應聘者,因為這意味著他們具備良好的交流技能和團隊精神,這些是杰出員工必備的。但是如果他們僅僅是對Node項目本身有貢獻只能說明他們能夠很好的理解Node的內部結構而已。
3)數據庫經驗
最后,數據是關鍵。
Node.js應用有很多可選的數據庫,你應該確定你的應聘者熟悉這些數據庫。你是需要關系數據庫還是NoSQL呢?為什么?你想使用哪種實現?
這些都沒有標準答案,但是可能會有大量的錯誤答案。確定你的應聘者精通相關的數據庫,并對他們有自己的看法,以及具有相應的技能來支持這些觀點。
4)非HTTP協(xié)議項目經驗
雖然Socket.io的logo不炫,但它仍然勢不可擋
Node的許多隱藏功能——除了常見的HTTP應用外,它可以事件驅動的方式為任何應用服務。
應聘者具有為非HTTP應用使用Node的經驗么? 一些不錯的例子可能就是XMPP server/client協(xié)議,或者某一點對點協(xié)議,像BitTorrent。
即使你的應聘者沒有非HTTP協(xié)議的開發(fā)經驗,但他們至少需要有Socket.io的經驗。Socket.io是Node上的一款了不起的WebSocket包,它使得交互式的、多用戶web應用成為可能。
5)Node部署和DevOps
Node的部署是很棘手的。沒有關于如何部署Node的規(guī)范文檔,因為大部分的Node部署具有不同的需求。
每個Node開發(fā)者也必須是一名DevOps,一名涉足運營的開發(fā)者。應聘者知道系統(tǒng)奔潰的時候應該做些什么嗎?他們知道如何將他們的應用擴展到多個數據庫服務器上么?他們如何能實現負載均衡?你將期望你的應聘者解決所有這些問題。
一些部署Node.js的相關難點,請查閱Node.js Deploy Guide,這其中包含很多部署Node的相關問題。
6)安全性
Node.js領域顯而易見的就是安全性問題。
大部分撰寫和部署Node應用的資源指南都忽視了安全性。近年來有很多關于Node安全性的大災難,如果你不想遇到麻煩,那么就確保你的應聘者具有應對安全性問題的能力。
應聘者了解SSJSi(server side javascript injection)攻擊是什么嗎?如何避免或減輕攻擊的影響?如果應聘者不了解這些,請他們回家吧。
結論
讀完本文,關于如何尋找你的下一個項目的NodeJS程序員,你應該有一些較好的認識了。
原文鏈接:http://gun.io/blog/6-tips-for-hiring-a-node-js-developer/
譯文鏈接:http://www.webapptrend.com/2012/03/2005.html
【編輯推薦】