加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.cn/)- 图像处理、低代码、云通信、数据工具、物联设备!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

C++多元组Tuple使用方法?你熟悉吗?

发布时间:2021-02-05 14:30:29 所属栏目:传媒 来源:互联网
导读:10 Interview Questions Every JavaScript Developer Should Know 我写过一篇文章叫《Why Hiring is So Hard in Tech》, 其中给出评估 技术岗位候选者 的一些 常规原则,以什么是应该和不应该的形式罗列出来,其中有一条: The best way to evaluate a cand

10 Interview Questions Every JavaScript Developer Should Know

我写过一篇文章叫《 Why Hiring is So Hard in Tech 》, 其中给出评估 技术岗位候选者 的一些 常规原则,以什么是应该和不应该的形式罗列出来,其中有一条:

The best way to evaluate a candidate is a pair programming exercise.

评估候选者最有效的方法是「和候选者结伴的完成编程练习」。

意思是说,与候选人坐一起,让候选人敲键盘,你在旁边多看多听,少说。例如演示例如从Twitter API中提取tweet数据项,并在时间轴上显示出来。

虽然结伴练习很有价值,但是不存在一个单独的练习能决断一切,面对面交谈(的面试)也是一个非常有用的工具 [em] 。不过, 不要浪费时间询问语法或语言怪癖 。你需要看到大局,询问有关架构设计(architecture)和编程范型(paradigms) 等对整个项目有重大影响的经验知识。

EM:临场小练习能测试到能力(种类)是有限的,有很多深层经验或知识只能通过 别的手段探测 到,例如交谈,主题试题;而且没有很具体的答案(检测标准),例如怎么检测候选人 功能编程 的能力?

语法细节和API功能特性的知识 是很容易搜索的,但对于像 软件工程的智慧或 JavaScript开发人员 从经验中获得的 范型特性和习惯用法 这些经验知识,是很难短时间通过搜索学到的。

EM:这里提到了重点,作为招聘方,测试 候选人 的那些 不能在半小时查资料能习得的技能,求职者同样要明白这个道理。

EM:当然,作者提到的工程智慧,和编程经验具体指什么,有待研发

鉴于以上结论,对于Web开发和Javascript方面,我认为以下十个问题用在面试中,能比较有效评估候选人开发实力:

(EM:我不完成同意作者的这十条,并且翻译上有所增删,观点和内容都有,根据个人的看法,实则是我自己将这些问题回答了一遍)

第一,你知道哪两种 编程范型对 JavaScript开发者来很有用?

JavaScript 是一种多范型( multi-paradigm )编程语言,支持过程式编程,面向对象编程,和函数式编程,三种(实质两种)编程范型。JavaScript通过 原型继承( prototypal inheritance) 支持面向对象编程,和 函数作值(所谓一等公民)支持函数式编程。

第二,什么是函数式编程?

函数式编程是使用 纯函数(或数学函数)构造 程序的一种编程范型,纯函数的优点是没有副作用(避免使用共享数据 shared state),和不使用可变数据(mutable data) [em] ;

Lisp(1958年)是最早支持函数式编程的语言之一,并且受到了lambda演算的极大启发。Lisp和很多Lisp家族语言至今仍在流行。

JavaScript 支持函数式编程,并且越来越流行,例如JavaScript社区流行的闭包,高阶函数,函数作参数传递都是 重要表现。

EM:纯函数的优点有待实证,纯函数(功能)和类对象的区别有待分析

第三,传统类继承和原型继承的区别在哪里?

传统类继承是说,类(class)是「一个功能」的模板或设计样板(blueprint),它可以用来派生子类(子类继承父类所有功能,并可以有所扩展),和创建多个对象实例(使用new操作); 通过类继承的设计可实现程序的一种精致的分类层次结构(hierarchical class taxonomies)。

但是,由于子类和父类继承关系是一种白箱复用(父类不是完全封装,对子类可见),最终的类层次结构会高度耦合,这是类继承最大的问题。

与类继承不同,原型继承没有类概念(类是一个抽象的功能的“模子”),一切都是对象实例。「功能代码继承复用」通过 直接连接两个对象实例 实现,例如通过一个特殊的对象工厂函数( factory functions)生成新复用的对象,或复制(Object.create())。一个「目标新对象实例」 [em]可以将需要的功能小对象直接连入其中来实现复用功能,这是一种非常灵活的代码复用方法。

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读