代码改变世界

JVM Spec 4

2012-09-27 23:17 by 横刀天笑, 681 阅读, 收藏, 编辑
摘要: Class file format Code Attribute native and abstract has not any code attributes, and LocalVariableTable in Code attribute, so we can not get parameter name from interface methods.阅读全文

JVM Spec 1-3

2012-09-27 23:07 by 横刀天笑, 627 阅读, 收藏, 编辑
摘要: Runtime areasPc register Point current code address undefine -> in native codeThread related JVM method stack expandable size fixed size Exceptions StackOverflow OOM Can not expand Can not create new threadFrame Size: determined at compile timeNative method stackGlobal Heap GC Exception...阅读全文

为什么女生总是将手机遗落在卫生间

2012-09-27 01:07 by 横刀天笑, 3144 阅读, 收藏, 编辑
摘要: 公司RTX经常弹出这样的小窗口:女卫生间丢失手机一部,请丢失手机的同学来前台认领。但奇怪的是这事儿只发生在女卫,而男卫一次都没发生过。难道是我们公司的女生比男生更不细心?为此我发了一条微博和一条消息引起了大家热烈讨论,最后大概得出这么几条结论:1 女生喜欢玩手机,所以追女生可以送手机2 女生穿裙子,经常没有兜儿,然后又喜欢照镜子梳妆,所以总是把手机忘记在洗手台上3 男卫以前有那种临时放物品的兜儿,上洗手间时经常把手机方里面,现在撤走了,估计女卫里没撤走对于答案1就不用讨论了答案2和答案3,首先要看大部分手机遗落在哪儿,如果是遗落在洗手台,那我们怎么解决这个问题呢?想起《你的灯亮着吗》这本书里,阅读全文

Java基础知识复习

2012-09-24 00:15 by 横刀天笑, 2458 阅读, 收藏, 编辑
摘要: 最近准备把java的一些基础知识复习一遍,列了个列表1 JVM规范 class加载过程 class file大概结构 invoke指令 2 Servlet规范 API Servlet生命周期 异步Servlet 3 JVM 内存区域 Java堆 方法区 Java方法栈 本地方法栈 GC 代 新生代 Eden Survivor 旧生代 持久代 不同类型GC Serial ParNew Parallel Scavenge Serial Old Paral...阅读全文

普罗米修斯观后感

2012-09-23 14:49 by 横刀天笑, 1323 阅读, 收藏, 编辑
摘要: 看完《普罗米修斯》有几个问题没想太明白:1 那个机器人为什么这么仇恨人,要把他们害死呢?2 那个外星人为啥把机器人也干了?3 最后在那个返回舱里,那个章鱼似的怪物是哪儿来的?4 那个章鱼怪物为啥跟那个外星人火拼?后来想了想,自己给出这么几个答案:1 整场电影的意思是,外星人创造了人类,后来又因不明原因想毁灭人类。如是机器人又在想:人类制造了我,是不是有一天我也会被人类毁灭?所以它萌发了想干掉人类的动机。在之前,那个男博士与机器人的一次聊天中提到了这个。2 机器人和人类长的太像了,所以外星人以为机器人是人类,也给干掉了。这个在影片中,他们第一次出仓的时候,机器人曾说过:我倒宁愿他们把我制造的与你阅读全文

【转载】来自Clean Code的一段话,正好形容公司目前一个系统

2012-06-07 22:22 by 横刀天笑, 1814 阅读, 收藏, 编辑
摘要: 混乱的代价只要你干过两三年编程,就有可能曾被某人的糟糕代码绊倒过。如果编程不止两三年,也有可能被这种代码拖过后腿。进度延缓的过程会很严重。有些团队在项目初期进展迅速,但有那么一两年的时间却慢如蜗行。对代码的每次修改都影响到其他两三处代码。修改无小事。每次添加或修改代码,都得对那堆扭纹柴了然于心,这样才能网上扔更多的扭纹柴。这团乱麻越来越大,再也无法理清,最后束手无策。随着混乱的增加,团队生产力也持续下降,趋向于零。当生产力下降时,管理层只有一件事可做了:增加更多的人手到项目中,期望提升生产力。可是新人并不熟悉系统的设计。他们搞不清楚什么样的修改符合设计意图,什么样的修改违背设计意图。而且,他们阅读全文

UI自动化测试随笔

2012-05-25 23:46 by 横刀天笑, 4909 阅读, 收藏, 编辑
摘要: 昨天给开发的同事讲我们正在做的自动化测试,同事问了句:为什么API的测试不需要写代码了,而UI的测试还需要写那么多代码呢? 能不写代码么?目前我们的自动化测试的现状:目前主要覆盖两个部分:API的测试和UI的测试。对于API的测试经过框架的封装,基本上只需要编写一个xml描述的test case就可以了,xml里描述了输入,调用和断言。框架就根据这个xml来测试具体的API,基本上(99%)不需要写代码了。而UI的测试在这方面框架封装的却比较少(力所能及的封装一些通用控件),更多的是制定一些分层的规范。我当时回答:因为API的输入和输出比较明确,而且目前的API的测试还仅仅是关注在单个API上阅读全文

Bloom Filter算法

2012-02-08 23:22 by 横刀天笑, 7948 阅读, 收藏, 编辑
摘要: 集合数据结构一般都有这么一个方法:contains。其作用就是判断给定的元素是否存在集合中,这是一个常用的方法。其最简单的内部实现即遍历集合内的元素,一个个的判断是否与给定元素相等。为了更高效点我们甚至可以采用“更好的(好是相对的)”算法实现。比如如果该集合是已经排序的,那么我们用二分查找来实现contains肯定更好。但是,如果集合的数据量庞大到一定程度,大部分我们熟知的算法不再有什么用了。即使可以使用,但是机器内存也不允许。而Bloom Filter就是这么一个空间利用率非常高的算法。我们先来看看这个算法的原理:1 首先我们有一个长度为n的比特数组,开始的时候将这个比特数组里所有的元素都初阅读全文

memcached源代码阅读笔记(二):网络处理部分

2012-01-02 11:30 by 横刀天笑, 2979 阅读, 收藏, 编辑
摘要: 既然memcached是一个缓存服务器,而且要提供高效的缓存服务,那么网络层肯定要非常有效率才行。要能支撑大量的并发连接,还要有很优秀的响应速度。除此之外,因为memcached的核心业务并不是网络层,它的核心是缓存机制。那么就必须采用一种机制,将网络层隔离,以免网络通信部分缠绕在系统的各处,扰乱了核心逻辑。阅读全文

关于自动化测试

2011-12-14 14:16 by 横刀天笑, 3220 阅读, 收藏, 编辑
摘要: 自动化测试是软件开发中非常重要的一环,那么我们如何进行自动化测试呢?何时添加自动化测试呢?自动化测试又有些什么作用。本文是我在team内部分享的一些内容。阅读全文