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

  • 相关阅读:
    自然数e为底数的指数函数的一个小运用
    Windows产品测试集合整理
    随手写的 IniFiles
    Windows C++ TLS 实现连接163邮箱
    Windows创建个人证书(C++实现,使用 as administrator)
    单进程单线程IOCP的实现(含客户端和服务端)
    32/64位下面的基本数据类型的大小
    WMI 获取操作系统名称和版本
    http 基本代理 C++实现(极简)
    获取内存大小、CPU大小、硬盘大小及使用率
  • 原文地址:https://www.cnblogs.com/crud2020/p/14178369.html
Copyright © 2011-2022 走看看