Skip to content

Centific-李玉杰-node #1860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.DS_Store
node_modules/

.DS_Store
node_modules/
258 changes: 129 additions & 129 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,129 +1,129 @@
## 如果你还没听说过「红杉」...

身为工程师的你一定听说过这些公司: Apple, Google, GitHub...

作为「创业者背后的创业者」,红杉中国投资了阿里巴巴、京东、头条、美团点评等互联网头部企业。

## 开放岗位

武汉:
- [TypeScript Frontend](frontend/)
- [Swift](swift/)
- [UI 设计师](design/)

深圳/香港:
- [Support Engineer](it-support-engineer/)

链接中有更为具体的 JD。

## interview-assignments

The monorepo for interview take home assignments.

Please find your assignment in subfolder accordingly.

## 红杉专属T-shirt
通过线上测试并顺利进入后续面试的同学,不论我们最终能否有幸与你共事,红杉都为技术出众的你特意准备了印有红杉logo的专属T-shirt(款式随机发放),请在面试时告知我们T-shirt尺码大小(180 vs 170),以及邮寄地址联系方式。希望你能喜欢我们准备的这份小礼物!
![WechatIMG145](https://user-images.githubusercontent.com/89758/135418812-74b86ed4-b980-4b81-aa00-732daa07957f.jpeg)

## 这样一家投资公司为什么要招工程师 / 设计师?

为红杉中国各团队提供数字化支持,持续整合业务,提升能效,创造新机会。投资了这么多高新互联网企业,我们自身的脚步也不想停下。

虽然不是面向公众的产品但有很多有意思的地方,具体的我们面试聊。

## 在投资公司做技术 / 设计是不是属于边缘业务?

对于其他投资公司,我们不太清楚。但在红杉中国,我可以肯定地告诉你,工程师所做的不会是写几个简单的展示型页面,设计师也不会只是画图。你将会:

1. 接触到真实业务场景与核心需求,参与制定世界顶级 PE / VC 的日常业务流程
2. 从用户的角度出发思考产品逻辑与方向
3. 近距接触投资人们的喜怒哀乐 (接 bug)
4. 独立地负责整块功能,跟随产品一起迭代整体技术架构

## 技术栈是?

设计:Figma

前端:TypeScript + React

后端:TypeScript + Express

移动端:SwiftUI

如此激进的选择得益于完善的设备管理以及项目所处的阶段,你不用花大量时间处理不同设备的兼容问题或陈旧的代码,只需要关注技术本身。

## 实力如何?

团队成员来自 AWS、字节跳动、快手、阿里、猿辅导 等企业,深知做好技术的重要性。所以我们在尽可能的范围内将流程做到最规范:CI / CD / Code Review 一样都没落下。再厚脸皮举两个例子:

1. 有工程师在入职后感叹:没想到对产品和 Code Review 的要求如此严格,不过同时也能学到很多新东西
2. 设计师说:不再只是 “画图的”,而是能真正地思考并把握一个产品的设计与体验

## 说了这么多优点,难道没有缺点吗?

肯定不是。如果你想发展的是高并发 / 高可用等基础架构方向,诚实地说我们短期内没有合适的岗位。

但如果你想在保持开发技术的同时,去探索一块新的领域,去深度理解用户需求与产品间的联系,去从更高层的角度看待你所在的行业,这将是一个不错的机会。

## 团队氛围呢?

两个词:高效与平等。

1. 我们不愿意大家的时间花在无意义的事情上。大家曾不经意抱怨写周报需要占用时间,于是我们马上取消了周报,并改为每周计划会的形式来规划产品与同步进度
2. 在这里没有谁比谁的职级高,只有事实与道理。只要言之有理,每一个人都可以发出自己的声音。我们的设计师经常说:“这是开发与设计相处得最融洽的团队”
3. 出现了问题我们的方案是先解决,随后建立相关的机制避免重蹈覆辙,而不是去一味地责怪某一个人
4. 不鼓励加班,更看重效率

## 有些什么福利?

我们不打算靠福利来吸引优秀的你,不过该有的都不会缺:

1. 最新 MacBook Pro
2. 外设(键鼠,升降桌,高清显示器…)
3. 无限冷热饮/小吃供应

至于薪水,我们想要找到合适的人而不是想一味地压缩成本。给出的 package 不输互联网大厂,相信能让你满意。

## 会不会存在类似互联网企业的的一些坑?

工作时间:双休,结果导向,倡导提升效率而不是加班

年龄限制:没有。团队成员 70 后到 90 后都有分布

学历要求:不限。面试通过都好说

## 你们的技术太新了,我没有用过...

没关系。我们并不需要你的经历 100% 匹配上文提到的技术栈,如果你有三年以上(可以有例外)技术相关的工作经历,并愿意:

1. 要求 FE/BE 熟练掌握 TS;iOS 工程师需要熟练掌握 SwiftUI。我们会在面试时考察。没有相关项目经验也可以,*学习能力也是杰出工程师的特征之一,我们相信你能在合理的时间内准备好相应的技能*,这不会很难。
2. 花一些时间学习并做一份简单的作业
3. 面试来进一步确认我们的岗位符合你的预期

我们随时欢迎你的到来。

## 作业在哪?如何提交?

### 设计师

发送你的作业和简历/作品集至以下地址:

```
cmVjcnVpdGluZy5kZXNpZ25Ac2VxdW9pYWNhcC5jb20=
```

(防止爬虫进行了 base64 编码,可以通过[这个链接](https://tool.oschina.net/encrypt?type=3)进行解析)


### 其他岗位

Fork 当前仓库并在相关文件夹下找到你的作业。完成作业后提交一个 Pull Request 即可。如果方便,可以在 PR 描述中留下你的简历。

注意:使用尽量简洁的实现方式,尽量少使用第三方库。

## 还有其他要补充的吗?

1. 面试时我们会考察编程语言的掌握能力(TS/Swift)。
2. 我们看重解决问题的能力,以及发散思维的能力。
3. 所有办公地点在市区,交通便利。
## 如果你还没听说过「红杉」...
身为工程师的你一定听说过这些公司: Apple, Google, GitHub...
作为「创业者背后的创业者」,红杉中国投资了阿里巴巴、京东、头条、美团点评等互联网头部企业。
## 开放岗位
武汉:
- [TypeScript Frontend](frontend/)
- [Swift](swift/)
- [UI 设计师](design/)
深圳/香港:
- [Support Engineer](it-support-engineer/)
链接中有更为具体的 JD。
## interview-assignments
The monorepo for interview take home assignments.
Please find your assignment in subfolder accordingly.
## 红杉专属T-shirt
通过线上测试并顺利进入后续面试的同学,不论我们最终能否有幸与你共事,红杉都为技术出众的你特意准备了印有红杉logo的专属T-shirt(款式随机发放),请在面试时告知我们T-shirt尺码大小(180 vs 170),以及邮寄地址联系方式。希望你能喜欢我们准备的这份小礼物!
![WechatIMG145](https://user-images.githubusercontent.com/89758/135418812-74b86ed4-b980-4b81-aa00-732daa07957f.jpeg)
## 这样一家投资公司为什么要招工程师 / 设计师?
为红杉中国各团队提供数字化支持,持续整合业务,提升能效,创造新机会。投资了这么多高新互联网企业,我们自身的脚步也不想停下。
虽然不是面向公众的产品但有很多有意思的地方,具体的我们面试聊。
## 在投资公司做技术 / 设计是不是属于边缘业务?
对于其他投资公司,我们不太清楚。但在红杉中国,我可以肯定地告诉你,工程师所做的不会是写几个简单的展示型页面,设计师也不会只是画图。你将会:
1. 接触到真实业务场景与核心需求,参与制定世界顶级 PE / VC 的日常业务流程
2. 从用户的角度出发思考产品逻辑与方向
3. 近距接触投资人们的喜怒哀乐 (接 bug)
4. 独立地负责整块功能,跟随产品一起迭代整体技术架构
## 技术栈是?
设计:Figma
前端:TypeScript + React
后端:TypeScript + Express
移动端:SwiftUI
如此激进的选择得益于完善的设备管理以及项目所处的阶段,你不用花大量时间处理不同设备的兼容问题或陈旧的代码,只需要关注技术本身。
## 实力如何?
团队成员来自 AWS、字节跳动、快手、阿里、猿辅导 等企业,深知做好技术的重要性。所以我们在尽可能的范围内将流程做到最规范:CI / CD / Code Review 一样都没落下。再厚脸皮举两个例子:
1. 有工程师在入职后感叹:没想到对产品和 Code Review 的要求如此严格,不过同时也能学到很多新东西
2. 设计师说:不再只是 “画图的”,而是能真正地思考并把握一个产品的设计与体验
## 说了这么多优点,难道没有缺点吗?
肯定不是。如果你想发展的是高并发 / 高可用等基础架构方向,诚实地说我们短期内没有合适的岗位。
但如果你想在保持开发技术的同时,去探索一块新的领域,去深度理解用户需求与产品间的联系,去从更高层的角度看待你所在的行业,这将是一个不错的机会。
## 团队氛围呢?
两个词:高效与平等。
1. 我们不愿意大家的时间花在无意义的事情上。大家曾不经意抱怨写周报需要占用时间,于是我们马上取消了周报,并改为每周计划会的形式来规划产品与同步进度
2. 在这里没有谁比谁的职级高,只有事实与道理。只要言之有理,每一个人都可以发出自己的声音。我们的设计师经常说:“这是开发与设计相处得最融洽的团队”
3. 出现了问题我们的方案是先解决,随后建立相关的机制避免重蹈覆辙,而不是去一味地责怪某一个人
4. 不鼓励加班,更看重效率
## 有些什么福利?
我们不打算靠福利来吸引优秀的你,不过该有的都不会缺:
1. 最新 MacBook Pro
2. 外设(键鼠,升降桌,高清显示器…)
3. 无限冷热饮/小吃供应
至于薪水,我们想要找到合适的人而不是想一味地压缩成本。给出的 package 不输互联网大厂,相信能让你满意。
## 会不会存在类似互联网企业的的一些坑?
工作时间:双休,结果导向,倡导提升效率而不是加班
年龄限制:没有。团队成员 70 后到 90 后都有分布
学历要求:不限。面试通过都好说
## 你们的技术太新了,我没有用过...
没关系。我们并不需要你的经历 100% 匹配上文提到的技术栈,如果你有三年以上(可以有例外)技术相关的工作经历,并愿意:
1. 要求 FE/BE 熟练掌握 TS;iOS 工程师需要熟练掌握 SwiftUI。我们会在面试时考察。没有相关项目经验也可以,*学习能力也是杰出工程师的特征之一,我们相信你能在合理的时间内准备好相应的技能*,这不会很难。
2. 花一些时间学习并做一份简单的作业
3. 面试来进一步确认我们的岗位符合你的预期
我们随时欢迎你的到来。
## 作业在哪?如何提交?
### 设计师
发送你的作业和简历/作品集至以下地址:
```
cmVjcnVpdGluZy5kZXNpZ25Ac2VxdW9pYWNhcC5jb20=
```
(防止爬虫进行了 base64 编码,可以通过[这个链接](https://tool.oschina.net/encrypt?type=3)进行解析)
### 其他岗位
Fork 当前仓库并在相关文件夹下找到你的作业。完成作业后提交一个 Pull Request 即可。如果方便,可以在 PR 描述中留下你的简历。
注意:使用尽量简洁的实现方式,尽量少使用第三方库。
## 还有其他要补充的吗?
1. 面试时我们会考察编程语言的掌握能力(TS/Swift)。
2. 我们看重解决问题的能力,以及发散思维的能力。
3. 所有办公地点在市区,交通便利。
92 changes: 60 additions & 32 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,73 @@
# TypeScript Backend Engineer Assignment
<p align="center">
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
</p>

### Typescript 实现短域名服务(细节可以百度/谷歌)
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cycode: Secret of type: 'Circleci Token' was found.
Severity: High

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cycode: Secret of type: 'Circleci Token' was found.
Severity: High

[circleci-url]: https://circleci.com/gh/nestjs/nest

撰写两个 API 接口
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
<p align="center">
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
</p>
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

- 短域名存储接口:接受长域名信息,返回短域名信息
- 短域名读取接口:接受短域名信息,返回长域名信息。
## Description

限制
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

- 短域名长度最大为 8 个字符(不含域名)
## Installation

递交作业内容
```bash
$ npm install
```

1. 源代码
2. 单元测试代码以及单元测试覆盖率(覆盖率请勿提交整个目录,一张图片或一个 text table 即可)
3. API 集成测试案例以及测试结果
4. 简单的框架设计图,以及所有做的假设
5. 涉及的 SQL 或者 NoSQL 的 Schema,注意标注出 Primary key 和 Index 如果有。
## Running the app

其他
```bash
# development
$ npm run start

- 我们期望不要过度设计,每一个依赖以及每一行代码都有足够充分的理由。
# watch mode
$ npm run start:dev

## 岗位职责
# production mode
$ npm run start:prod
```

- 根据产品交互稿构建高质量企业级 Web 应用
- 技术栈:Express + React
- 在产品迭代中逐步积累技术框架与组件库
- 根据业务需求适时地重构
- 为 Pull Request 提供有效的代码审查建议
- 设计并撰写固实的单元测试与集成测试
## Test

## 要求
```bash
# unit tests
$ npm run test

- 三年以上技术相关工作经验
- 能高效并高质量交付产品
- 对业务逻辑有较为深刻的理解
- 加分项
- 持续更新的技术博客
- 长期维护的开源项目
- 流畅阅读英文技术文档
- 对审美有一定追求
- 能力突出者可适当放宽年限
# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov
```

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).
Binary file added backend/doc/api集成测试.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added backend/doc/产品框架图.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added backend/doc/产品流程图.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added backend/doc/单元测试.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added backend/doc/数据库结构.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions backend/nest-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
}
Loading