菜单

概述

相关源文件

本文档全面概述了 Tech Interview Handbook 代码库,解释了其目的、主要组成部分和系统架构。Tech Interview Handbook 是一个开源项目,旨在通过精选内容和互动工具帮助软件工程师准备技术面试。

仓库目的

Tech Interview Handbook 代码库是技术面试准备资源的中心枢纽。它旨在提供全面、高质量的内容,涵盖技术面试过程的所有阶段,从准备简历、掌握编码面试到协商录用。

正如 README.md22-24中所述,Tech Interview Handbook 包含精选内容,包括:

并非每个人都有时间刷几百道 LeetCode 题目。以下是为忙碌的工程师准备的免费精选技术面试准备材料,由我(Blind 75 的作者)提供。已有超过 100 万人从中受益!

来源:README.md

存储库结构

Tech Interview Handbook 采用 monorepo 结构,使用 pnpm/yarn 进行包管理。这种结构使得在整个平台中共享组件和维护一致的开发实践成为可能。

来源:pnpm-workspace.yamlpackage.jsonREADME.md

主要组件

代码库包含两个主要应用程序:

  1. 文档网站:一个使用 Docusaurus 构建的静态网站,是用户寻找面试准备资源的入口。

  2. 门户应用程序:一个交互式 Next.js 应用程序,提供简历评审、薪酬数据共享和面试准备题库等功能。

文档网站

文档网站包含精选内容,例如:

  • 算法指南和备忘单
  • 系统设计面试准备
  • 简历写作指南
  • 行为面试问题
  • 编码面试最佳实践

有关网站结构的更多详细信息,请参阅 网站和文档

来源:README.md

门户应用程序

门户应用程序提供互动工具,帮助用户准备技术面试。

正如 apps/portal/src/pages/index.tsx6-28所示,该门户包含三个主要功能:

  1. 简历评审:上传和评审简历,提供反馈。
  2. 技术 offer:分享和比较薪酬数据。
  3. 题库:浏览和贡献面试题目。

有关门户架构的更多信息,请参阅 门户应用程序架构

来源:apps/portal/src/pages/index.tsxapps/portal/src/pages/_app.tsx

技术架构

仓库设置

Tech Interview Handbook 按照 pnpm-workspace.yaml所定义的 monorepo 结构进行组织。

packages:
  - 'apps/*'
  - 'packages/*'

这种结构允许在应用程序的不同部分之间共享代码,同时保持关注点的分离。

package.json11-22中定义了关键项目命令,包括:

  • pnpm build:构建所有包和应用程序。
  • pnpm dev:以开发模式运行门户应用程序。
  • pnpm dev:website:以开发模式运行文档网站。
  • pnpm dev:all:并行运行所有应用程序。

来源:package.jsonpnpm-workspace.yaml

门户应用程序架构

门户应用程序采用 Next.js 构建,并使用了以下技术:

门户应用程序使用 tRPC 在客户端和服务器之间建立类型安全的 API 通信,配置位于 apps/portal/src/pages/_app.tsx45-92 中配置。

来源:apps/portal/package.jsonapps/portal/src/pages/_app.tsxapps/portal/next.config.mjs

核心功能

简历评审系统

简历评审系统允许用户上传简历、浏览他人的简历并提供反馈。

技术 offer 系统

技术 offer 系统使用户能够跨公司分享和比较薪酬信息,帮助求职者对其 offer 进行基准测试。

题库

题库是一个社区驱动的面试题库,用户可以在其中浏览、贡献并记录遇到的特定题目。

来源:apps/portal/src/pages/index.tsx

开发配置

项目使用多种配置工具来维护代码质量和一致性:

配置目的位置
ESLint代码 Lintpackages/eslint-config-tih/index.js
TypeScript类型检查packages/tsconfig
Tailwind CSS样式apps/portal/tailwind.config.cjs
Next.js框架配置apps/portal/next.config.mjs

来源:apps/portal/.eslintrc.jspackages/eslint-config-tih/index.jsapps/portal/tailwind.config.cjsapps/portal/next.config.mjs

结论

Tech Interview Handbook 是一个全面的技术面试准备平台,包含教学内容和互动工具。其 monorepo 结构允许跨应用程序不同部分共享代码和保持一致的开发实践。

有关特定组件的更详细信息,请参阅以下页面: