CS-Wiki CS-Wiki
Home
知识体系总览
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • MySQL
  • Redis
  • 设计模式
  • Java 基础
  • Java 集合
  • Java 并发
  • Java 虚拟机
  • Spring
  • Kafka
  • 校招扫盲
  • 项目推荐
  • 唠唠嗑儿
  • 读书笔记
归档
GitHub (opens new window)
Home
知识体系总览
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • MySQL
  • Redis
  • 设计模式
  • Java 基础
  • Java 集合
  • Java 并发
  • Java 虚拟机
  • Spring
  • Kafka
  • 校招扫盲
  • 项目推荐
  • 唠唠嗑儿
  • 读书笔记
归档
GitHub (opens new window)
  • Java 项目推荐总览
  • Java 项目推荐:超全文档,造轮子,轻量级 Java 权限认证框架
  • Java 项目推荐:生态完善,轻量级脚手架,后台权限管理系统
  • 这不比千篇一律的商城系统香,大型分布式微服务聚合支付项目
  • 项目推荐:手写数据库,简历上有这不得让人眼前一亮
  • 200-项目推荐
小牛肉
2023-02-12

项目推荐:手写数据库,简历上有这不得让人眼前一亮

最近帮很多春招和实习的小伙伴看了简历,就后端开发这个岗位来说,抛开每个人的实习经历不谈,100 篇简历里面得有 80 份是外卖(点评)和论坛(秒杀和商城倒是少了,估计大伙儿都知道避雷)

前年流行秒杀,去年流行 RPC,今年流行论坛,也确实是没办法,一来学校里面尤其是本科生根本接触不到好项目,老师教来教去就是 CRUD,二来不是每个人都有实习经历,而随着求职门槛的不断提高,大伙儿不得不自己去找项目做,但网络上能找到文档很全的手把手教学的优质项目确实少至又少,大部分同学都是从 B 站搜罗视频然后照着做,趋之若鹜。

无可厚非,建议可以先用这些项目找个实习,然后正式校招的时候能够有个实习项目,这样算是比较好,如果两个项目一个秒杀一个论坛或者一个外卖一个商城,那确实有点难顶了。

今天推荐一个轮子类项目:手写数据库,相比于偏业务的项目在面试时是更受欢迎的,做完这个轮子类项目还能对数据库有更深的理解,何乐而不为。

🏠 项目地址:

  • Github:https://github.com/CN-GuoZiyang/MYDB (opens new window)(点击文末阅读原文直达)
  • 教程地址:https://ziyang.moe/cs/project/mydb/ (opens new window)

🚩 项目简介:MYDB 是一个 Java 实现的简单的数据库,部分原理参照自 MySQL、PostgreSQL 和 SQLite。实现了以下功能:

  • 数据的可靠性和数据恢复
  • 两段锁协议(2PL)实现可串行化调度
  • MVCC
  • 两种事务隔离级别(读提交和可重复读)
  • 死锁处理
  • 简单的表和字段管理
  • 简陋的 SQL 解析(因为懒得写词法分析和自动机,就弄得比较简陋)
  • 基于 socket 的 server 和 client

我看了下教程,总共有 10 章,需要有 Spring、数据库和网络通信基础(当然你一边做一边学呗):

  1. 从最简单的 TM 开始
  2. 引用计数缓存框架和共享内存数组
  3. 数据页的缓存与管理
  4. 日志文件与恢复策略
  5. 页面索引与 DM 的实现
  6. 记录的版本与事务隔离
  7. 死锁检测与 VM 的实现
  8. 索引管理
  9. 字段与表管理
  10. 服务端客户端的实现及其通信规则

🎁 公众号

各位小伙伴大家好呀,叫我小牛肉就行,目前在读东南大学硕士,上方扫码关注公众号「飞天小牛肉」,与你分享我的成长历程与技术感悟~

帮助小牛肉改善此页面 (opens new window)
Last Updated: 2023/02/16, 11:27:10
这不比千篇一律的商城系统香,大型分布式微服务聚合支付项目

← 这不比千篇一律的商城系统香,大型分布式微服务聚合支付项目

最近更新
01
02
线上环境 CPU 使用率飙升如何快速排查?
03-05
03
面试官再跟你说中国没有根服务器,雪人计划让他了解下
02-23
更多文章>
Theme by Vdoing | Copyright © 2019-2023 飞天小牛肉 | 皖ICP备2022008966号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式