怎样吃透一个java项目?

前言

对于刚开始看视频敲代码,最忌讳的便是一上来就完全照着视频做,这么做就算完完全全的跟着视频做出来一个项目,始终都无法将里面具体的知识化为己有,单纯来说只是简单的复刻,视频的作者本身是不会对他在做该项目过程中所遇到的bug和调试过程放出来的,所以你学到的就是一个几乎无bug的项目,这样你缺少一个主动去探索的过程,一个顺利、没有bug调试的项目自然不会让你印象深刻,这就是为什么会觉得做完项目后会有一种空虚的感觉,虽然一开始做项目可能对于自己的要求会稍微的下调,但不妨试着从一开始研究透一个项目,可以说这才是真正能从做项目中学到东西,下一次做项目前可以按着下面的方法试试,希望能对你有所帮助~

一、了解项目本身

在选定这个项目前,先要问一下自己,这个项目具体是做什么的呢?它的使用场景是什么?它整体的一个业务流程~是什么?它的架构设计Q的理念是什么?它运用到了哪些具体的技术?对于项目有一个大体的了解对于后续深入的学习项目是非常有必要的,这个时候官方的文档就很重要

了,就拿github中的项目来说,一般都带有一个文档对该项目进行介绍,甚至有的项目会说明现状以及对未来的相关规划,有了这个,我们就可以从整体上把握该项目的设计理念Q了。

二、保证代码的可运行性

在确定了一个适合自己做的项目之后,就可以搭建环境、调试环境然后进一步的对代码进行操作了,这里说的操作不可是题主那样的照着视频敲代码,现在大多数教学视频Q一般都会附上源码的相关文件,可以将这些代码在自己的电脑上试着运行一遍,确保所选项目的代码在自己的电脑上是可运行的,首先一个项目的体量一般是比较巨大的,如果没有事先有这样的准备直接开始敲代码,在敲代码的过程当中若是出现错误有时是很难排查出来的(尤其是一些特别细微的错误,这点深有感受)。

对于Java而言,在开发环境上需要注意与项目的要求一致,确定jdk的版本,jdk版本若是有差异会导致一些问题,如中文乱码、提示编译错误"等,这一点相信不少人在新手期都会遇到,

往往遇到时不知所措,会折腾不少时间乃至消磨做项目的心情,所以事先确保开发环境与项目的一致性很重要。

三、项目流程的学习

对于项目的学习这一块,建议的是从项目的主干流程开始学习,然后再细化分支的流程,怎么叫主干的流程呢?比如做一个Java的项目,从新建项目开始,封装、全局异常的处理、整合

spring、解决认证与授权的问题、跨域的问题、

再就是到了业务功能的开发(菜单管理Q、AP|接口的开发)、再到关于项目的部署,最后发布到线上,这是一个大概的主流程,对于主流程中用到的基础的技术知识,一定要有深刻的认识,包括其实现的原理、方式等,这些应该是属于基本功的,若是对于项目过程中的哪一块知识点不熟悉的,应当立刻回去查补一下,不要再做项目的过程中因为基础的不扎实将自己置身于过于被动的地位。

四、偏门或超纲浅尝辄止

上面所提及的是对于相关技术的基础知识要

"打破砂锅问到底Q"的态度,但并非是对于所

有,可能在项目的某些实现的方式上是比较偏门或者已经超出自己的理解范围了,对于这种已经不属于基础范畴的基础知识Q,若是过于深究,

对于项目的进度是没有好处的,而且还可能因为这样越研究越懵,因为有些细节所涉及的知识已经远远超过自己知识的范围了,简而言之就是技术水平达不到,对于这些有个大致的了解就可以了。

五、及时总结知识点

最后,无法避免的就是对于项目中知识点进行总

结,在这里我的建议是开个电脑的笔记应用如

Typora或者微软的笔记软件Onenote,这些有着更多可以帮助你管理笔记的功能,实现分类化的管理,如果你是初次做项目,在项目中所需要记录的知识点必然是很多,这些总结性的知识点能保存下来必然会成为你以后再做项目乃至工作的宝贵经验,有条理、分类清晰的笔记是你以后高效回顾复习的必然需要。

相关推荐
gopher95112 分钟前
final,finally,finalize的区别
java·开发语言·jvm
Jason-河山10 分钟前
利用 Python 爬虫采集 1688商品详情
java·http
计算机源码社10 分钟前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
Zww089114 分钟前
idea插件市场安装没反应
java·ide·intellij-idea
夜雨翦春韭15 分钟前
【代码随想录Day31】贪心算法Part05
java·数据结构·算法·leetcode·贪心算法
计算机学姐15 分钟前
基于微信小程序的调查问卷管理系统
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
problc27 分钟前
Android 组件化利器:WMRouter 与 DRouter 的选择与实践
android·java
程序员南飞2 小时前
ps aux | grep smart_webrtc这条指令代表什么意思
java·linux·ubuntu·webrtc
弥琉撒到我2 小时前
微服务swagger解析部署使用全流程
java·微服务·架构·swagger
一颗花生米。3 小时前
深入理解JavaScript 的原型继承
java·开发语言·javascript·原型模式