项目学习五步走
第一步 了解业务
先搞清楚你接受的项目:
1.是做什么的?面向谁?
2主要提供了哪些功能?
3.项目背景是怎么样的?
4.项目涉及的关键业务流程是怎么样的?
5.项目目前的规划是怎么样的,未来怎么样?
技术本身就是为了业务而服务,只有先搞清楚了业务之后你才是真正步入了这个项目的大门
第二步 搭建项目环境
搭建完成后,确保项目能够在自己的电脑上运行
第三步 看项目技术框架
看项目的相关依赖就行,Maven项目看pom.xml文件Gradle项目看build.gradle
可能会涉及到下面这几部分
1.项目最底层框架是什么?是Spring还是Spring Boot,又或者是其他框架呢?
2.项目依赖了哪些相关的包?挑重点看,比如数据库是MyBatis还是JPA或者是公司自研的框架呢?
3.项目使用的什么数据库?是MySQL还是PostgreSQL,又或者是其他数据库呢?
4.项目用到了缓存吗?是 Redis缓存吗?有没有用到本地缓存呢?
5.项目用到了消息队列吗?Kafka还是 RocketMQ?
6.项目的权限管理这块是怎么做的呢?
7.....
第四步 看项目的代码结构
比较常见的可能会分为下面三层(复杂的系统分层可能会更多)
1.Repository(数据库操作)
2.Service(业务操作)
3.Controller(数据交互)
如果是DDD分层架构的,可能是:
1.User Interface(用户界面层)
2.Application(应用层)
3.Domain(模型层)
4.Infrastructure(基础实施层)
不同的公司对于项目结构的划分可能不同,不过大体类似
第五步 从功能主线/问题出发研究源码
一个比较成熟的项目的源码量是非常多,我们不可能都完完整整地看完,也没有必要。
你可以通过debug调试研究项目核心代码逻辑。比较推荐的方式就是通过一个功能主线((比如Dubo是如何暴露服务的?)或者问题(比如﹖)出发。
对于企业项目来说,大部分还是知道如何进行debug调试的。但是,对于Spring这种顶级开源框架来说,很多人就不知道怎么打断点了。
推荐将源码拷贝到本地,然后运行源码提供的Demo
项目经历的四个小技巧
1.提前搞清楚项目的架构图、技术选型等
2.提前想好项目的亮点,针对项目涉及的技术进行深度复习
3.引导面试官问你熟悉的技术
4.突出个人的贡献比如自己在项目中解决了什么问题,而不是自己做了什么