自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

懒,是我追求的美德

成长在于学习,技术在于积累

  • 博客(35)
  • 资源 (3)
  • 收藏
  • 关注

原创 玩转Eclipse — 让代码飞起来

“工欲善其事,必先利其器”。好的工具,能够使工作事半功倍;充分发挥工具的优势,更能锦上添花。大牛都喜欢用vi编程,不屑于使用Eclipse之类开发工具,认为这些“高级”工具会阻碍他们对程序的理解。对于我这个工作不足8个月,以前还没怎么写过Java的菜鸟,只能研究一下如何让Eclipse开发更高效。 我目前的工作是自动化测试,虽然对测试体会不多,但是对自动化却有比较深刻的认识:让工具和代码做更多的事情。“对程序员来说,懒是一种值得称颂的美德”。 这段时间根据实际工作要求,研究了

2013-12-05 20:25:39 3848 2

原创 玩转Eclipse — 为懒人准备的Java Code Templates(持续更新中...)

在之前的一篇博客《玩转Eclipse — 自动代码生成的Java Code Template》中详细介绍了,如何利用Java Code Template自动地快速生成具有一定规律、可以模板化的代码。一个简单的Content Assist快捷键,就可以帮助我们生成很长的一段代码,避免重复地敲相同代码,同时保证相同代码格式相同,提高软件开发的效率。本文结合自己工作中的实践,收集了一些常用的Code Template,分享给想使自己编码速度更快的朋友。如果后面发现更多好的Code Template,会不断更新到该

2013-11-07 12:43:15 8807 5

原创 玩转Eclipse — 自动代码规范检查工具Checkstyle

大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的。那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?Checkstyle是一个开源代码分析工具,能够帮助开发人员保证他们的代码遵循一定的代码规范。Checkstyle通过不断地检查你的代码,一旦发现有违反定义的代码规范的地方就立马提示。以便开发人员能够及时发现和修改不规范代码。Checkstyle通过不断地检查你的代码,一旦发现有违反定义的代码规范的地方就立马提示,以便开发人员能够及时发现和修改不规

2013-10-21 09:11:07 12601 1

原创 玩转Eclipse — 自动代码生成的Java Code Template

当代码写到一定程度之后,就会发现很多代码都被重复地敲了N多遍,甚至毫不夸张地说:闭着眼睛都能敲出来。大量地敲这些重复地代码,除了锻炼敲键盘的速度,基本上没有其他益处,但是长期下来会浪费很多时间,降低了软件开发的效率。一般的人可能会一个字母一个字母地敲一遍;懒一点的人会Ctrl + C和Ctrl + V,然后把XXXClass改一下;聪明人通过几个字母加个一个快捷键就可以搞定。本文就以上面的logger为例,介绍聪明人使用Java Code Template实现的一种更方便快捷的方式。

2013-10-14 20:01:18 28982 3

原创 玩转Eclipse — 自动生成setter和getter方法

我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰。这样,方法调用成了访问这些属性的唯一途径。JavaBean就是一个很好的例子,其严格遵守面向对象的设计逻辑,所有属性都是private。对于任何属性xxx,都有public的getXxx()方法来获取属性和public的setXxx()方法来修改属性。如果只有少量这样的属性,可以通过手动方式为它们添加setter和getter方法。但是,如果有大量这样的属性,手动添加会很费时。下面通过一个示

2013-09-24 17:11:30 43507 6

原创 玩转Eclipse — 自动注释插件JAutodoc

代码注释是一种良好的编程习惯。不管对于他人还是自己,注释都有助于代码的阅读和理解。手动添加注释,是一个非常费时和繁琐的工作,严重影响软件开发效率,这也是绝大多数程序员不愿添加注释的主要原因。JAutodoc是一款Eclipse插件,主要用于在源代码文件中自动添加Javadoc和文件头。它使用Velocity templates模板,并依据元素名称生成相应的初始注释。

2013-09-18 16:00:20 9904 4

原创 Jenkins的安全控制

在默认配置下,Jenkins是没有安全检查的。任何人都可以以匿名用户身份进入Jenkins,设置Jenkins和Job,执行build操作。但是,Jenkins在大多数应用中,尤其是暴露在互联网的应用中,安全控制是非常重要的。安全控制主要解决两个问题:哪些用户可以进入Jenkins;进入Jenkins的用户可以做些什么事。 Jenkins提供了用户认证和权限控制两种维度的安全策略: 1) Security Realm(安全域):决定用户名和密码,且指定用户属于的组。

2013-08-08 18:38:34 18970 2

原创 职场新人的2013年总结

这一年,离开了简单美丽的校园,进入了纷繁复杂的社会,从一个”Student“转变为一个”Worker“。对于人生中只有一次的这种重要转变,注定对自己产生较大影响。有必要用文字来记录这种变化,既可以分享给大家借鉴,又方便以后寻找自己成长的记忆。

2013-12-26 16:46:49 1913 3

原创 Linux网络接口配置文件ifcfg-eth0解析

在Windows上配置网络比较容易,有图形化界面可操作。在Linux中往往是通过命令修改文件的方式配置网络,因此不仅需要知道配置哪个文件,还要知道文件中每个配置参数的功能。在Redhat/Fedora等Linux中,网络配置文件一般是/etc/sysconfig/network-scripts/ifcfg-eth0;而在SLES 10中却是/etc/sysconfig/network/ifcfg-eth-id-xx:xx:xx:xx:xx:xx(后面是该网络接口的MAC地址);在SLES 11中是/etc/

2013-12-12 22:27:54 64260 1

原创 Linux命令 — 设置或查看网络配置命令ifconfig

ifconfig命令用于设置或查看网络配置,包括IP地址、网络掩码、广播地址等。它是linux系统中,使用频率最高的关于网络方面的命令。

2013-12-02 19:21:17 21832

原创 玩转Eclipse — 快捷键设置及汇总

快捷键的意义就是使操作方便快捷,往往一个组合键,就可以完成鼠标多次定位和点击才能执行的功能。对快捷键越熟练,其快速的优势越明显。Eclipse快捷键的设置其实比较简单,只是快捷键的数量比较多。

2013-11-26 19:18:40 40419

原创 Linux命令 — 压缩与解压命令大全

压缩与解压命令,是Linux中比较常用的命令。之前用到压缩与解压的时候,都是临时在网上搜,用了之后过段时间没用就忘了。虽然命令的用法很容易在网上搜到,但是每次用到的时候都去搜,也挺浪费时间的。所以,在这里整理了一篇Linux压缩与解压缩命令大全,比较深入地研究和掌握这些命令的用法。 之所以压缩与解压比较常用,是因为文件压缩的好处:减少存储空间,减少文件传输时间。对于文件数量比较多,为了减少存储空间和传输时间,除了用到压缩外,还会涉及到打包。这里需要注意,压缩和打包是两个不同的概念:打包是将大

2013-11-20 20:51:21 7582

原创 玩转Eclipse — 添加 JAR 文件

个人偏好Java一个很重要的原因的有丰富的JAR库可以被使用。JAR(Java Archive)是Java的一种压缩文档格式,以流行的ZIP文件格式为基础。与ZIP的不同之处是,JAR文件不仅可以用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在实际开发过程中,本着“拿来主义”的思想,经常会直接使用别人已经开发好的JAR包,避免重复“造轮子”,提高项目开发速度。本文整理了几种往项目中添加JAR包的方法。根据JAR存放位置的不同,添加JAR的方式有两种:添

2013-11-18 19:49:39 31239 5

原创 Java实践 — SSH远程执行Shell脚本

SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议。SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接。SSH提供两种的安全验证方式:基于密码的认证和基于密匙的认证。其中,基于密码的认证比较简单,只要知道远程主机的用户名和密码,就可以进行登录。基于密匙的认证比较麻烦,而且连接比较耗时,这里不详细介绍。 有很多基于SSH协议的客户端,例如:PuTTY、OpenSSH、Xshell 4等,可以远程连接几乎所有UNIX平台。同时,可以

2013-11-13 19:53:26 17815 2

原创 Python学习笔记 — 函数

函数是对程序逻辑进行结构化或过程化的一种编程方法。函数具有两个方面的意义:1)将代码分块,易于管理和阅读;2)最大化代码复用和最小化代码冗余,节省空间,有助于保持一致性。下面对python语言中函数的基本知识进行了整理。

2013-09-12 19:55:05 2174

原创 玩转Eclipse — 项目的.settings目录解密

Eclipse创建一个项目后,都会为该项目创建一个.settings目录,可能很少有人会用到这个目录,所以它往往被大家忽略。最近为了在Eclipse自动创建的setter方法和构造函数的参数前面加个前缀,搜索了大量资料之后,最终在.settings目录下找到了解决方案。因此,特地花时间研究了一下该目录的功能。 从目录的命名就可以看出,它是与项目设置相关的。该目录主要包含两个文件:org.eclipse.jdt.core.prefs和org.eclipse.jdt.ui.prefs,利用Not

2013-09-08 23:41:15 8493 1

原创 玩转Eclipse — 自动代码规范化

大项目往往是有很多人一起完成的,然而每个人都有自己的style,导致整个项目的代码不仅存在不符合语言规范的情况,而且读起来非常困难。因此,这样的项目中都会引入Checkstyle,来规范大家的编码风格,尽量做到统一和合理。我们在代码写完之后,还要花时间去手动解决Checkstyle提示的问题,这是一个非常无聊和耗时的工作。下面介绍如何利用Eclipse配置,在我们写完代码并保存之后,Eclipse就会自动帮我们解决Checkstyle问题。

2013-09-05 18:48:59 35234 4

原创 TestNG组织测试用例的最佳实践

在目前的工作中,经常需要写大量的测试用例(Test Case),然后用TestNG进行自动化测试。随着test case数量的不断增加,发现目前写test case的方法存在一些不足之处。经过几天的思考和探索,找到一种充分利用TestNG的testng.xml配置文件组织test case的方法。

2013-08-28 19:55:43 7036

转载 The Twelve-Factor App

英文原文链接:http://12factor.net/译文原文链接:http://erning.net/blog/2012/05/09/the-twelve-factor-app/简介如今,软件通常会作为一种服务来交付,它们被称为“互联网应用程序”(web apps),或“软件即服务”(SaaS)。这篇“互联网应用的十二要素”为构建如下的互联网应用程序提供了指导方法: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目; 和操作系统之间尽可能的划清界限,在各

2013-08-20 22:36:01 2983

原创 Jenkins的plugin开发

Jenkins强大的功能主要靠其丰富的plugin体现,之前的一篇博客《Jenkins安装plugin》中介绍了如何找到并安装需要的plugin。虽然目前已经有大量非常优秀的plugin可以被使用,但是有时候仍需要自己开发一些满足项目特殊要求的plugin。下面通过一个简单实例,介绍Jenkins的plugin的整个开发过程。主要流程如下:1.环境准备2.创建plugin3.编译plugin4.测试Plugin

2013-08-13 21:37:12 7359 1

原创 TestNG测试带参构造函数的类

问题描述:一个测试类,只有一个带参构造函数。在带参构造函数上加@Test,同时加@Parameters注解从testng.xml中传递参数。为保证测试函数在带参构造函数之后执行,所以测试方法前的@Test加了dependsOnMethods属性,依赖于带参构造函数。错误提示:测试方法执行时,会提出其依赖的构造方法找不到。TestNG执行原理:TestNG启动之后,先调用构造函数创建所有的测试实例,然后才进行测试。因此,构造函数与测试函数的执行时机不一样,构造函数在所有测试方法之前先执行,没有必要再

2013-08-05 20:21:31 3151

原创 Java测试框架比较:TestNG VS JUnit 4

TestNG和JUnit是针对Java语言的两个比较常用的测试框架。JUnit出现的比较早,但是早期的JUnit 3对测试代码有非常多的限制,使用起来很不方便,后来的JUit 4得到很大的改进。TestNG的出现介于JUint 3和JUnit 4,但是TestNG在很多方面还要优于JUint 4。下面从整体上对TestNG和JUnit 4进行比较全面的比较。

2013-07-31 21:23:09 13010

原创 TestNG的参数化测试

JUnit没有提供方便传递测试参数的机制,所以,针对每个测试数据集,都需要单独写代码进行测试。这样浪费很多时间和精力重复写测试代码,它们只是参数不一样,测试逻辑完全一样。同时,测试代码和测试数据没有分离,为今后的维护埋下隐患。TestNG在参数化测试方面,比JUnit有较大的优势。提供了两种传递参数的方式。testng.xml方式使代码和测试数据分离,方便扩展和维护。@DataProvider能够提供比较复杂的参数,同时方便产生具有一定规律的测试数据集。

2013-07-24 19:03:04 7529

原创 Jenkins安装plugin

Jenkins安装plugin有两种安装方式:自动安装和手动安装。自动安装比较简单,但是需要联网。在不能联网的情况下,只能自动安装。

2013-07-19 18:52:07 30563 2

原创 Jenkins安装及问题

安装Jenkins命令:java -jar jenkins.war假设安装地址为:10.10.10.1默认情况下,Jenkins的端口为8080,所以可以通过浏览器访问地址http://10.10.10.1:8080/,就可以进入你所安装的Jenkins。如果出现访问不了的情况,可能因为防火墙禁止直接访问8080号端口。此时,你可以在安装的时候,设置web访问的端口

2013-07-17 18:48:50 17351 1

原创 将JUint 4转化为TestNG

对于大规模软件的测试,TestNG在很多方面的确优于JUnit 4。在项目开发初期,可能选择JUnit 4进行测试,但是到软件开发到一定阶段后,逐渐发现JUint 4不能满足更高的要求。此时,使用TestNG可以更好地对软件进行测试,那么如何从之前的JUnit 4测试转化为TestNG呢?

2013-07-07 22:36:07 3078

原创 JUnit 4的参数化测试

最近在研究TestN与JUnit 4的优劣势。在测试JUnit 4的@Parameters的时候,遇到initializationError的错误。所以,想彻底研究了一下这个问题出现的原因,并找出解决方法。问题描述:之前使用JUnit的时候,可以直接以JUnit test形式运行test类中某个用@Test注解的函数。但是如果test类中使用了@RunWith(Parameterize

2013-06-09 16:55:41 10209

原创 实例理解IoC

控制反转(IoC:Inversion of Control)是Spring框架的核心,主要用来减少对象间的耦合问题。Martin Fowler曾提问:哪方面的控制被反转了?他总结是依赖对象的获得被反转。因此,他给控制反转提出一个更贴切的名字:依赖注入。Spring的优势是通过一个IoC容器,管理所有的JavaBean,自动注入依赖对象间的引用,减轻程序员的负担。下面通过一个简单的实例,理解Spri

2013-03-07 16:20:59 1051

原创 Java虚拟机之连接模型

Java程序在运行之前,每个类和接口都是独立的class文件。JVM是怎样装载和解析这些class文件,使它们之间能够相互关联呢?下面我们来深入研究Java体系结构中非常重要的一方面——连接模型。       Java程序经过编译后,得到的是每个类或者接口的独立的class文件。虽然这些文件看上去毫无关联,但是JVM通过动态连接过程,使它们之间通过接口(harbor)符号相互联系,或与Java

2013-02-28 18:53:02 1475

原创 Java虚拟机之线程同步

对于多线程,我们更多地是在操作系统中接触到这个概念,但是Java却在语言级支持多线程,这也是Java语言的一大优势。Java所使用的线程同步机制是监视器。1. 监视器Java监视器支持两种线程同步:互斥和协作。互斥:通过对象锁来实现,允许多个线程在同一个共享数据上独立而不干扰地工作。协作:通过Object类的wait方法和notify方法来实现,允许多个线程为了同一个目标而共同

2013-02-24 21:50:29 1317

原创 Java虚拟机之对象的生命周期

要在JVM的堆中创建某类型的实例化对象,必须先完成该类型的加载、连接和初始化。因此,对象的生命周期只是类生命周期中的使用阶段,而类的生命周期要比对象的生命周期要长。对象的生命周期开始于类的实例化,中间经历使用阶段,结束于对象的垃圾收集。下面主要介绍对象生命周期中的这三个阶段。1. 类实例化    Java程序中,类可以被显式或者隐式地实例化。    显式实例化的4种途径:

2013-01-26 15:51:55 1418

原创 Java虚拟机之类的生命周期

Java作为一种面向对象语言,类是其非常重要的组成部分。Java程序经过编译之后,每个类或接口都会对应一个class文件。Java类型的生命周期就是指一个类型的class文件从被JVM加载到被JVM卸载的全过程。类型的生命周期一般包括装载、连接、初始化、使用和卸载五个阶段。1.装载    在装载阶段,Java虚拟机类加载器把类信息从二进制class文件读入JVM的方法区中,并在堆中创建该类

2013-01-24 14:02:27 1471

原创 Java虚拟机之Class文件

Class文件是Java程序的二进制格式,全面描述Java类或者接口。每个Class文件只能描述一个Java类或者接口的全部信息。Class文件的特点:1. 8位字节的二进制流;2. 按照数据项顺序存储,高位在前;3. 数据项之间没有间隔。Java虚拟机是通过读取和解析Class文件来执行Java程序,但是其他一些语言可以编译成Class文件在Java虚拟机上运行。因此,Java虚拟机并不关心Cl

2013-01-21 11:16:08 1494

原创 Java虚拟机之垃圾回收

内存作为程序运行时非常重要的一个系统资源,直接影响到程序的正常运行和程序性能。C/C++需要程序员显式地分配和释放内存,这不仅给程序员带来工作负担,而且还会给程序带来内存错误访问和泄露的安全隐患。Java的垃圾回收能够自动地管理内存,不仅提高了程序开发效率,而且保证了系统的安全性。      Java的垃圾回收机制主要的任务有两个:1. 识别不再被使用的对象;2. 释放不再被使用对

2013-01-15 19:02:14 1297

原创 Java虚拟机之体系结构

Java虚拟机是运行java程序的载体。每一个java程序,都会启动一个单独的Java虚拟机。虚拟机之间有自己独立的空间,相互之间不会干扰。那么,java程序的class文件是如何在虚拟机上运行的呢?我们先了解一下Java虚拟机的体系结构,以及其工作原理。Java虚拟机的体系结构图1.类装载器       负责查找并装载类型。Java虚拟机提供两种类装载器:Java虚拟机中的启

2012-12-04 20:40:43 1138

计算机网络(第三版)课后答案

计算机网络自顶向下与Internet特色(原书第三版),的课后习题答案,包括所有章节的内容。

2009-05-11

FTP文件传输协议(标准版)

标准的FTP文件传输协议,介绍FTP的各种命令和相关规定。

2009-05-11

C++编写的FTP客户端

FTP客户端的C++源程序,支持匿名登陆和用户名登陆,可以断点续传。

2009-05-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除