开发环境-目前idea jdk
部署项目:把我们写好的java代码开放,部署到服务器上,然后我们可以通过浏览器访问 (环境要一致)独立ip
1:问题的定义和规划:开发方和需求方讨论目标和可行性
2:需求分析:在确定软件开发可行之后,对软件需要实现的各功能进行可行性需求的分析
3:软件设计:根据需求文档,把整个软件划分为模块,选择数据库框架以及各种技术,总体设计,详细设计
4:程序编码:将软件转换为计算机可运行的程序代码.要有 可读性 易维护性 提高程序与逆行效率
5:测试:看看有没有错的地方,然后方法(单元测试)白盒,集成设置(黑盒,功能测试,强度性能测试)
6:运行维护:修复bug 升级系统
为了开发效率高,降低成本呢,一个优良的系统
1.可重用性:遵循DRY原则,减少软件中的重复代码.
2.可拓展性.可以扩展不会影响其他已经有的功能
3.可维护性.当需求改变时,我们只需要修改少量局部代码就可以做到
高内聚就是说相关度比较高的部分尽可能的集中,不要分散,把相关模块放在一起
低耦合:多个模块之间的关系相互不大,当我们修改一个模块的时候不会对其他模块经进行影响
1:project structure ->aritfacts-> + ->jar->form modules ->apply ok
2:builer artifacts…
将把别人的导包放入自己的项目中的lib文件夹 然后 add ad Library… 然后就可以用别人的了
优秀的软件不是开发出来的,是测试出来的
手动测试,不用写代码
在接口上进行测试
作用:
界面功能
输入输出
数据库访问
性能是
初始化和终止是否
发现错误,或者遗漏
由开发人员测试,基代码测试,是否有按照说明说去执行
代码测试,需要写代码
作用:检查程序内部是否有遗漏
程序是否完成
程序功能是否有错
程序功能是否按照规格说明说实现
回归测试,JUnit4 x 针对于java5以及之后的版本,使用注解,推荐
作用:可以简化代码测试,保证每个功能的修改马上去执行测试,可以将代码功能分开来跑
操作步骤
方法一:
1:创建一个文件夹,然后将其转为测试文件夹
2:在测试文件夹内按照格式创建包和类名 之后创建需要测试类的方法
语法:
//引入要用的测试类
@Test //这个Test的作用是测试
public void 方法名(无参数){
书写测试代码
}
方法2:
测试类的文件夹 可以阶段测试方法
然后在需要测试的类的类名后alt+enter 然后选择creat test 记得导包JUnit的 还有一个 fix就是引入JUnit包
这个就是自动生成 之后对象要自己写然后 方法也要自己写 ,@Test 这个代码可以让测试代码分开来执行,让测试准确定位,然后和原先类联系起来的只有一个测试类对象 没有其他的
配置文件:存储了一些数据,解决了硬编码的问题
高效率的配置文件:properties文件和XML文件
我们拿到对象可以 调用ClassLoade方法 查找配置文件,以及获取配置文件的操作
getResourceAsStream(String name) 获取一些数据从一个目录
特点:
key=value格式,多对数据使用换行分开
username=root
password=admin
使用注意:
1:在配置文件中需要跟随字解码走,我们需要把字解码文件放在Resource Root中,会直接编译到字节输出路径
2:配置文件都是字符串,不需要使用引号
3:配置文件中不需要使用空格,如果在value的后边加空格 也会在编译的时候多出两个字节
创建步骤
1:创建一个resource文件
2:将文件夹改为Resources Root目录
3:在目录中创建配置文件
此时文件已经创建完毕,我们需要用properties的方法读取内部的文件
1:我们可以先获取对象 因为他的构造器已经使用protected修饰 然后刚Thread类有一个方法可以返回他的类
2:ClassLoader类可以获取当前相对路径的字解码文件 然后我们获取他的对象Thread.currentThread().getContextClassLoader();
//然后内部有一个方法可以获取字节码文件对象
getResources(String name) 返回用于读取指定资源的输出流
3:然后我们可以使用他的对象获取字节码文件的路径然后将字节码文件的路径添加进入properties的load方法的参数加载字解码文件配置
4:此时我们已经有properties类了,然后我们可以使用内部的方法有两个
public void load(inputStream inStream); //通过输入流的加载配置文件中的内容
public String getProperty(String key):通过输入key获取value的值
扩展
将字节流转为字符流,就用字符流构造器就可以直接转
InputStreamReader();