设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

如何雇一个牛逼的Node.js开发者

2014-8-1 09:50| 发布者: joejoe0332| 查看: 2165| 评论: 0|原作者: mingshun, Sophietyl, 徐继开, 0x0bject, AndyLam, 无若|来自: oschina

摘要: 初创公司是我的激情所在,而我干的也是管理一群雄心壮志的开发人员。我工作在Strongloop,并且已经在很多初创公司待过。初创公司在雇佣问题上有 它独特的挑战----预算紧,期限近。加上要使用开源框架进行开发,而且还 ...
  初创公司是我的激情所在,而我干的也是管理一群雄心壮志的开发人员。我工作在Strongloop,并且已经在很多初创公司待过。初创公司在雇佣问题上有 它独特的挑战----预算紧,期限近。加上要使用开源框架进行开发,而且还是相对年轻的框架,如Node.js,这一切使得雇佣一个合适的团队成为了一种 巨大的挑战。

  正如所有新兴并被快速采用的技术框架一样,一开始的挑战就是给你的技术团队增加高效的人才资源。在快速得出关于把 Javascript 开发变成 Node.js 工厂的结论之前,让我们先来看看关于 Node 及产品开发环境的核心问题。 简而言之,核心问题就是:


  • Node.js 具备基于事件的编程风格

  • Web 趋向于更小的以响应器/消息为基础的架构

  • 最后,大多数我们试图解决的问题仍然需要通过可扩展的后端架构而不是UI来提供支持。


  让我们逐个分析这些问题并揭示它们所带来的挑战。那就引出了我们需要招聘什么的人。


基于事件的程序设计

  相对于传统的线程模型,Node.js开发与传统模型之间的主要区别是围绕着事件模型。相对于传统的线程模型,框架在基于事件的程序设计中管理的是 控制流。在传统模型里,开发者必须在控制流中仔细处理模型中的流程,主动编写控制流向及返回的代码,要完全了解任务执行完后应该如何继续下面的流程。而对 循环进行完全控制的事件模型则会返回到它会去的地方,而你却只能交叉手指祈祷好运。于是挑战就在于你如何组织逻辑,在于如何从过程模型到应用系统的输入与 响应模型理解上的转变。这就是关键。


  一个好候选人,能就传统的问题通过事件的方式进行讨论。他们是否能够清楚哪种类型的应用程序更适合于Node的方式? 例如,一个I / O与CPU密集绑定的应用程序。著名的聊天服务器就是个很好的例子。问他什么样的复杂变化需要使用这种模式放在一起的代码。 一个好的候选人应该能够解释并发模型,事件循环与多线程的差异,以及它们如何影响可扩展性。


  开发来自测试,二者手拉手。JavaScript是一门弱类型的动态语言,来自于 Java/C#的世界,你突然失去了你的安全保障(你的“编译器”)。此外,你写代码处理事件都处在模型之中,以测试驱动开发(TDD)的经验 确实变得好用。以我的观点来看,TDD更适合基于事件的编程。实际上最好的开发人员已经这么做了,在测试之前甚至只有一行代码。更关键的是,你要确保你所 想要雇佣的开发者有使用测试驱动代码设计的思想,而不仅仅只是考虑去用。下面将会做一下介绍。


  这样,我们就有了两个关键的技能点用来寻找候选者,即:编码能力和测试驱动设计!这与我之前说的没有太大区别,除了一些细微上的不同!


范型转换

  你可能已注意到了网页的范型转换: 我们正快速地从传统的网页加载刷新走向较小的传感器般的信息,快速地访问小片的实时信息。你将也注意到通过开放式API我们走向传感器连接,器件连接,移 动访问。Node.js这种情况,这里也是开源,由小模块API提供访问丰富信息组成。加上有不断成长的模块生长生态的外在,我观察到它惊人的成长--- 大约30%,从我加入Strongloop大概18个月以来。所以,你雇佣的任何Node.js开发人应该擅长在这样的开发模型下工作: 访问实时信息的小部分。


  通常,我相信这意味着这样的开发者:擅长互动开发,快速编码试水,写小的重用的代码片段,遵循基于API开发。


  基于类似Express, Connet, Async的关键模块的经验肯定都是加分的。github经验,开源贡献都得加高分。事实上,候选人用GitHub合作对等编码,关注Node.js在 Google群和StackOverflow的活跃社区,和他写代码的能力同等重要。用模块生态系统的许多模块,找到已有模块,修好别人的模块或者给别人 的模块打补丁,终归都是关键的技能。我要检查候选人GitHub的贡献的趋势和质量数量。他们是好的社区成员吗?他们修好代码吗?他们实行干净健康的特征 分支,PR,提交吗?


  如果你确实发现有人他积极贡献某节点核心,好,移交到附近的办公室。


安全性,后端架构,培训

  伴随着代码开源,Node.js又是基于Javascript,这可能会导致你的应用存在安全隐患。开发者应当对服务器端注入比较熟悉,而且知道如 何通过编码去避免这些风险。Node.js是单线程的,所以很容易会受到拒绝服务攻击。一名能够考虑到这些恶意情况并且编写出经得起良好测试的代码,在你 的Node.js组中将会非常有价值。


  Node.js相比其他编程语言还是比较新的,所以找到一名理想的员工可能会是一个挑战。在一些当地的小聚会中,你可能会找到一些黑客,也有可能找 到一些经验丰富并希望向Node.js发展的Java工程师。或者为什么不考虑将你手下的一些在大型后端架构、处理大规模问题和容错方面有丰富经验的 Java工程师送去参加一个好的培训呢?准备好开始了吗?StrongLoop提供培训和对个人或者组织的认证


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部