怎么快速入门一个老的java项目
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1.有文档肯定先看文档,先看设计文档,产品的、技术的设计文档,接口文档写的好的可以看看,要是写的不好不着急看。
2.把项目用到的外部库先简单扫一遍,工具类的知道做什么的就可以,主要是框架类的,对产品实现的框架要理解,至少可以知道至少要有哪些组件或实现接口
3.现在才到了需要看项目代码的部分:
先看类包路径(非常不爽很多java程序员把类路径搞的太深太细,典型的架构大于实现):
一般有两种分法,一种是任何一个模块都会按照model、controller等等方式分开,这种是我深恶痛绝的做法,因为这么分开和没分开其实是没有区别的,遇到这种情况通常只要看controller或service/facade就可以了(通常这样分的结果是目录里的类非常非常混乱);
另一种是模块内按逻辑分开,通过作用域修饰符设定访问权限,这样阅读的时候很爽,因为可以生成javadoc来看,private不生成doc,只需要看公开的部分,这样一眼就可以看出来开发者为自己开发的包的使用者所定的规矩;
然后再看接口和数据对象类,接口就是上面说的开发者为自己写的类开放的使用接口,数据对象类是我自己的说法,指的是数据库或核心业务单元在项目中的映射对象,这部分主要是开发者对业务的数据模型理解。
上面的基本看明白了,就可以动手做扩展或修改了。大部分类是完全不需要看内部代码的。
如果项目代码架构设计做得好,(除了一些简单的实现总线连接的功能类)通常是只需要看声明,不需要看实现的。
怎么快速入门一个老的java项目的更多相关文章
- 肝了一个半月的 Java 项目快速开发脚手架:Chewing
前言 闲来无事,整一个 Java 项目快速开发脚手架. 正文 一.简介 Chewing 是一个简单的 Java 项目快速开发脚手架.既适合需要开发小型项目的小伙伴使用,也适合刚入门的新手用来学习一些常 ...
- Eclipse快速入门:远程调试Java应用
Eclipse快速入门:远程调试Java应用 2012年03月27日00:00 it168网站原创 作者:皮丽华 编辑:皮丽华 我要评论(0) 标签: Eclipse , Java , Java框架, ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- Maven:如何在eclipse里新建一个Maven的java项目和web项目
如何在eclipse里新建一个Maven的java项目和web项目: 一:java项目 New-->Other-->Maven 右击项目-->properties,修改以下文件: ① ...
- 快速搭建一个基于react的项目
最近在学习react,快速搭建一个基于react的项目 1.创建一个放项目文件夹,用编辑器打开 2.打开集成终端输入命令: npm install -g create-react-app 3. cre ...
- ANT入门&用ANT编译java项目
第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组.为了提高开发效率,采用这种编译项目的方法. 最近接触到flex项目,采用eclipse自动编译的 ...
- 【servlet】Servlet快速入门&使用Eclipse发布web项目
创建时间:6.15 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是ja ...
- 快速新建一个纯净的java pom项目 project
前期的java环境安装就不再阐述了使用步骤java -jar project-creator-0.1.jar projectName [war] 1> 比如你要创建一个项目名字叫 smile-o ...
随机推荐
- angularJS修改 品优购修改品牌(新增和修改用同一个方法)
前端代码 brand.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- JavaScript中字符串与16进制之间的转换
一.字符串转换为16进制 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- HDU4513:吉哥系列故事——完美队形II(Manacher)
吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)To ...
- ReentrantLock和synchronized区别和联系?
相同:ReentrantLock提供了synchronized类似的功能和内存语义,都是可重入锁. 不同: 1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此 ...
- python练习:抓取统计log内ip数量
#!/usr/bin/python #-*- coding: utf- -*- import os import re rawfile = '/var/log/auth.log' def rawpar ...
- centos ldap client 设定
centos 6.4 ldap server 位于ubuntu 12.04 Server上 1.安装 yum -y install openldap-clients nss-pam-ldapd 一个完 ...
- udhcp server端源码分析1--文件组织结构
1:dhcpd.c udhcpd_main函数是整个程序的入口,依次完成的主要工作有读取配置文件信息至全局结构体.记录程序pid number.初始化lease链表.将程序作为daemon运行.死循环 ...
- 题解【luogu4145 上帝造题的七分钟2(花神游历各国)】
题目大意: 一个序列,支持区间开方与求和操作. 算法:线段树实现开方修改与区间求和 分析: 显然,这道题的求和操作可以用线段树来维护 但是如何来实现区间开方呢 大家有没有这样的经历:玩计算器的时候,把 ...
- Javascript利用递归实现数组的快速排序
// 定义快速排序方法 function quickSort(arr){ // 设置递归的终止条件 if( arr.length <= 1){ return arr; } // 获得数组arr的 ...
- nginx 负载均衡实现
https://www.cnblogs.com/wang-meng/p/5861174.html