编程人 cdmana.com

作为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、画个总结的系统架构图,如果流程比较多,可以话重要分支的流程图

Scroll to Top