项目:在线图书商城(多商户) B:C
项目(软件)开发的流程
可行性分析
经济可行性
技术可行性
社会可行性
需求分析
如何去做需求分析?
思路:考虑项目开发完成之后有哪几类用户?找每一类用户当中的
代表人物(熟悉业务、有想法)去了解需求:谈
用UML当中的用例图去做需求分析
rose
starUML 精致
轻量级 》 重量级 spring 》ejb
设计
用UML图当中的类图去做设计
从用例图如何到类图呢?用例一般是动宾短语
用例图当中提取名词形成类图 并且表明关系
根据类图
-数据库设计
根据类图去设计数据库
1个类对应1张table
类当中的attribute 对应 column
create database db_online_trade;
create table t_admin
(
id int primary key auto_increment,
username varchar(30),
password varchar(30)
)
-搭建项目框架(概要设计详细设计)
这个比较复杂,非常重要!!!
一个项目10万行代码写到一个java文件当中,甚至写到一个java
class当中从语法上可以吗?可以的
但是程序肯定不好,违反了很多设计原则
分层分模块!!!
com.uek.view
com.uek.service
com.uek.dao
com.uek.model(bean entity)
com.uek.utils
com.uek.test
概要设计
详细设计
数据库设计
编码
测试
单元测试、压力测试。。。
上线
维护和二次开发
web项目架构图
分层分模块
junit
unit单元
junit java单元测试
一个方法想要做单元测试,可以加@Test
注意:方法签名是有要求的,public void methodName(没有参数)
在编程中有一句话:代码重复3次,一定要想着去提取公用,这样扩展性,维护性很好
eclipse(myecplise)快捷键
alt / 帮助键 main
ctrl shift f 格式化代码
ctrl shift o 导入没有的 删除没有用的导入
ctrd d 删除光标所在的行
ctrl +shift + w 关闭打开的所有tab
ctrl+shift+r 搜索工程当中的资源 java
ctrl+shift+T 搜索jar当中的资源 class
ctrl + o 打开当前类的大纲视图 o outline
成对编程非常重要
代码重构 refactor 非常重要 对于提高代码质量很有帮助 不是实现功能就可以,要优化。
断点调试!!! 对于写程序而言,不会断点调试,水平肯定比较低。
复杂的逻辑问题,不通过断点调试很难解决。
debug 调试程序
1 如何打断点
2 掌握几个命令f5 f6 f8
f5 进入方法内部
f6 单行执行 单步执行
f7 跳出方法
f8 执行下一个断点或者是后续没有断点 程序直接执行完毕
3 几种视图:variables视图、breakpoints 、expressions
4 调试完成之后 别往里去掉断点
堆栈
程序设计当中,每一个方法的执行都会生成一个方法栈区,这个栈区会
存储这个方法执行时候的一些临时变量(参数、局部),一旦方法执行
完毕,这个方法栈区就会销毁,其中的所有的内存都会被释放!!!
大型项目性能的瓶颈经常在数据库!!!而不在于页面
企业级项目都是用各种框架搭配完成的常用的框架组合是ssh 、 ssm
框架 frame
框架是有一些基础性的工作已经做好,好比盖房子,架子已经搭起来了,剩下
的工作就是去一块的填砖就可以
ssh
spring struts hibernate
struts 界面层 mvc的一个框架
spring 业务逻辑层的框架
hibernate dao层的一个框架
ssm
spring spring mvc mybatis
spring mvc界面层 mvc的一个框架
spring 业务逻辑层的框架
mybatis dao层的一个框架
其实框架的使用是非常简单的!!!但是框架是封装过的,有一些真相被包装只有
看不到了,隐藏了。这样的遇到一些问题,出错,如果不清楚底层的实现会比较难
挑错。
框架的实现核心关键基石是java中的一个知识点-----------》反射!!!
没有反射就没有框架!!!
反射是内省,是在运行期能够看清楚自己内部的所有信息,包括class field method...
并且可以动态的构造对象,并且调用对象的方法。。。。
java是面向对象的、所有的对象抽象成class
比如 u1 u2 u3 ----->User.java
d1 d2 d3 ------>Dog.java
c1 c2 c3 ------>Cat.java
对象都能够抽取成Java的类型
User.class
Dog.class
Cat.class
其实所有的class都具备相同的特性,可以提取出来一个类,
这个类就是Class,其实所有的具体的class,比如dog.class其实是Class
这个类的一个对象
Class就是原类型、也叫做类类型