如何从0到1学习一个Java项目

本文指导如何通过GitHub和B站资源学习Java项目,包括选择项目、理解功能、调试与源码分析、应用技术到面试准备。强调结合实际需求,通过运行项目理解技术并运用到求职中。
摘要由CSDN通过智能技术生成

首先务必了解自己的目的,带着目的去github、码云、B站找相关的开源项目或视频。目的可能为:

  • 学习一个框架
  • 学习一个项目基础架构
  • 学习一个解决方案
  • 学习一个工具

找到一个star数比较多(github、码云)或者播放量比较大(B站)的项目,项目介绍比较丰富的,至少包含但不限于如下内容:

  • 项目功能介绍
  • 项目架构
  • 项目技术栈
  • 项目模块划分
  • 如何部署代码(将项目跑起来的教程介绍)

了解完项目介绍之后,将项目跑起来。必须能正常运行才可以进行下一步。

如果遇到一些需要你去调试修复bug才可以正常跑起来的项目,请尽快脱坑,更换另外的项目。没必要为这些项目浪费自己的时间。

熟悉项目功能,可以通过操作项目不同页面达到尽快熟悉项目功能的目的。用截图工具snipaste记录一些页面截图。包含但不限于:

  • 自己感兴趣的功能
  • 自己不知道怎么实现的功能

接下来就是阅读项目源码了,打开浏览器的开发者工具(F12键),再跑一次功能,找到自己感兴趣的功能(或自己不知道怎么实现的功能)对应的后台接口,然后在IDEA工具中找到对应的接口代码所在处,根据如下步骤去了解该功能的完整实现流程。

  1. 控制器
    • 请求怎么被控制器方法处理
    • 控制器方法怎么做参数验证
    • 控制器方法怎么调用业务方法
  2. 业务逻辑类
    • 业务方法怎么通过MyBatis(或其他ORM)访问数据库
  3. repo层:数据访问层(Data Access Layer),处理与数据存储相关的操作和逻辑。它提供了对数据存储的访问接口,隐藏了具体的数据存储细节,使上层的业务逻辑模块能够以统一的方式进行数据的增删改查。repo层通常包含如下内容:
    • 数据库操作:插入、更新、删除和查询
    • 事务管理:保证数据一致性
    • 缓存处理:repo层可以使用缓存技术(如Redis、Memcached等),以减少对数据库的访问压力,并提高数据的读取速度。它可以处理缓存的读取、写入和刷新等操作。

然后你再依样画葫芦,多跑几个业务流程,再结合代码理解整体流程,这时,你可以关注些细节,缺啥补啥。比如:

  • 你不理解 @Bean 注解,那你就去查
  • 你不理解 MyBatis 连接数据库的业务模型类或连接数据库的Repo类的含义,那你也查
  • 当你理解流程的时候,一定别拘泥语法,遇到不懂的,先整体上理解,比如先理解,通过业务模型类能做 MyBatis 映射,在基础上理解流程,等你理解好流程以后,再去通过业务模型类里面的@Table和@Entity等注解,理解做映射的细节步骤。

当你看明白流程和搞清楚流程中的细节语法以后,再去看衍生的组件。

比如某个项目的重点是讲Spring Boot整合spring cloud alibaba微服务,那么你先通过看其它资料,知道Nacos,Sentinel等组件是干嘛的,再到项目中找到和Nacos和Sentinel的相关配置,比如Nacos体现在配置文件里,Sentinel体现在xx类和xx注解中。

比如这个项目用到了Redis,那么你就去找“Spring Boot如何引入Redis”博客资料,知道如何在项目里进行redis配置,如何调用redis进行缓存写入和删除。

接下来你要做的绝不是自己动手从零开始实现这个项目,毕竟时间成本不允许,而且公司代码一般是根据现有代码修改。你应该这么做:

  • 试着删除某个模块的代码,然后自己去实现这个模块的功能。
  • 扩展这个项目功能,模仿着该项目的代码风格去实现新的功能模块。
  • 所以跑通一个Java项目后,如果你感觉把握不大,可以再去找个跑一下,但项目数量别超过3个。跑通后,赶紧去找公司开始工作,参与到商业项目中,只有在商业项目中你会遇到很多学习遇不到的问题,这也是你成长提升的契机。

通过项目学习之后,你应该学会复盘,将这个项目的介绍、学习目的、功能、技术栈、项目目录结构、项目解读、遇到问题、值得学习的点、项目结论等九个方面进行记录。写成一篇博客,好记性不如烂笔头,这样你就算隔了一个月之后忘记了这个项目的内容,通过这篇博客你可以花最少的时间迅速回忆起这个项目。

在这里插入图片描述

如果你已经工作,想要转行到Java开发,背面试题,简历上写你运行通的Java项目,优先找个能提供实践的机会。

总结:

  1. 如果大家只是运行人家的项目学习,通过人家的java项目学习,哪怕你把人家项目中的每个细节都掌握,面试找工作时,顶多得到的评价是“熟悉xx框架,熟悉xx语法”,所以你要结合你学习项目的需求,说明xx技术的用法,那倒有可能让面试官感觉你有xx技术的项目实践经验,这样哪怕你之前没做过真实项目,只要你结合项目说的技术到位,再背些面试题,还真有可能找到工作。
  2. 一定注意,你运行人家的项目,目的是为了找java工作,所以你在通过人家的项目学习时,不仅要做到理解其中的含义,更要把其中学到的技术用到找工作(或找更高级的工作)上,所以通过运行人家代码学习时,一定别拘泥于只搞明白人家项目技术。

参考博客:
初学者如何吃透一个Java项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值