Java菜鸟学习日记23

来源:互联网 发布:linux多进程通信 编辑:程序博客网 时间:2024/06/18 04:42
如何看待源代码
源代码是公司的重要资产
对于软件公司来说,源代码相当于固定资产 > 人才
所以源代码管理对于公司来说是最重要的事务之一
管理源代码的工具
开发记录管理
  • SVN:集中式的源代码管理工具,通常必须连到公司的服务器上才能正常工作
    • (提交代码、查看代码历史记录、查看代码分支)。
    • 在公司中,开发项目时,每天至少提交(Commit)一次代码。
    • 第二天上班时,写代码之前,先获取最新的源代码(Update)。
    • 如果出差到外地,则无法直接从公司内部的SVN服务器上获取代码、提交等。
    • 此时VPN可能是一个方案。
    • 总之必须连到SVN服务器上才能工作。
  • GIT:分布式的源代码管理工具,没有中心服务器的概念。每个开发人员都可以获得完整的代码库。即使不联网也能进行几乎所有的操作。
    • 因为代码库在本地,所以可以很快的提交,不会受网速影响,提交的频率就可大大提高。代码的历史记录更加详细(当需要查看或者恢复到某一个时间点时,会更加准确灵活)。
团队合作开发
  • 源代码管理工具 => 都能解决团队合作开发的问题
    • GIT/SVN:都是网络程序,都是多用户的系统
版本管理
  • 在开发过程中,会同时并存同一个产品的多个“版本”
    • (下一代产品)开发版(分支)
    • 新特性实验版(分支)
    • Bug修复版(分支)
    • 正式发布版(分支)
  • 不同的版本有自己的历史记录、有自己的研发团队(多人合作)
开源项目
  • 使用GIT可以管理或参与开源项目,GIT本身就是为开源项目设计的。
  • 互联网上有很多云代码管理库(云计算和源代码管理的结合)
    • 趋势:源代码管理将成为一种公共服务
      • 国内:OSChina:码云(目前私有项目暂不收费,但项目不能超过1G)
      • 国际:GitHub(对于私有项目收费)
软件开发能力
  • 通过CMMI级别可以判断一个公司的软件开发能力。
  • CMMI:能力成熟度模型,一共定义了5个级别。
    • 级别越高,表名软件开发能力越强,越成熟。
    • 5级很难达到
    • 3级以上意味着公司的管理非常规范。
  • 质量标准:ISO 2000 国际标准,规定了软件质量形成和保证体系
  • 无论是CMMI还是ISO对于源代码管理都有明确要求--软件公司必须使用专业的工具管理源代码资产。
GIT命令
  • git init:初始化一个git仓库,会在当前文件夹下生成一个.git隐藏文件夹。在这个隐藏文件夹下,保存的是版本库的所有数据。
  • git add 文件名/.:将已修改的文件放入暂存区。
  • git commit -m 消息:将暂存区的文件提交到代码库。
  • git log:查看提交记录。
  • git log --oneline:查看简化的提交记录。
  • git status:查看工作区(当前文件夹)的状态(那些文件被修改,那些文件被删除,那些文件没有进版本库)
  • git reset --hard 提交ID的前几个字母:可以跳转到某一个历史记录。所有的文件都会恢复到那时的状态。
  • git reflog:查看所有commit和reset的记录。
提交过程
  1. 工作区—add→暂存区—commit→分支(某个)—push→远程Git库(远程Git库不是必须的。)
  2. 暂存区存在的目的是,可以挑选一部分文件提交,而不是将整个工作区全部提交
Maven
项目开发管理工具,它能够帮助开发者创建项目、解决项目依赖关系、测试项目、打包项目、安装和部署项目。总之:能够帮助开发者更加轻松的完成整个项目的开发过程。
安装
  1. 把Maven安装包解压到某个位置
  2. 配置M2_HOME环境变量指向这个位置
  3. 在Path环境变量中添加
配置镜像
  1. 国内的阿里云镜像比国外的中央仓库更快
    1. 方法:在当前用户文件夹中.m2把settings.xml放进去
    2. 如果没有.m2可以在命令行中运行 mvn
    3. 如果没有settings.xml 从百度搜maven镜像
与Eclipse结合
最新版本的Eclipse自带maven插件,但版本比较低,也没有配置镜像。所以在window→preferences→maven→installations中添加并选择我们自己安装配置好的maven
使用Maven创建项目
new→maven project→选中 create simple→填写项目信息
      • group id:组织、公司、项目组名字
      • artifact Id:项目名字
      • 版本号:snapshot=快照版,用来快速编写代码验证某个功能或需求
初次创建maven项目时:需要从中央仓库(镜像仓库)下载必要的jar包和maven需要文件,等待下载完成。
POM文件
  • 每个maven项目都有一个pom.xml文件,用来记录项目的基本信息:项目名称、描述、版本、maven坐标、项目依赖关系、项目使用的插件等。
Maven的基本结构
src:源代码
mian:项目主体代码
java:Java代码
resources:项目使用的资源、配置文件等
test:测试代码(单元测试)
jave:Java测试代码
resources:测试代码使用的资源和配置文件
taget:编译之后生成的文件
pom.xml:项目描述文件
POM(Project Object Model):项目对象模型。把一个项目当作一个对象,此时就需要这个对象定义很多属性
Maven坐标/依赖
group id
artifact id
version
上面的3个非常重要,尤其是版本号一定要注意,不用版本的API可能不同,如果版本错误,则会出现找不到类、找不到方法等稀奇古怪的错误
scope:作用域/指明这个依赖项的作用范围
  1. test:仅在测试时有效
  2. compile:参与到项目的编译、打包、部署过程中
  3. runtime:有JDK或运行环境提供,不需要打包,部署时需要自行安装JDK或其他执行环境
  4. provided:已经提供的依赖项,不需要打包
  5. system:有系统提供
Maven通过查看pom.xml文件的<dependencies>
可以找到某个项目或jar包的依赖项,找到之后可以从中央仓库中将之下载到本地仓库。然后会查看新下载的jar包的pom文件,在去找其中的<dependencies>找到之后继续下载,直到所有的依赖项全部下载到本地仓库中。
Maven本地仓库
Maven会将jar包统一放置在本地仓库中,在.m2文件中的repository中按照groupid/artifectid/version/的方式保存呢这些jar包
本地仓库的作用是,每一个jar包只需要下载一次,就可以被任意多个项目使用。避免重复下载。避免重复占用磁盘空间。也免除了程序员到各种官方网站查找和下载jar包的痛苦
Maven默认JDK版本设置
为了支持比较老的项目,maven选择从1.5开始。但是,如果想更改成1.8或其他版本也可以,只需要在.m2/setting.xml中加入相应的配置节即可(可以百度搜索maven jdk 版本)
JUnit
Java Unit Test:用于Java单元测试工具
单元测试是由程序员编写的,用于测试自己代码的代码。
使用单元测试的好处是:
  1. 测试代码与项目主体代码是分离的
  2. 测试代码编写之后不需要考虑删除的问题
  3. 测试代码可以反复多次使用,即使项目上线之后依然可以用于后期bug修复使用
  4. 测试代码的反复使用,可以节省大量时间。避免反复编写代码检查程序功能是否正常。
单元测试是开发的一部分,是程序员的工作内容。而非测试人员的工作内容。
测试驱动开发模式
  • 与传统的先编码后测试不同,它的思想是先写测试用例,然后在编写代码。
  • 编写代码通过不断运行测试用例来推动代码的编写,知道所有测试用例都通过,即完成了开发。
创建测试类
  1. 测试类的包名应该等于被测试的包名,即在同一个包中
  2. 测试类的名字 = 被测试类的名字Test
  3. 测试方法必须是public
  4. 测试方法的名字 = test被测试方法的名字


原创粉丝点击