前言
技術學習是一個總結、糾錯、觸類旁通的過程,而不是單純重復練習的過程,如果你問一個做過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、畫個總結的系統架構圖,如果流程比較多,可以話重要分支的流程圖