前端和API设计
数据库
Git/Linux
大数据/云计算
架构设计/技术管理
100

代表着服务器和客户端一次会话的过程。其中对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储的变量不会丢失,而会在整个用户会话中一直存在下去。当客户端关闭会话,或者超时失效时会话结束。

Session

100

关系型数据库中的ACID代表什么?

atomicity, consistency, isolation, and durability

100

True or False

GNU 项目(开源的各种程序)+ Linux (操作系统内核)= GNU/Linux 这一个完整的操作系统。

True

100

列出市面上的主要三种公有云产品

AWS 

Azure 

Google cloud

100

将数据库读写操作分散到不同的节点上 

基本实现是:

数据库服务器搭建主从集群,一主一从、一主多从都可以。

数据库主机负责读写操作,从机只负责读操作。

数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。

业务服务器将写操作发给数据库主机,将读操作发给数据库从机。

Read Write Seperation读写分离

200

一种API架构风格,在请求前已经构建好了模式,客户端可以对请求进行校验,确保服务器能够进行响应。在到达服务端后,会有一个相关操作,负责使用前端应用的数据来解析整个模式。在给服务端发送包含大量查询的请求之后,API会返回一个JSON响应,内容正对应请求的资源。

GraphQL

200

NoSQL数据库大致分为哪四类?

Column Based

KV

Documented

Graph

200

找回之前输入的命令

上下键

history

Ctrl + R

200

公有云商业产品的开源解决方案?

OpenStack

200

the number of transactions per second processed by the server

TPS

300

这一种不同于传统的API,用了实时性需要足够快的轮询。是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。 在数据产生时立即发送数据,也就是能实时收到数据。 

唯一的缺点是初始建立困难

Webhook

300

InnoDB的底层实现的数据结构

B+树

300

Git中查看版本演变历史

git log

300

大数据系统的一种通用架构思想,有三个核心模块组成:批处理层(batch layer)、实时处理层(speed layer)、服务层 (serving layer) 

1)所有进入系统的数据,都会被分发到批处理层(batch layer)和快速处理层(speed layer)。

2)批处理层(batch layer)有两个作用:

管理 master 的数据(raw 数据):比如用 HDFS 来存储。

为数据转换为批处理视图做预处理。

3)服务层(serving layer)用于加载和实现数据库中的批处理视图,以便用户能查询。

4)快速处理层(speed layer)用于处理新数据和服务层更新造成的高延迟补偿。

(5)任何 Query 的答案,都能通过合并批处理视图和实时视图的结果来获得。

Lambda 架构

300

谈谈项目管理中(例如团队的测试代码覆盖率,产品的availability rate等),如何避免不足或过犹不及

事先定目标

边际收益 边际成本的平衡

400

True or False

TypeScript是JavaScript的超集,也遵循ECMAScript标准,在JavaScript的基础上增加了动态类型的支持,以及一些语法进行拓展。比如新增了枚举(Enum)这种在一些语言中常见的数据类型,对类(Class)实现了一些ES6标准中没有确定的语法标准等等。 

False

400

refers to taking a single database and partitioning the data across several database servers each with identical schema. This spreads the workload of a given database across multiple database servers, which means you can scale linearly simply by adding more database servers as needed.  

Horizontal sharding

400

sudo和sudo su区别

sudo 命令:暂时成为 root

sudo su 命令:一直成为 root

400

大数据系统的一种通用架构思想,

包括以下几点:

  1. 用 Kafka 或者类似的分布式队列系统保存数据,你需要几天的数据量就保存几天。
  2. 当需要全量重新计算时,重新起一个流计算实例,从头开始读取数据进行处理,并输出到一个新的结果存储中。
  3. 当新的实例做完后,停止老的流计算实例,并把老的一些结果删除。

只有在有必要的时候才会对历史数据进行重复计算,实时计算和流式计算都是使用同一段代码逻辑,同一计算框架。Kappa 架构中新的计算实例会输出到新表中,即使新的计算逻辑有问题时旧计算实例输出的旧表依然存在,有着较高的容错性。

Kappa 架构

400

列出>5种Load Balancer算法

Round Robin

Weighted RR

Least Connections (负载最低)

Least Response Time

Least Outstanding Requests

Hashing

500

Local Storage, Session Storage以及IndexDB存在于哪里?

浏览器的Application中

500

Mysql的几种锁

row lock

table lock

global lock

500

Linux 三剑客

grep,sed,awk

500

一种基本的大数据分类算法。其主要原理是:对于一个需要分类的数据,将其和一组已经分类标注好的样本集合进行比较,得到距离最近的 K 个样本,K 个样本最多归属的类别,就是这个需要分类数据的类别。

KNN 算法,K 近邻(K Nearest Neighbor)

500

从工程师到管理者,写代码越来越少,很多人感到焦虑不安全,请简述你们组的想法?

贡献从写代码逐渐转变为更高层级的视角