前言
技术学习是一个总结、纠错、触类旁通的过程,而不是单纯重复练习的过程,如果你问一个做过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.gitcd psi/ant-design-jeecg-vue
(2)安装node.js
(3)切换到ant-design-jeecg-vue文件夹下
安装yarnnpm install -g yarn
下载依赖yarn install
启动yarn run serve
编译项目yarn run build
Lints and fixes filesyarn run lint
系统登录
采购入库
树结构数据
下面是部分的项目展示
重点项目:谷粒商城
这是一个商城的项目,使用了spring cloud等技术,需要学习商城的小伙伴可以看下。
重点项目:微信小程序
目前微信小程序的开发也是非常火的,几乎每个app都做了自己的小程序,所以需要的小伙伴可以看看。
重点项目:SSM秒杀项目实战
总结
要了解一个项目,首先要知道这个项目的业务背景是什么,为什么要存在该系统。这个在理解项目的过程中非常重要。回 项目 获取100+个Java项目视频+源码+笔记。
我们维护或者开发一个项目,不仅仅用到的是技术,当然技术是很重要的,在学习的过程中要结合业务去理解,过了10天半个月就想不起来这个项目是什么东西,这种就是因为单纯想学技术,而没有理解到业务,所以就忘了。
关于学习项目我这里总结了几个步骤分享给大家:
1、了解系统的业务背景,改系统产生的原因是什么
2、粗读系统的代理工作流程和一些重要的分支
3、基于业务去精读代码,如果使用到了某个你不懂的技术栈,那就想想为什么要用这个技术栈A而不是用另外一个技术栈B,在这个过程中学习
4、画个总结的系统架构图,如果流程比较多,可以画重要分支的流程图
最后
希望能帮助到你在面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。