自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 面向对象健身操

本文内容来自《软件开发沉思录》优秀设计背后的七条核心概念:内聚性,松耦合,零重复,封装,可测试性,可读性,单一职责。采用这些规则的关键是,使用面向对象的思考。规则1 :方法只使用一级缩进动机 :庞大的方法往往缺少内聚性,一个常见的原则是将方法控制着5 行以内(不包括入参检查)。你可以尝试让每个方法只做一件事情——每个方法只保护一个控制结构或一个代码块。方法 :...

2012-12-20 10:02:17 260

原创 单元测试的七个阶段

1 – Refuse to unit test because “you don’t have enough time”2 – Start unit testing and immediately start blogging about unit testing and TDD and how great they are and how everyone should do it3 – Uni...

2012-02-28 16:57:30 332

原创 【转贴】敏捷质疑: TDD

 Q: 为什么通过单元测试发现的 Bug 很少 ?A: 单元测试不是用来发现 Bug 的, 而是用来预防 Bug 的. 如果采用 TDD, 测试用例完成之时, 产品代码尚未编写, Bug更无从谈起.Q: 那是否写单元测试就能提高代码质量了 ?A: 关于这一点, 似乎有人不这么看, <<TDD Opinion: Quality Is a Function of Thoug...

2012-02-28 16:57:18 129

原创 class文件笔记

前四个字节CA FE BA BEclass文件的魔数,所有的class均为这四个字节开始 后边的四个字节minor version 和major version最低版本号和最高版本号 常量池再往后就是常量池了,包含文件中类和接口相关的常量。常量池中存储了字符串、final类型的变量,类名、方法名、静态变量(?)。 ...

2012-02-23 11:19:55 92

manage it 笔记 1

 定义项目经理和项目项目:一个独特的任务或是系统化的流程,目的是创建新的产品或服务 ,产品和服务的交付完成标志着项目的结束,项目都有风险,都受制于有限的资源项目经理负责管理风险和资源产品:项目产生的一系列可交付物项目经理:负责向团队清晰说明完成的含义,并带领团队完成项目的人,完成是指,产品符合组织对产品的期望,也符合客户对产品的需求管理项目的关键驱动因...

2012-02-23 11:19:24 145

原创 [idea]快捷键和eclipse的几个不同

idea的重构能力较之eclipse有很大的提高,用起来也更智能些,所以准备使用idea一段时间,安装就不提了,先从快捷键开始吧:idea可以直接支持eclipse的快捷键,图省事的朋友可以直接切换之,方法是setting > keymap >第一个下拉框切换即可。 最重要的肯定是代码提示了,idea默认的是ctrl+space这个和系统输入法是冲突的,修改方法是sett...

2011-09-04 14:39:03 975

原创 冒烟测试

冒烟测试 (smoke testing),据说是微软起的名字。在《微软项目求生法则》一书第 14 章“构建过程”关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了...

2011-08-08 17:18:01 141

原创 敏捷日记2011-08-03

下午和新同事们一起做了个好玩的游戏-“航海项目”,通过一个tiny project,大家一起吧完成了从最初的用户选择到最终的release plan制定流程,获益很多。 麻雀虽小五脏俱全,这个过程大体是这样的: 首先是根据PO的需求描述,大家一起把使用这个project的角色进行划分,方式是每个人做brain storm然后进行合并,发现自己的思维还有过于发散了,没有和项目保持一致,分解...

2011-08-04 18:42:20 93

原创 [nexus]nexus配置

公司使用的项目管理架构是maven+nexus+hudson+cvs,基于nexus开发已经有两年时间了,平时开发只是使用,并没有仔细的研究过它的搭建过程,得闲,自己搭建一个研究下。 使用的nexus版本是1.9.2,目前最新的稳定版本,公司使用的1.2.1,版本还是更新了不少,我下载的是all-in-one的笨蛋(bundle)版本。 下载完成,上传至ubuntu服务器中,解压缩...

2011-07-28 17:28:55 126

原创 [ubuntu]开启root

如果你希望像传统 UNIX 样式使用root帐号。你能通过输入 sudo passwd root 。那将使你在控制台上通过 su 或登录成为root.如果你需要一个有root权限的shell,运行 sudo -s 。所有用户的“sudo”将需要用户密码。如果创建新帐号,希望可以使用"sudo"命令,将该帐号添加到 admin 组即可。如果希望使用"sudo"命令时,不需要输入用...

2011-07-28 17:01:53 103

原创 [转贴]几个linux系统的比较

MandrivaMandriva原名Mandrake,最早由Gaël Duval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时,Mandrake非常流行。说起Mandrake的历史,其实最早 Mandrake的开发者是基于Redhat进行开发的。Redhat默认采用GNOME桌面系统,而Mandrake将之改为KDE。而由于当时的 Linux普遍比...

2011-07-28 16:20:54 121

原创 [ubuntu]ubuntu开始

平时部署环境多是运维同学负责,开发环境由于java的可移植性,绝大多数都是在windows环境中进行,linux系统只是红帽接触的多谢,得闲,研究下其他linux系统,经过简易比较(比较贴),选择了一个非常优秀的分支---ubuntu(中文名很霸气:乌班图)。 debian系的一个分支,拥有强大的apt-get功能。 废话不说啦,本机搞起,vm这次使用的是VMware_workst...

2011-07-28 16:19:52 162

原创 数据库设计5步骤【ZT】

   1.确定entities及relationshipsa)设计宏观行为。你用此数据库来做什么?比如,希望管理雇员的信息。b)确定entities。对于一系列的行为,确定所管理信息所涉及到的主题范围。这将变成table。比如,雇用员工,指定具体部门,确定技能等级。c)确定relationships。看着行为,确定tables之间有何种关系。比如,在部门与雇员之间存在一种关系。给这...

2011-06-27 18:13:01 107

原创 [memcacehd]memcache一致性 hash 算法(consistent hashing)[zt]

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 o...

2011-06-26 21:48:41 98

原创 [memcached]Memcached 集群架构问题归纳[ZT]

集群架构方面的问题o memcached是怎么工作的?o memcached最大的优势是什么?o memcached和MySQL的query cache相比,有什么优缺点?o memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点?o memcached的cache机制是怎样的?o memcached如何实现冗余机制? �o memcache...

2011-06-26 21:47:52 141

原创 java工具汇总

http://download.oracle.com/javase/1.5.0/docs/tooldocs/ java bin目录下各个工具的介绍汇总,自己常用到的javap,jstat,jmap,appletviewer。

2011-06-20 11:36:04 94

原创 JVM方法区整理

 方法区在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 jvm实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big-endian存储的,但在加载到方法区后,其存放形式由jvm根据不同的平台来具体定义。 jvm在运行应用时要大量使用存储在方法区中的类型...

2011-06-17 15:16:43 93

htttpinvoker管中窥豹

近期,借着修复一个遗留系统的bug的机会,自己对httpinvoker长期存在的一个问题进行了相关的技术调研,在这里记录下来。 问题:httpinvoker客户端和服务器端同时部署了一个接口包,接口包中包含了服务器端提供的接口类和返回对象的类,当我改变服务器端返回类的时候,客户端使用老的接口访问httpinvoker服务,会产生什么现象? 答案:看情况。 解释:1.pr...

2011-06-17 11:28:23 116

原创 getResourceAsStream方法

常见的有以下两种获取资源文件的方法:App.class.getClassLoader().getResourceAsStream(String name)  Returns an input stream for reading the specified resource. The search order is described in the documentatio...

2011-06-16 17:49:27 179

原创 活灵活现用Git-技巧篇(转)

上一篇介绍了Git的基本概念和一些基本命令,本篇的重点在如下三个部分:个性化定制你的Git,更酷更巧妙的使用Git,以及如何在Git Hub上开启你自己的开源项目。在所有技巧中,最重要的技巧是学会查看Git的帮助,因为Git是一个相对复杂的版本控制工具,如果你熟悉它的命令,那么给你带来的价值是不言而喻的,所以要学会掌握那根金手指─查看Git的帮助,在任何Git命令后加上'--help'就会显示...

2011-06-15 12:03:59 89

原创 活灵活现用Git-基础篇(转)

原文丢失了,转过来方便查找Git 是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工 具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍Git的使用 技巧,最后会在Git Hub上创建一个开源项目开启你的Git实...

2011-06-15 12:03:29 96

原创 Git和Github初次使用(转)

1. GIT相比CVS/SVN,Git 的优势:- 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块更多的细节参见 http://mgcore.com/viewthread.php?tid=15556Git使用指南 http://www.linuxgem.org/user_files/linuxgem/Image/git-tutor.pdf2. GitHu...

2011-06-15 12:00:42 126

原创 Redis常用命令(from tutorial)

SetGetINCR                         非原子性,存在第二类更新丢失的问题TTL Time To LiveExpire           定义超时时间,单位秒 RPUSH, LPUSH, LLEN, LRANGE, LPOP, and RPOP主要用于列表(list)的操作LRANGE 取列表中的某个范围  SA...

2011-06-15 11:44:57 73

原创 maven中的特殊变量

  <sourceDirectory>${basedir}/src</sourceDirectory> <outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>  Available VariablesProject M...

2011-06-02 17:39:17 165

原创 Maven实战系列链接

Maven实战(一)——坐标规划Maven实战(二)——POM重构之增还是删Maven实战(三)——多模块项目的POM重构Maven实战(四)——基于Maven的持续集成实践Maven实战(五)——自动化Web应用集成测试Maven实战(六)——Gradle,构建工具的未来?Maven实战(七)——常用Maven插件介绍(上)...

2011-06-02 17:22:04 100

原创 myeclipse web project pom xml 说明

以下是myeclipse中自动创建的web工程,勾选过maven支持后,自动生成的pom.xml代码: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa...

2011-06-02 16:26:39 414

原创 改变maven默认的编译版本

  <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <

2011-06-02 16:02:19 123

原创 spring AOP 事物相关概念

在数据库级别的隔离范围之后,找到了一篇讲述spring传播范围及隔离范围的文章,为了方便,转来放到一起(转文)事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题。事务最重要的两个特性,是事务的传播级别和数据隔离级别。传播级别定义的是事务的控制范围,事务隔离级别定义的是事务在数据库读写方面的控制范围。以下是事务的7种传播级别:1) ...

2011-06-02 15:02:52 267

原创 事务随记(整理)

并发带来的问题A.第一类丢失更新:a事务回滚覆盖了b事务提交的数据;      a事物改,b事物改,a事物回滚 ,b事物的更新被覆盖B.脏读:一个事务读到另一个事务未提交的更新数据。 C.不可重复读:开始事物》读一次一个数》该数被其他事物修改并提交》再读结果变了》关闭事物D.第二类丢失更新::a事务覆盖了b事务提交的数据.     a事物读,b事物读,a事物改提交,b事物改提交,a事物...

2011-05-27 17:39:42 96

原创 appfuse2.1M2上手与集成

1.使用archetype-plugin进行框架生成:mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype ...

2011-01-08 17:32:14 112

软件测试的分类

      黑盒测试:不基于内部设计和代码的任何知识,而是基于需求和功能性。   白盒测试:基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。   单元测试:最微小规模的测试;以测试某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易作好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。 ...

2010-03-24 14:58:42 119

原创 extJS的DomQuery基础

<html> <head> <script type="text/javascript" src="../js/firebug/firebug.js"></script> </head> <body> <script type="text/javascri

2009-05-21 09:52:54 271

原创 Ruby Symbol

Ruby 是一个跨平台完全面向对象的脚本语言,构建在 Ruby 之上的 Web 框架Ruby on Rails(ROR) 正在 web 开发领域得到越来越多的认可。ROR 大量使用了 Ruby 语言特性,Symbol 就是其中之一。通过对 Symbol 对象进行较全面的了解,您可以更好地使用 Ruby 和 ROR。 Symbol 是什么 Ruby 是一个强大的面向对象脚本语言(本文所用 Ruby ...

2008-12-20 11:36:20 172

空空如也

空空如也

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

TA关注的人

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