雇佣一个自由职业者来做Angular的工作可能是一件可怕的事情, 尤其是在填补团队现有技能的空白时. 无论你是在雇佣一个自由职业者来接手现有的AngularJS web开发项目, 为一个新的绿地项目铺平道路, 或者扩充现有的团队, 你需要知道要注意什么,要避免什么.
Pitfall No. 1: AngularJS vs. Angular
它就是“Angular”.”
尽管这听起来很简单,但并不是所有的“angular”都是生来平等的.
构建Angular的团队已经在它的 Angular和AngularJS的品牌指南 当引用版本1时,应该使用“AngularJS”.当引用版本2+时,应该使用“Angular”(不含“JS”). 这意味着即使是Angular 4也只是被称为“Angular”.”
为什么这很重要??
对你和你的自由职业者来说,在同一页上使用正确的名字是很重要的. 虽然AngularJS和Angular听起来很相似,但实际上它们是截然不同的框架. 就像你不会期望的那样 反应专家 or a Vue.js specialist 让你的Angular应用开始运行, 不要指望AngularJS专家也能成为Angular专家, or vice versa. 这并不是说他们不能承担——他们只是需要更多的准备时间.
在为现有项目招聘时,一定要知道你需要的是AngularJS还是Angular专家. 如果你正在计划一个新项目,那就使用Angular吧!
Pitfall No. 2:雇佣一个不精通TypeScript的开发人员
Angular是用TypeScript编写的,它是迄今为止Angular应用的首选语言. 这意味着生态系统(e.g.Angular的库和文档)主要是用TypeScript编写的.
在雇佣Angular专家时, 你需要确保你雇佣的人了解TypeScript并能充分利用它的惊人特性. 他们应该熟悉像 Atom and VSCode ,它支持TypeScript,会高亮显示错误并提供自动完成功能.
雇佣一个Angular专家意味着雇佣一个TypeScript专家,所以测试一下他们的能力吧!
Pitfall No. 3 .领导还是跟随?
你想找人来增强你现有的Angular团队吗? 维护一个现有的应用程序? 领导或引导一个新项目?
Angular主管应该知道如何创建一个新项目. This is an 非常重要的 项目生命周期的一部分.
这些问题的答案将帮助你确定你的专家需要多少Angular经验. 和其他框架一样, 在一个已建立的代码库中提高生产力所需的技能和经验远低于启动一个新项目所需的技能和经验. 如果你不需要Angular的引线, 然后雇佣会React的人, AngularJS, 或者有丰富的JavaScript经验就足够了, 虽然他们需要一些学习. 如果你需要一个Angular引线, 或者有人来引导一个新项目, 你要确保你的专家能胜任这项任务.
一个专业的Angular lead应该知道如何创建一个新项目. This is an 非常重要的 项目生命周期的一部分! 把它想象成一栋大楼——你不会想在摇摇欲坠的地基上建造摩天大楼. Likewise, 你的Angular领导将为他们自己和所有未来在你的项目上工作的开发人员建立基础, 所以它需要坚如磐石.
一个好的设置将:
在雇佣领导时, 一定要向他们询问最佳实践, 目录结构, 以及如何设置单页应用程序(因为它需要特殊的路由).
Pitfall No. 4:你的Angular专家并不真正了解Angular
你不会不尝他们的菜就雇厨师的, 你不应该在没有测试他们的Angular知识的情况下就雇佣他们进行Angular或AngularJS开发. (一个很好的起点是 我们的AngularJS面试问题列表 .Angular和AngularJS的代码都有自己的一套特性,你会想要讨论这些特性.
数据绑定和组件通信
Angular专家应该知道数据绑定和组件通信的方法.
AngularJS专家尤其应该知道将数据传递给组件的不同方式:
@
for raw text
&
for a function
=
对于双向数据绑定
=?
可选的双向参数
相反,Angular专家应该知道什么时候该使用:
[property]
binding
(event)
binding
[(two-way)]
binding
您的专家还应该能够告诉您如何进行父-子或子-父组件通信, for Angular or AngularJS .
服务、指令和管道
你的Angular专家应该能够向你解释什么是服务(提示:它们是单例的)!),以及何时使用它们. 服务是向许多组件提供公共实用程序的好方法, 通过提取复杂的逻辑来简化组件, 并在整个应用中共享状态. Angular通过使用providers(如.g.、应用级、模块级或组件级状态).
Angular专家还应该知道何时使用指令以及如何设置它们. 通过向DOM中的元素附加自定义行为,指令是扩展HTML的一种神奇方式. For example, 你可以设置一个指令来为元素添加悬停工具提示, 设置热键事件处理, 或者当用户单击元素外部(以关闭下拉菜单)时注册, for example).
任何重要的应用程序都很可能有自己的自定义管道, 所以你的专家需要精通这些, too. Pipes (or filters (对于AngularJS)是专门用来转换你显示的数据的. Angular有很多特性 built-in pipes ,而AngularJS自带了很多 内置的过滤器 . 向你的专家咨询这些方便的工具, 当它们可以使用管道或过滤器时,确保它们不会在整个应用中重复相同的转换!
承诺和可观察对象
虽然不是严格特定于angular的, 承诺和可观察对象是Angular世界中常见的范例, 你的专家也应该熟悉这些.
感谢承诺,我们不再生活在恐惧中 callback hell ,您的专家应该知道何时以及如何使用它们(例如包装REST API请求)。. 此外,Angular引入了ReactiveX的使用 Observables ,它提供了一种很棒的数据流方式.
Pitfall No. 5 .不做代码审查
你能说说而已,但你能行吗?
So, 你未来的专家听起来好像他们知道自己在说什么, 但他们真的能分解问题并写出高质量的代码吗?
对他们现有的一些可以与您共享的代码进行代码演练. 它不需要完美(但如果不是的话), 他们应该能够向你解释他们如何改进它). 另外—或者如果他们没有任何开放源代码可以共享—让他们在您的问题域内编写一个示例组件.g.一个结账购物车,一个供教师添加课程计划的网页表单,或者一个待办事项列表). Alternatively, 您可以设置一些示例代码,并让他们对其进行解释,识别bug并进行清理.
检查他们的代码不仅能让你了解他们的能力, 还有他们的风格. 良好的风格在保持代码可维护性和无bug方面大有帮助, 这只是他们资历的一个很好的总体标志.
注意事项:
他们遵循最佳实践 Angular or AngularJS ).
风格(大小写、格式等)的一致性.).
他们在Angular中使用TypeScript.
他们可以解释他们的代码是如何工作的,并为他们的决定辩护.
Read up on good code , 常见的JavaScript错误 , and 常见的AngularJS错误 . 如果你雇佣的人还没有经过审查, 您还应该测试他们的一般编程技能(这是有原因的) FizzBuzz 清除了那么多的自由职业者).
Pitfall No. 6 .在没有测试策略的情况下进行
测试是每个代码库的重要组成部分. 它们就像温暖, 为你的工程师提供舒适的安全毯, 让他们相信他们没有破坏任何东西,也没有给公司造成损失. 良好的测试和良好的测试策略将提高你的能力 技术财富 ,而糟糕的测试,或者缺乏策略,将是一个持续的挫折和主要的代码债务的来源.
一个优秀的自由职业者会提倡测试,并理解测试的好处:
防止退化(防止 “你说用户不能再注册是什么意思!?” ).
充当代码库的编码文档, 使其他开发人员更容易理解, maintain, and extend it.
在恼人的边缘情况下验证功能并防止bug.
如果你不了解测试,你很可能会陷入 “We need tests!” trap. 这可能会导致你雇佣一个并不真正理解测试的人, 但却乐于编写大量无用或极其脆弱的测试.
在考虑Angular咨询时, 你需要了解潜在雇员对测试的理解,并决定他们将如何测试你的应用.
注意事项:
帮助你探测他们的能力, 您可以提供一个示例组件, service, 或者指示并询问他们要测试什么——甚至让他们写下他们为它编写的所有测试的“应该(空白)”描述, 然后把其中一个写出来.
当雇佣专业的Angular专家时,不要肤浅地询问测试. 相反,探究他们对测试内容以及如何测试的理解.
Pitfall No. 7 .只让非开发者面试你的自由职业者
当雇佣一名自由开发者进行Angular(JS) web开发时, 你要确保有开发人员面试过他们. 仅仅因为一个自由职业者很自信, 这并不意味着他们有能力, 而非开发者则更有可能出现代价高昂的招聘失误. 一个优秀的开发人员能够认出那些知道他们在说什么的人. 你的开发人员还应该确认自由职业者能够做到这一点, 通过面试问题和挑战.
如果你没有高级开发人员,你可以请教朋友,或者选择经过审查的开发人员.
从长远来看,这种预先的努力将节省你的时间和金钱
探索AngularJS开发服务似乎很困难, opaque, 这个过程可能很昂贵. After all, 如果你正在寻找一名自由职业者来为你现有的项目或团队做出贡献, 找到一个合适的人,并且他的能力达到了标准,这是非常重要的. 如果你正在从头开始构建一个新项目, in many ways, 你的项目未来的成功将取决于你的专家在早期阶段所做的决定.
But don’t panic. 采取上述预防措施, 你不仅可以确保你将雇佣一名熟练的开发人员, 而且你的项目将走上成功的正确轨道,并充分利用Angular提供的所有强大特性.