<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[neverloser]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/neverloser</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; neverloser]]></copyright><item><title><![CDATA[面向对象健身操]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84370133</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84370133</guid><author>neverloser</author><pubDate>Thu, 20 Dec 2012 10:02:17 +0800</pubDate><description><![CDATA[

本文内容来自《软件开发沉思录》

优秀设计背后的七条核心概念：内聚性，松耦合，零重复，封装，可测试性，可读性，单一职责。
采用这些规则的关键是，使用面向对象的思考。


规则1 ：方法只使用一级缩进

动机 ：庞大的方法往往缺少内聚性，一个常见的原则是将方法控制着5 行以内（不包括入参检查）。你可以尝试让每个方法只做一件事情——每个方法只保护一个控制结构或一个代码块。
方法 ：...]]></description><category></category></item><item><title><![CDATA[单元测试的七个阶段]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84160199</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84160199</guid><author>neverloser</author><pubDate>Tue, 28 Feb 2012 16:57:30 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[【转贴】敏捷质疑: TDD]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84160198</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84160198</guid><author>neverloser</author><pubDate>Tue, 28 Feb 2012 16:57:18 +0800</pubDate><description><![CDATA[ 
Q: 为什么通过单元测试发现的 Bug 很少 ?
A: 单元测试不是用来发现 Bug 的, 而是用来预防 Bug 的. 如果采用 TDD, 测试用例完成之时, 产品代码尚未编写, Bug更无从谈起.
Q: 那是否写单元测试就能提高代码质量了 ?
A: 关于这一点, 似乎有人不这么看, &amp;lt;&amp;lt;TDD Opinion: Quality Is a Function of Thoug...]]></description><category></category></item><item><title><![CDATA[class文件笔记]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84157500</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84157500</guid><author>neverloser</author><pubDate>Thu, 23 Feb 2012 11:19:55 +0800</pubDate><description><![CDATA[前四个字节CA FE BA BE
class文件的魔数，所有的class均为这四个字节开始
 
后边的四个字节
minor version 和major version
最低版本号和最高版本号
 
常量池
再往后就是常量池了，包含文件中类和接口相关的常量。常量池中存储了字符串、final类型的变量，类名、方法名
、静态变量（？）。
 ...]]></description><category></category></item><item><title><![CDATA[manage it 笔记 1]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84157499</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84157499</guid><author>neverloser</author><pubDate>Thu, 23 Feb 2012 11:19:24 +0800</pubDate><description><![CDATA[ 

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



管理项目的关键驱动因...]]></description><category></category></item><item><title><![CDATA[[idea]快捷键和eclipse的几个不同]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/84012433</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/84012433</guid><author>neverloser</author><pubDate>Sun, 04 Sep 2011 14:39:03 +0800</pubDate><description><![CDATA[idea的重构能力较之eclipse有很大的提高，用起来也更智能些，所以准备使用idea一段时间，安装就不提了，先从快捷键开始吧：
idea可以直接支持eclipse的快捷键，图省事的朋友可以直接切换之，方法是setting &amp;gt; keymap &amp;gt;第一个下拉框切换即可。
 

最重要的肯定是代码提示了，idea默认的是ctrl+space这个和系统输入法是冲突的，修改方法是sett...]]></description><category></category></item><item><title><![CDATA[冒烟测试]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83982788</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83982788</guid><author>neverloser</author><pubDate>Mon, 08 Aug 2011 17:18:01 +0800</pubDate><description><![CDATA[

冒烟测试 (smoke testing)，据说是微软起的名字。在《微软项目求生法则》一书第 14 章“构建过程”关于冒烟测试，就是开发人员在个人版本的软件上执行目前的冒烟测试项目，确定新的程序代码不出故障。冒烟测试的名称可以理解为该种测试耗时短，仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后，先通电检查，如果存在设计缺陷，电路板可能会短路，板子冒烟了...]]></description><category></category></item><item><title><![CDATA[敏捷日记2011-08-03]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83981234</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83981234</guid><author>neverloser</author><pubDate>Thu, 04 Aug 2011 18:42:20 +0800</pubDate><description><![CDATA[	下午和新同事们一起做了个好玩的游戏-“航海项目”，通过一个tiny project，大家一起吧完成了从最初的用户选择到最终的release plan制定流程，获益很多。
	麻雀虽小五脏俱全，这个过程大体是这样的：
	首先是根据PO的需求描述，大家一起把使用这个project的角色进行划分，方式是每个人做brain storm然后进行合并，发现自己的思维还有过于发散了，没有和项目保持一致，分解...]]></description><category></category></item><item><title><![CDATA[[nexus]nexus配置]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83977762</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83977762</guid><author>neverloser</author><pubDate>Thu, 28 Jul 2011 17:28:55 +0800</pubDate><description><![CDATA[公司使用的项目管理架构是maven+nexus+hudson+cvs，基于nexus开发已经有两年时间了，平时开发只是使用，并没有仔细的研究过它的搭建过程，得闲，自己搭建一个研究下。
 
使用的nexus版本是1.9.2，目前最新的稳定版本，公司使用的1.2.1，版本还是更新了不少，我下载的是all-in-one的笨蛋（bundle）版本。
 
下载完成，上传至ubuntu服务器中，解压缩...]]></description><category></category></item><item><title><![CDATA[[ubuntu]开启root]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83977738</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83977738</guid><author>neverloser</author><pubDate>Thu, 28 Jul 2011 17:01:53 +0800</pubDate><description><![CDATA[
如果你希望像传统 UNIX 样式使用root帐号。你能通过输入 sudo passwd root 。那将使你在控制台上通过 su 或登录成为root.
如果你需要一个有root权限的shell，运行 sudo -s 。
所有用户的“sudo”将需要用户密码。
如果创建新帐号，希望可以使用&quot;sudo&quot;命令，将该帐号添加到 admin 组即可。
如果希望使用&quot;sudo&quot;命令时，不需要输入用...]]></description><category></category></item><item><title><![CDATA[[转贴]几个linux系统的比较]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83977710</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83977710</guid><author>neverloser</author><pubDate>Thu, 28 Jul 2011 16:20:54 +0800</pubDate><description><![CDATA[




Mandriva
Mandriva原名Mandrake，最早由Gaël 
Duval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时，Mandrake非常流行。说起Mandrake的历史，其实最早 
Mandrake的开发者是基于Redhat进行开发的。Redhat默认采用GNOME桌面系统，而Mandrake将之改为KDE。而由于当时的 
Linux普遍比...]]></description><category></category></item><item><title><![CDATA[[ubuntu]ubuntu开始]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83977708</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83977708</guid><author>neverloser</author><pubDate>Thu, 28 Jul 2011 16:19:52 +0800</pubDate><description><![CDATA[平时部署环境多是运维同学负责，开发环境由于java的可移植性，绝大多数都是在windows环境中进行，linux系统只是红帽接触的多谢，得闲，研究下其他linux系统，经过简易比较（比较贴)，选择了一个非常优秀的分支---ubuntu（中文名很霸气：乌班图）。
 
debian系的一个分支，拥有强大的apt-get功能。
 
废话不说啦，本机搞起，vm这次使用的是VMware_workst...]]></description><category></category></item><item><title><![CDATA[数据库设计5步骤【ZT】]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83952266</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83952266</guid><author>neverloser</author><pubDate>Mon, 27 Jun 2011 18:13:01 +0800</pubDate><description><![CDATA[
 
 
 
1.确定entities及relationshipsa)设计宏观行为。你用此数据库来做什么？比如，希望管理雇员的信息。b)确定entities。对于一系列的行为，确定所管理信息所涉及到的主题范围。这将变成table。比如，雇用员工，指定具体部门，确定技能等级。c)确定relationships。看着行为，确定tables之间有何种关系。比如，在部门与雇员之间存在一种关系。给这...]]></description><category></category></item><item><title><![CDATA[[memcacehd]memcache一致性 hash 算法(consistent hashing)[zt]]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83951720</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83951720</guid><author>neverloser</author><pubDate>Sun, 26 Jun 2011 21:48:41 +0800</pubDate><description><![CDATA[


consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出，目前在 cache 系统中应用越来越广泛；

1 基本场景
比如你有 N 个 cache 服务器（后面简称 cache ），那么如何将一个对象 object 映射到 N 个 cache 上呢，你很可能会采用类似下面的通用方法计算 o...]]></description><category></category></item><item><title><![CDATA[[memcached]Memcached 集群架构问题归纳[ZT]]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83951719</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83951719</guid><author>neverloser</author><pubDate>Sun, 26 Jun 2011 21:47:52 +0800</pubDate><description><![CDATA[
集群架构方面的问题o memcached是怎么工作的？o memcached最大的优势是什么？o memcached和MySQL的query cache相比，有什么优缺点？o memcached和服务器的local cache（比如PHP的APC、mmap文件等）相比，有什么优缺点？o memcached的cache机制是怎样的？o memcached如何实现冗余机制？ �o memcache...]]></description><category></category></item><item><title><![CDATA[java工具汇总]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83948421</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83948421</guid><author>neverloser</author><pubDate>Mon, 20 Jun 2011 11:36:04 +0800</pubDate><description><![CDATA[http://download.oracle.com/javase/1.5.0/docs/tooldocs/
 
java bin目录下各个工具的介绍汇总，自己常用到的javap，jstat，jmap，appletviewer。]]></description><category></category></item><item><title><![CDATA[JVM方法区整理]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83947656</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83947656</guid><author>neverloser</author><pubDate>Fri, 17 Jun 2011 15:16:43 +0800</pubDate><description><![CDATA[ 
方法区在一个jvm实例的内部，类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。
 
jvm实现的设计者决定了类型信息的内部表现形式。如，多字节变量在类文件是以big-endian存储的，但在加载到方法区后，其存放形式由jvm根据不同的平台来具体定义。
 
jvm在运行应用时要大量使用存储在方法区中的类型...]]></description><category></category></item><item><title><![CDATA[htttpinvoker管中窥豹]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83947457</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83947457</guid><author>neverloser</author><pubDate>Fri, 17 Jun 2011 11:28:23 +0800</pubDate><description><![CDATA[近期，借着修复一个遗留系统的bug的机会，自己对httpinvoker长期存在的一个问题进行了相关的技术调研，在这里记录下来。
 
问题：httpinvoker客户端和服务器端同时部署了一个接口包，接口包中包含了服务器端提供的接口类和返回对象的类，当我改变服务器端返回类的时候，客户端使用老的接口访问httpinvoker服务，会产生什么现象？
 
答案：看情况。
 
解释：
1.pr...]]></description><category></category></item><item><title><![CDATA[getResourceAsStream方法]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83947142</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83947142</guid><author>neverloser</author><pubDate>Thu, 16 Jun 2011 17:49:27 +0800</pubDate><description><![CDATA[常见的有以下两种获取资源文件的方法：

App.class.getClassLoader().getResourceAsStream(String name)
 
 
Returns an input stream for reading the specified resource. 
The search order is described in the documentatio...]]></description><category></category></item><item><title><![CDATA[活灵活现用Git-技巧篇（转）]]></title><link>https://blog.youkuaiyun.com/neverloser/article/details/83946144</link><guid>https://blog.youkuaiyun.com/neverloser/article/details/83946144</guid><author>neverloser</author><pubDate>Wed, 15 Jun 2011 12:03:59 +0800</pubDate><description><![CDATA[
上一篇介绍了Git的基本概念和一些基本命令，本篇的重点在如下三个部分：个性化定制你的Git，更酷更巧妙的使用Git，以及如何在Git Hub上开启你自己的开源项目。在所有技巧中，最重要的技巧是学会查看Git的帮助，因为Git是一个相对复杂的版本控制工具，如果你熟悉它的命令，那么给你带来的价值是不言而喻的，所以要学会掌握那根金手指─查看Git的帮助，在任何Git命令后加上'--help'就会显示...]]></description><category></category></item></channel></rss>