<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shannon1的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shannon1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shannon1]]></copyright><item><title><![CDATA[==代替Object#equals() - 加速在容器类中搜索元素速度的可能性]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/84296366</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/84296366</guid><author>shannon1</author><pubDate>Fri, 28 Sep 2012 22:59:26 +0800</pubDate><description><![CDATA[== vs. Object#equals() to accelerate Collection#contains()
问题的描述
众所周知，在需要将对象进行大量比较(equals)的场景，比如List#contains()的大量调用中，Object#equals(Object)实现的效率是很重要的。
提高对象比较效率的途径之一是用地址比较来代替内容比较。比如String#equals(Obj...]]></description><category></category></item><item><title><![CDATA[我对“没有银弹”的看法]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83522070</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83522070</guid><author>shannon1</author><pubDate>Sat, 26 Dec 2009 17:34:49 +0800</pubDate><description><![CDATA[Fred Brooks的《没有银弹》http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html引起了很大的争议，很多人纷纷从各种角度批驳软件业没有银弹这一观点。有些人则用该文观点否定软件工程中当前和未来一切技术和方法。
我个人认为，软件开发是将人力和资本转化成软件产品的过程，它类似于物理学中的能量转...]]></description><category></category></item><item><title><![CDATA[读书笔记]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83426722</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83426722</guid><author>shannon1</author><pubDate>Sat, 04 Jul 2009 11:01:24 +0800</pubDate><description><![CDATA[selenium Web应用程序自动测试软件，复制和重播模式（record and replay）产生测试脚本
 
http://blogbin.iteye.com/blog/38215
 
其他相关：Tellurium
http://www.infoq.com/cn/articles/tellurium-testing-framework...]]></description><category></category></item><item><title><![CDATA[配置、脚本和编程语言]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83407739</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83407739</guid><author>shannon1</author><pubDate>Thu, 18 Jun 2009 08:53:48 +0800</pubDate><description><![CDATA[配置、脚本和编程语言，看似很不相同，其实本质上是一样的东西。这点从Ant脚本可以看出来，它基于的XML是配置所采用的流行格式。同时Ant脚本里有量，有函数，能循环和逻辑判断，已经具备编程语言的基本要素了。
程序像一个水桶，边界条件的约束就像桶边，有了边才能盛水。编程就像箍桶。但通常我们不把桶做成三维密封的圆柱体，顶上留口，以便水进出。编程也一样，为灵活性考虑，我们通常会让某些条件开放着，留待部署...]]></description><category></category></item><item><title><![CDATA[分布式数据库项目]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405958</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405958</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 23:47:12 +0800</pubDate><description><![CDATA[Amoeba，based upon Mysql. in Java
HBase，based upon Hadoop. in Java
*HyperTable, optionally based upon Hadoop, in C++
learn more.]]></description><category></category></item><item><title><![CDATA[谈谈单元测试中的测试桩实践 (5)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405777</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405777</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 14:40:26 +0800</pubDate><description><![CDATA[接着，SystemTimeSynchronizerTests就可以作很大的改进，通过预设标准时间，测试SystemTimeSynchronizer#syncTime()的各个处理分支了。
 
/**shannon.demo.unittest is the unit test codes 
 * package for the demonstration.
 */
package shan...]]></description><category></category></item><item><title><![CDATA[谈谈单元测试中的测试桩实践 (4)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405768</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405768</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 14:34:06 +0800</pubDate><description><![CDATA[在UnitTestFirewall中也要做相应的修改，以允许在测试时，定制Clock实例。
 
package shannon.demo;
 
import thirdparty.any.NtpClock;
 
/**
 * &amp;lt;code&amp;gt;UnitTestFirewall&amp;lt;/code&amp;gt; is the facility to 
 * ease unit test...]]></description><category></category></item><item><title><![CDATA[谈谈单元测试中的测试桩实践 (3)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405764</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405764</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 14:31:04 +0800</pubDate><description><![CDATA[相应的SystemTimeSynchronizer#syncTime()也做了修改，不再直接调用NtpClock。
 
package shannon.demo;
 
import thirdparty.any.NtpClock;
 
public class SystemTimeSynchronizer {
    
    public int syncTime() {
  ...]]></description><category></category></item><item><title><![CDATA[谈谈单元测试中的测试桩实践 (2)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405753</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405753</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 14:25:17 +0800</pubDate><description><![CDATA[首先定义一个Clock接口。并为Clock实现两个具体类，一个是NtpClockWrapper，顾名思义其实就是实现了Clock的NtpClock，另一个是SystemClock，它就提供系统当前时间作为标准时间。
 
package shannon.demo;
 
/**
 * &amp;lt;code&amp;gt;Clock&amp;lt;/code&amp;gt; is an interface for all...]]></description><category></category></item><item><title><![CDATA[谈谈单元测试中的测试桩实践 (1)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83405741</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83405741</guid><author>shannon1</author><pubDate>Thu, 11 Jun 2009 14:17:47 +0800</pubDate><description><![CDATA[写程序的时候，有时可能遇到这样的情况。比如我们开发了一个数据处理模块，被处理的数据需要调用其他模块(由其他团队开发，或者是第三方提供，总之测试的责任不在你)，从数据库或者文件或者通过网络从其他进程中获取。为了对该数据处理模块进行单元测试，我们通常得相应的配置起一个数据库或者文件系统，甚至是相关进程，以求正常的得到数据，但这样做的代价往往较大。
这里想讨论一种我以前曾经使用过的简化单元测试的思路。...]]></description><category></category></item><item><title><![CDATA[程序员的工作和上帝的一样神圣]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83404113</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83404113</guid><author>shannon1</author><pubDate>Sat, 06 Jun 2009 17:50:11 +0800</pubDate><description><![CDATA[程序员和上帝的工作是一样神圣的。上帝的工作是在宇宙范围内创造出更多愚蠢的白痴；程序员的工作则是在计算机上编造出更多愚蠢的白痴程序。到目前为止，上帝暂时领先。
 
当然，程序员和上帝并不是表现最糟糕的。最糟糕的表现，在已然表现糟糕的情况下，还千方百计的妄图无时无刻的只听到赞美，因而表现更加糟糕。
 
所以我们要认清自己，变得谦卑。记住这些话不是为了贬低同行或自己，而是为了避免自己成为最糟糕！...]]></description><category></category></item><item><title><![CDATA[编程的美学标准诌议]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83404067</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83404067</guid><author>shannon1</author><pubDate>Sat, 06 Jun 2009 15:28:39 +0800</pubDate><description><![CDATA[编程的美学标准诌议
做了几年的程序员，虽然自己写的代码还远远没有达到要求，但在日复一日的实践过程中，我逐渐开始信奉一条标准：在实现功能的前提下，简单即是美。
其实，编程的过程就好比是一个建模的过程。设计就是将一个现实问题抽象成逻辑模型。而编码则是将逻辑模型进一步表达成程序模型(如果我可以这么叫的话)。建模是数学和物理中的很重要的方法，而数学和物理是强调“简单”的。不知通过这样的论证来给编程引入...]]></description><category></category></item><item><title><![CDATA[Dan Farino谈MySpace架构]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83403902</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83403902</guid><author>shannon1</author><pubDate>Fri, 05 Jun 2009 18:17:11 +0800</pubDate><description><![CDATA[http://www.infoq.com/cn/interviews/MySpace-Architecture-Dan-Farino-cn
 
科学也许就是这样，现有问题的解决的同时，总是有新的问题伴生。
Dan有关My Space的谈话，让我想到，面对一个有1000量级机器构成的分布式计算集群，怎样(批量的)控制远程程序，怎样做软件下载和更新，怎样调试和监控，在问题发生时怎样迅速定位，可能...]]></description><category></category></item><item><title><![CDATA[使用Perf4J进行性能分析和监控]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83403899</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83403899</guid><author>shannon1</author><pubDate>Fri, 05 Jun 2009 18:04:47 +0800</pubDate><description><![CDATA[http://www.infoq.com/cn/articles/perf4j
 
Perf4J - 在Java代码中添加打印执行时间，性能统计相关的日志
           Perf4J is to System.currentTimeMillis() as log4j is to System.out.println()

LogParser - 通过tag和时间片把性能统计输出书...]]></description><category></category></item><item><title><![CDATA[时序相关任务的并行计算解决方案讨论 (2)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83401402</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83401402</guid><author>shannon1</author><pubDate>Sat, 30 May 2009 12:48:05 +0800</pubDate><description><![CDATA[分析去“时序相关”的可能
在回答主要问题之前，我们还是需要再三分析问题及其数据处理逻辑，看是否可以将数据处理逻辑由时序相关降为时序无关，这样并行计算的效率无疑会更高。
前一部分对时序相关的讨论提到“时序相关取决于数据处理的业务逻辑或处理算法”，改变数据处理的算法是有可能实现去“时序相关”的。还是以第一部分提到的和告警相关的设备简单状态机为例，假如变具体实现为：保存两个计数，alarmSetCo...]]></description><category></category></item><item><title><![CDATA[时序相关任务的并行计算解决方案讨论 (1)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83401190</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83401190</guid><author>shannon1</author><pubDate>Fri, 29 May 2009 13:28:49 +0800</pubDate><description><![CDATA[时序相关任务的并行计算解决方案讨论
(Parallel computing solution for chronologically correlative tasks)
 
现实问题描述
想象一个设备网络，包括许多交换机、路由器、网关服务器、Radius服务器，等等。如果要集中式的监控各个设备的工作状态，就需要在网络中部署一个网络设备管理系统。从网管系统侧看来，所有设备都直接或间接与之相...]]></description><category></category></item><item><title><![CDATA[多级多粒度的持续集成 (graded and multi-scaled CI solution)]]></title><link>https://blog.youkuaiyun.com/shannon1/article/details/83400917</link><guid>https://blog.youkuaiyun.com/shannon1/article/details/83400917</guid><author>shannon1</author><pubDate>Wed, 27 May 2009 21:07:55 +0800</pubDate><description><![CDATA[       也许对软件开发来说，最重要的已经不再是技术或工具、方法，而是过程。
 
在网上看了《跌跌撞撞的持续集成之路》（以下都称《路》），有一些想法，写出来和网友一起讨论。《路》中目标项目的持续集成迭代周期为一周，持续集成的任务流程为编译后台代码，后台代码单元测试，编译前台，部署，功能测试。任务流程决定了一个迭代周期内持续集成的实际执行时间。
《路》中所反应出来的问题其实就是实际集成执行...]]></description><category></category></item></channel></rss>