As a Java novice, how can I quickly see through a Java project?

foreword

Technical learning is a process of summarization, error correction, and analogy, rather than a process of simply repeating exercises. If you ask an old coder who has worked in Java for more than 5 years, many of them will have a strong sense of "moving bricks". This kind of "moving bricks" is actually a way to understand the Java project and see the routine, such as:

(1) In most Java application systems, most of the functions are in the final analysis the "CRUD addition, deletion, modification and query" of the database, and some data verification, conversion and logical operations are added in the middle. The difference is that some functional processes turn More, higher performance requirements, cooler interface interaction, etc.

(2) For most application systems, the core architecture is actually the presentation layer, business processing layer and data access layer. The so-called difference is the addition of a series of seemingly tall non-functional components (caching, distribution, concurrency, security verification, etc.).
So as a Java novice, how can you quickly see through a Java project?

(1) DEBUG, for programmers, DEBUG is a core skill, choose a typical process, from the display layer, business processing layer, data access layer DEBUG layer by layer, you can figure out what is initiated on the interface How the request is processed, how to complete the database operation and how to return the result to the front-end interface.

(2) Understand the configuration files. In fact, the configuration files of Java projects are relatively less than before. Some important information such as request mapping, access path, and parameter settings are often configured in the configuration files. Familiar with these information will help you master the system How it works helps a lot.

(3) Look at the documents, find out the open source frameworks/components used in the system, read through their official documents, and figure out how these frameworks/components are built, configured and operated. If you can get familiar with the official documents, in fact, most of the BUGs encountered do not need search engines at all, and there are answers in the documents.

(4) Actually make a function by hand, don't copy the code, but make a similar function (moving bricks) by imitating other functions. After completing a function, you can actually understand the technical working principle of the system.

(5) If there is a senior programmer around, let him spend half an hour and an hour to talk to you as a whole, the effect will be more significant.

An online examination system, it is very fragrant to use it for practice projects

Project Introduction

Xuezhisi online test system is a java + vue test system with front-end and back-end separation. The main advantages are simple and fast development and deployment, friendly interface design, and clear code structure. At present, it supports the web terminal and WeChat applet, and can cover devices such as PCs and mobile phones. Organized 100+ Java project videos + source code + notes

Instructions for using the open source version

(1) Only for personal learning, please purchase authorization for commercial use

(2) It is forbidden to sell the code and resources of this project in any form, and the infringer shall be responsible for any consequences arising therefrom

Student System Functions

(1) Login and registration: When registering, you must select a grade, filter test papers of different grades, and use the account number student/123456

(2) Home page: task center, fixed test papers, time period test papers, some possible test papers

(3) Test paper center: contains all test papers that can be done, filtered and paginated by subject

(4) Examination records: All examination papers and examination records are divided into pages here, where you can view examination paper results, time spent, scores, self-correction, etc.

(5) Wrong question book: For all wrong questions, you can see the results, scores, difficulty, analysis, correct answers, etc.

(6) Personal center: personal log records

(7) Message: message notification

(8) Test paper answer and test paper review: display the basic information of the question and the content to be filled in

Manage System Functions

(1) Login: account is admin/123456

(2) Home page: It includes test papers, questions, the number of papers, the number of questions, and the statistical function of user activity. The activity and the number of questions are counted on a monthly basis

(3) User management: add, delete, modify, and query management functions for students, teachers, and administrators in different roles

(4) Exam management:

1) List of test papers: add, delete, modify and check test papers, add subjects, test paper types, test paper names, test time, test paper content includes adding titles, and then add questions to this test paper to form a complete set of test
papers

2) Question list: add, delete, modify and check questions. The current question types include single-choice questions, multiple-choice questions, true-and-true questions, fill-in-the-blank questions, simple questions, pictures, formulas, etc. are supported.

(5) Educational management: add, delete, modify and check subjects of different grades

(6) Message Center: Messages can be sent to multiple users

(7) Log Center: log records the user's basic operations to understand the user's usage

Software Architecture Diagram

Student Examination System

background management system

SpringBoot inventory management system, used to learn really fragrant

Project Introduction

Finer Invoicing is a supply and marketing chain management system for small and medium-sized enterprises. It is developed based on the J2EE rapid development platform Jeecg-Boot and adopts a front-end and back-end separation architecture: SpringBoot2.x, Ant Design&Vue, Mybatis-plus, Shiro, JWT. Based on more than ten years of experience in the management of small and medium-sized enterprises, the project is designed by senior experts in the ERP field; the product is divided into three versions: basic version, standard version, and enterprise version, which can adapt to different management and control processes; for flexible and diverse personalized management needs , with the support of Jeecg-Boot, using its powerful code generator, you can quickly implement most functions without writing any code, and you can also manually add complex business logic! Organized 100+ Java project videos + source code + notes

(1) Basic version: manage the results, directly enter and exit the warehouse, generate receivables and payables, perform receipts and payments and write off

(2) Standard version: manage the process, business starts from contract, application and order

(3) Enterprise version: collaborative management, whole-process tracking management, integrated collaborative office

(4) This release is the basic version

functional module

development environment

(1) Language: Java 8

(2) IDE (JAVA): IDEA / Eclipse, install the lombok plugin

(3) IDE (front end): IDEA / WebStorm

(4) Dependency management: Maven

(5) Database: MySQL5.7+ & Oracle 11g & SqlServer2017

(6) Cache: Redis

Project download and run

(1) Pull the project code

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

cd  psi/ant-design-jeecg-vue

(2) Install node.js

(3) Switch to the ant-design-jeecg-vue folder

# 安装yarn
npm install -g yarn

# 下载依赖
yarn install

# 启动
yarn run serve

# 编译项目
yarn run build

# Lints and fixes files
yarn run lint

system login

Purchase storage

tree structure data

Summarize

To understand a project, one must first know what the business background of the project is and why the system exists. This is very important in the process of understanding the project. Organized 100+ Java project videos + source code + notes

When we maintain or develop a project, we not only use technology. Of course, technology is very important. In the process of learning, we must understand it in combination with business. After 10 days and a half months, we can’t remember what the project is. This kind of thing is because I just want to learn technology, but I don't understand the business, so I forget it.

Regarding the learning project, I have summarized a few steps here to share with you:

1. Understand the business background of the system and what is the reason for changing the system

2. The proxy workflow and some important branches of the rough reading system

3. Intensively read the code based on the business. If you use a technology stack that you don’t understand, then think about why you use this technology stack A instead of another technology stack B, and learn in the process

4. Draw a summarized system architecture diagram. If there are many processes, you can draw a flow chart of important branches

Guess you like

Origin blog.csdn.net/Design407/article/details/111588856