查看原文
其他

这个项目不算烂大街,可以冲

The following article is from 飞天小牛肉 Author 小牛肉

鱼皮最新原创项目教程,欢迎学习

大家好,我是鱼皮。

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

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

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

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

🏠 项目地址:

  • Github:https://github.com/CN-GuoZiyang/MYDB
  • 教程地址:https://ziyang.moe/cs/project/mydb/

🚩 项目简介: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. 服务端客户端的实现及其通信规则


最后,欢迎学编程的朋友们加入鱼皮的 
编程知识星球 ,鱼皮会 1 对 1 解决你的问题,直播带你做出项目、为你定制学习计划和求职指导,还能获取海量编程学习资源,和上万名学编程的同学共享知识、交流进步。

往期推荐

我的学习小圈子

一年了,说几件大事!

又一个新项目搞完啦!!!

世界上最健康的程序员作息表!

怎么写出更优质的代码?

目前最火的 ChatGPT 开源项目!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存