作为Java新手,如何才能快速的看透一个Java项目呢?

简介: 现在面试没有一点项目经验真的是很难过关啊

前言

技术学习是一个总结、纠错、触类旁通的过程,而不是单纯重复练习的过程,如果你问一个做过5年以上Java的老码农,他们很多人都会有很强的“搬砖感”,这种“搬砖感”其实就是对Java项目的触类旁通、看出套路来了,比如:

(1)绝大部分Java应用系统,绝大部分功能归根到底都是数据库的“CRUD增删改查”,中间加了一些数据的校验、转换和逻辑运算,不同之处就是有的功能流程拐弯多一些、性能要求高一些、界面交互炫酷一些等。

(2)绝大部分应用系统,核心架构其实都是展示层、业务处理层和数据访问层。所谓的不同就是增加了一系列看似高大上的非功能性组件(缓存、分布式、并发、安全验证等)。
那么作为一个Java新手,如何才能快速的看透一个Java项目呢?

(1)DEBUG,对于程序员来讲,DEBUG是一个最核心的技能,挑选一个典型流程,从展示层、业务处理层、数据访问层一层一层的DEBUG下来,就可以搞清楚界面上发起的请求是如何进行业务处理,如何完成数据库操作并如何返回结果给前端界面的。

(2)读懂配置文件,其实现在Java项目的配置文件相比以前已经比较少了,配置文件里面往往配置了一些请求映射、访问路径、参数设置等重要信息,熟悉这些信息会对自己掌握系统运作方式有很大帮助。

(3)看文档,找出系统里面用到的开源框架/组件,把他们的官方文档通读一遍,搞清楚这些框架/组件是如何搭建、配置和运作的。如果能把官方文档搞熟搞懂,其实绝大部分遇到的BUG根本不用搜索引擎,都在文档里面有答案了。

(4)实际动手做一个功能,不要抄代码,而是仿照其他功能做一个类似的功能(搬砖),做完一个功能其实你就能大概理解系统的技术工作原理了。

(5)如果身边有资深的老程序员,能让他花个半小时一个小时的跟你整体讲一下,效果更佳显著。

一个在线考试系统,练手项目用他很香

项目介绍

学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序,能覆盖到pc机和手机等设备。整理了100+个Java项目视频+源码+笔记

开源版使用须知

(1)仅用个人学习,商用请购买授权

(2)禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负

学生系统功能

(1)登录、注册:注册时要选年级,过滤不同年级的试卷, 账号为student/123456

(2)首页:任务中心、固定试卷、时段试卷、可以能做的一部分试卷

(3)试卷中心:包含了所有能做的试卷,按学科来过滤和分页

(4)考试记录:所有的试卷考试记录在此处分页,可以查看试卷结果、用时、得分、自行批改等

(5)错题本:所有做错的题目,可以看到做题的结果、分数、难度、解析、正确答案等

(6)个人中心:个人日志记录

(7)消息:消息通知

(8)试卷答题和试卷查看:展示出题目的基本信息和需要填写的内容

管理系统功能

(1)登录:账号为 admin/123456

(2)主页:包含了试卷、题目、做卷数、做题数、用户活跃度的统计功能,活跃度和做题数是按月统计

(3)用户管理:对不同角色 学生、教师、管理员 的增删改查管理功能

(4)卷题管理:

1)试卷列表:试卷的增删改查,新增包含选择学科、试卷类型、试卷名称、考试时间,试卷内容包含添加大标题,然后添加题目到此试卷中,
组成一套完整的试卷

2)题目列表:题目的增删改查,目前题型包含单选题、多选题、判断题、填空题、简单题,支持图片、公式等。

(5)教育管理:对不同年级的学科进行增删改查

(6)消息中心:可以对多个用户进行消息发送

(7)日志中心:用户的基本操作进行日志记录,了解用户使用过情况

软件架构图

学生考试系统

后台管理系统

SpringBoot库存管理系统,拿来学习真香

项目介绍

Finer进销存是一款面向中小企业的供销链管理系统,基于J2EE快速开发平台Jeecg-Boot开发,采用前后端分离架构:SpringBoot2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。项目基于十多年的中小企业管理经验,由ERP领域的资深专家设计;产品分为基础版、标准版、企业版三个版本,可适应不同的管控流程;对于灵活多样的个性化的管理需求,在Jeecg-Boot支撑下,利用其强大的代码生成器,无需写任何代码就可以快速实现大多功能,也可手工加入复杂的业务逻辑!整理了100+个Java项目视频+源码+笔记

(1)基础版:管结果,直接出入库,生成应收应付,进行收付款并核销

(2)标准版:管过程,业务从合同、申请、订单开始

(3)企业版:管协同,全过程跟踪管理,集成协同办公

(4)本发布为基础版

功能模块

开发环境

(1)语言:Java 8

(2)IDE(JAVA):IDEA / Eclipse,安装lombok插件

(3)IDE(前端):IDEA / WebStorm

(4)依赖管理:Maven

(5)数据库:MySQL5.7+ & Oracle 11g & SqlServer2017

(6)缓存:Redis

项目下载和运行

(1)拉取项目代码

it clone https://gitee.com/FINERS/psi.git

cd  psi/ant-design-jeecg-vue

(2)安装node.js

(3)切换到ant-design-jeecg-vue文件夹下

# 安装yarn
npm install -g yarn

# 下载依赖
yarn install

# 启动
yarn run serve

# 编译项目
yarn run build

# Lints and fixes files
yarn run lint

系统登录

采购入库

树结构数据

总结

要了解一个项目,首先要知道这个项目的业务背景是什么,为什么要存在该系统。这个在理解项目的过程中非常重要。整理了100+个Java项目视频+源码+笔记

我们维护或者开发一个项目,不仅仅用到的是技术,当然技术是很重要的,在学习的过程中要结合业务去理解,过了10天半个月就想不起来这个项目是什么东西,这种就是因为单纯想学技术,而没有理解到业务,所以就忘了。

关于学习项目我这里总结了几个步骤分享给大家:

1、了解系统的业务背景,改系统产生的原因是什么

2、粗读系统的代理工作流程和一些重要的分支

3、基于业务去精读代码,如果使用到了某个你不懂的技术栈,那就想想为什么要用这个技术栈A而不是用另外一个技术栈B,在这个过程中学习

4、画个总结的系统架构图,如果流程比较多,可以话重要分支的流程图

相关文章
|
2月前
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
141 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
44 1
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
77 3
|
3月前
|
IDE Java 开发工具
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
48 0
|
3月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
4天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
21 4
|
9天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
22 3
|
12天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
32 1
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
340 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。