vi
vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,简介说它在任何Unix和Linux版本里面都是相同的,所以非常值得学习。
- vi或者说vim编辑器有三种模式:
- command,
- insert,
- last line
在本阶段我只利用vim进行了insert模式下环境变量的设置,last line 对文件的保存以及命令行的删除功能,也就是最简单基础的功能。我相信在接下来的学习中它会发挥更大作用。
- 操作:
- i 转到Insert模式
- Esc 转到命令行
- :wq 保存并退出
Java
java部分真的是实训才接触到的,因为之前完全没有接触过。但是高级语言的编程思想是可以通用的,变的只是语法,每种语言都有自己的特色语法规则。
阶段一要求用 Java 实现简单的helloworld和calculator。在编辑hello world的时候还觉得不难,因为代码真的很短,但是到了calculator就不一样了。小程序要实现的功能不是简单的输出而是要出现图形化界面的,也就是使用GUI这个java插件。
编译的时候除了很多错误,也让我长了教训,比如:
- java的package也就是import部分不允许太宽泛,比如 java.awt.* 和java.awt.event.* 就不能只写前者。
- 函数名字的大小写问题历久弥新被提名,比如JFrame不能 Jframe
总的来说我觉得java与javascript很相似,只是js貌似代码更加冗长。
Ant
ant 环境可以节省在命令行输入很多行命令的麻烦,编写一个xml文件就可以 用一条命令 执行完编译、跑、测试了。
平台的ant已经安装完毕,那我就列一下我的xml文件,也是主要参考技术文档的代码自己理解直接上阵的,
<?xml version = "1.0" encoding = "UTF-8"?>
<!--注释, 我这里的是用ant all来执行命令-->
<project name = "calculator" default = "all" basedir = ".">
<!--all 等于执行init, compile,jar,run-->
<target name = "all" depends = "init, compile,jar,run"> </target>
<target name = "init" >
<!--每一个文件夹的位置要明确好-->
<property name = "dirs.base" value = "${basedir}"/>
<property name = "src" value = "${dirs.base}/src" />
<property name = "jar" value = "${dirs.base}/bag/calculator.jar"/>
<property name = "classes" value = "${dirs.base}/classes"/>
<mkdir dir = "${classes}"/>
</target>
<target name = "compile" depends = "init">
<javac debug = "true " srcdir = "${src}" destdir = "${classes}"/>
</target>
<target name = "jar" depends = "init">
<jar jarfile = "${jar}">
<fileset dir = "${classes}"/>
</jar>
</target>
<!--fork 是用来固定GUI窗口的,因为它会闪退-->
<target name = "run" depends = "compile">
<java classname = "calculator" fork = "yes" classpath = "${classes}"/>
</target>
<target name = "clean" depends = "init">
<delete dir = "${classes}"/>
</target>
</project>
JUnit
在配置JUnit程序测试环境这里卡了很久,真的,祭奠逝去的睡眠时间。
在这里真的感谢优秀同学的帮助。解决了org.junit没有找到的问题。
在命令行启用vim并对环境文件进行修改,写的代码如下:
vim ~/.bashrc
进入vim,再进入Insert模式,滚动到文件最后面有个fi
,在它下一行开始输入:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/adminstrator/Downloads/junit-4.9.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
esc退出Insert模式 然后
:wq
回车
source ~/.bashrc
这一步回车应该是没有东西跑出来,否则就是失败了,在vim里面编辑的环境大概是出错了,总结一下我错过的点(以下是错误哈):
- ~/bashrc
- 在=附近打了空格
- 有的时候.:打成:
- 大小写
环境之后最重要的是要写好xml文件让程序能使用JUnit进行测试,参考了技术文档,在原来的ant实现的xml中增加一些内容
关键xml代码如下:
<!-- junit包路径lib,*是自己系统内的junit的jar包地址 -->
<path id="compile.path">
<fileset dir="${libDir}">
<include name="*.jar"/>
</fileset>
<pathelement path="${destDir}"/>
</path>
<!-- 执行测试所用的命令以及定义,注意各种路径之间的对应 -->
<target name="junit" depends="clean,compile">
<junit printsummary="yes">
<classpath refid="compile.path"/>
<test name="HelloWorldTest"/>
</junit>
</target>
然后就跑跑测试的文件,成功就是配好了
SonaQube
这是一个对软件建设和程序可靠性有很强大检验管理功能的开源平台,从七个维度检查源代码的质量。
- 这七个维度分别是:
- 文件,类,方法等决定的复杂度
- 重复
- 单元测试覆盖率
- 代码标准化检测
- 注释是否适量
- 有没有潜在的bug
- 循环、文件关联、架构、任务规则应用等设计的合理性
简介中提及这个平台通过插件方式为包括 c,c++,java在内的20多种编程语言的管理跟检验,这让我深深觉得实用方便。
由于云桌面已经为我们安装好了sonar的环境所以我们直接在src文件(也就是代码存放的文件夹)外面编辑一个.properties文件——src和.properties同级存放,就可以使用命令行来让sonar检测src的代码了
- 下面我发一个本次实训的代码来记录一下.properties 文件的内容
文件目录是这样的: calcuator
src
- Calculator.java
build.xml
- bag
- Calculator.jar
- classes
- 各种class
- sonar-project.properties
#required metadata 这是注释,用#标记
# projectKey
# Key 和 Name 一定是独一无二的
sonar.projectKey=calculator
sonar.projectName=calculator
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module
#Java module
java-module.sonar.projectName=Java module
java-module.sonar.language=java
# . 代表根目录,也就是calcuator
# src 里面要放源代码
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
一个新的.properties文件只需要更改src Key 和Name就可以了