自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 代码去重的艺术

重复的代码在软件开发过程中是会带来很大隐患的东东,尤其是当重复的代码发生变更时,很多莫名其妙的Bug就随之而来。我做面试官的时候曾经问过应聘者:去除重复代码有哪些种方法?有些人回答很简单,抽取出来一个函数,把重复代码移动进去。事实上真的是这样么? 本文试图阐述几个问题?A)去除重复代码在软件结构中的意义;B)列举代码去重过程中的一些方法,但只是抛砖引玉的作用,并不能完全枚举出来;C)讨...

2014-09-29 10:03:49 160

原创 数学基础与哲学基础的思考

在我看来,一门学科的发展基础有两类:以数学为基础或者以哲学理论为基础。 以数学为基础的学科,发展非常之快。因为其建立在严谨的推理基础之上的,一般情况下,是就是是,不是就是不是,很少出现似是而非的情况(可能模糊数学是看起来有点例外的,但是我们仔细研究过)。因此可以从简单的公式、公理出发,经过快速的推理产生众多的结论,现代的自然科学貌似都是以数学理论作为基础的。 以哲学为基础的学科,...

2014-07-14 10:46:59 255

原创 智者行之,愚者佩之

”智者行之,愚者佩之“,是《皇帝内经》里面的一句话,原意是对于人的活动需要合乎天道(法于阴阳、和于术数)。智者按照这个方式去做,而愚者知道这样做是好的,合理的,但只是挂在嘴边上(佩服:佩字所指为外在,服所指为内在(服在文言文里面指的是内衣)),宣扬这样是好的云云,但实际上从来不按照这个方式去做。 我很喜欢这句话,很有内涵,我们在检讨自己的时候会发现,其实大多数情况下我们都在扮演”愚者佩之...

2014-07-08 10:43:48 2131

原创 重构乃程序员的义务

最近在分析现有代码,将一部分逻辑抽取出来做服务化,分析的时候才发现里面有很多“坑”。在对相关负责人访谈的时候,发现绝大多数程序员都有这样的习惯:面对一个新的需求,通常的做法是完全沿用现有的设计,完全不考虑现有的设计是否适应新的需求,是否要做改造;想尽一切办法对现有的代码进行修修补补,完成新的功能,以达到修改最小的目的。面对老旧的、无用的代码,很少甚至从来不做删除,以确保风险最低。...

2014-06-20 09:15:05 122

原创 初学Scala有感

1、Scala语言的地位       Scala是JVM系的语言(Clojure、Groovy、Scala、JRuby等属于这一类),这类语言的特点是将语言编译成为Java Bytecode后由JVM解释执行,这样做的原因是:        . 对于Java程序员来说,转换比较容易,以前学到的知识实际上都可以利用起来(因为这类语言调用Java库实际上是没有障碍的);        ....

2014-06-09 15:49:06 151

原创 读书笔记之《设计原本》

总评:《人月神话》作者Brooks写的书《设计原本》,觉得做架构师或者做设计工作的同学们都看看,真的很好,里面将设计提升为方法学、哲学的高度,而不是单纯讲案例、讲准则。当然个人认为有些内容是和设计本身没有太大的关联,可能和作者的工作内容有关而呈现出来的,但绝对值得一读: 印象比较深刻的论断: 。关于完整性:同一个系统的架构实际上不应该有多个架构师同时设计(每个人一部分),至少...

2014-01-22 09:08:33 191

原创 弱引用与ThreadLocal的结合

一直没看到基于弱引用(java.lang.ref.WeakReference)的合适的例子,直到阅读Lucene-core的代码,发现了这么一段:  public class CloseableThreadLocal<T> implements Closeable { private ThreadLocal<WeakReference<T>&g...

2013-10-31 09:33:25 279

原创 Solr的QuickStart安装

写点比较初级的东东: 最近工作需要,研究搜索相关的内容,下面是搭建Solr4.5的一些心得,属于QuickStart类型的。环境:      Tomcat6.x + Windows       Solr4.5(binary) 实际上网上的启动描述的也比较多,但是不知道为什么4.5还是有问题:官方关于如何启动第一个实例的描述(Solr+Tomcat):.  ht...

2013-10-25 16:10:39 65

原创 《程序员应该知道的97件事》读书笔记<一>

偶然间看到了《程序员应该知道的97件事》这本书,并不是什么新书(只是我之前没有看过而已),不过里面写的内容还是不错的,简单有效,阅读起来颇有共鸣。奇怪的是中文版网上已经很难买到了,下载了英文版阅读了下,还没读完,先写一点(只针对印象比较深的规则): 【Act with Prudence】网上搜的翻译是“三思而后行”,内容讲解的是不要积累“技术债务”:如果你发现了什么问题需要调整(重构...

2013-10-14 11:48:59 148

原创 自己写的一个MyBatis Generator Plugin,支持MySQL分页

MyBatis Generator,由于其不支持分页,所以就想写一个针对MySQL可以生成支持分页代码的Plugin,在网上找到了一个http://blog.csdn.net/firecoder/article/details/6069434,运行了一下发现有Example类是把属性都加上去了,但是Provider相关的代码并没有生成,仔细看了下这个实现,发现原因是这个实现只针对XML方式的SQ...

2013-09-18 15:19:25 187

原创 Otter源代码解析(九)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-17 09:08:50 218

原创 Otter源代码解析(八)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-17 09:08:28 272

原创 Otter源代码解析(七)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-17 09:08:02 244

原创 Otter源代码解析(六)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-16 09:19:56 353

原创 Otter源代码解析(五)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-16 08:59:48 295

原创 Otter源代码解析(四)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-16 08:40:03 271

原创 Otter源代码解析(三)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-16 08:30:29 320

原创 Otter源代码解析(二)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-16 08:20:31 419

原创 Otter源代码解析(一)

全部文档索引:Otter源代码解析(一): http://eyuxu.iteye.com/blog/1941894Otter源代码解析(二) : http://eyuxu.iteye.com/blog/1942518Otter源代码解析(三): http://eyuxu.iteye.com/blog/1942519Otter源代码解析(四): http://eyuxu.itey...

2013-09-13 15:37:54 834

原创 Java 之为什么

了解了一些VM和ByteCode层面的规范以后,有些问题会忽然就懂了:1)为什么Java要把方法名字等直接写入Class文件当中?学过C/C++的人都知道,实际上对于函数来说,程序被编译之后会丢掉函数的名称,使用一个偏移取而代之,然后对函数的调用时间上会变成转跳到某一个地址的子程序。 Java为什么不这样做呢? 我原来以为是为了反编译的方便(能够看到类、方法等名称,多好!),最...

2013-05-31 11:10:25 77

原创 Java同步锁代码阅读笔记

花了点时间看了下可重入锁和读写锁的实现:1. Sync相关:继承自AbstractQueuedSynchronizer抽象类,内部维护了一个state变量,获得一个锁的时候会将改变量置位(变量不为0的时候表示已经被其他的线程Lock了),该变量声明成volatile: . 由于volatile只满足可见性,不满足原子性,但是在获取锁的时候需要判断是否当前的锁被占用,如果没有被...

2013-05-24 17:08:55 70

原创 Java VM规范有感

较为仔细地看了JavaVM规范,还是颇有收获的。[b]关于线程:[/b] 1. 每个线程使用独立的栈空间,栈空间的大小在实现上实际上有两种模式:1)固定大小的; 2)可动态扩容的模式(这一点有点出乎我意料之外,这种栈一般来说都不允许动态扩展的),具体支持哪种模式与实现者有关(不过java.lang.Thread类并不支持指定一个最大最小值之类的参数),因此个人认为对栈空间的扩容,支...

2013-05-17 16:25:28 103

支付宝架构学习笔记

在InfoQ上看了支付宝架构的介绍视频: [url]http://www.infoq.com/cn/presentations/alipay-elastic-computing-architecture[/url]感触颇深,前绝大多数系统的架构只做到了面向服务的架构,在弹性架构、高可用性等方面还有很多的工作要做,结合我所在公司的状况,我觉得如下一些点可以借鉴和考虑:1)系统间的调用...

2013-05-03 11:56:21 96

关于Java8的Lamda表达式

最近几天看了函数式语言Lisp,对Java8的Lamda表达式有了进一步的理解。 首先,为什么叫做Lamda表达式呢?其实这个是函数式语言的叫法。函数式语言使用过程定义、以及过程定义的组合来完成需要的功能,可以这样讲:在函数式语言里面,过程定义和过程的组合是整个编程的主要内容。但是有些过程比较简单,为这些简单的东东定义一个过程比较啰嗦,所以引入了Lamda表达式这个语法。如果给La...

2013-04-23 13:07:35 94

互联网带来的文化冲击--逐步消失的文化

互联网给我们的生活确实带来很大的变化,不可否认的是,大多数变化都是积极作用的,比如信息可以很短的时间内得到传播、人们的交流可以足不出户、电子商务让大家甚至可以不需要去商场或者超市就能购物等等。好处实际上每个人都能体会到,但是我觉得一些负面(或者是无法知道是正面还是负面)的影响也逐步凸显出来:1.上微博的时间越来越多,读书的时间越来越少了。阅读习惯也在发生变化,比如我自己好像对长时间看书的耐...

2013-04-19 15:18:20 258

Zip4j扩展

项目当中有这样一个需求:用户下载的内容需要以加密zip包个格式发送给用户,但是发现JDK中对ZIP压缩并不支持加密,因此考虑使用第三方库来实现这个功能:先在Github上找了一个 [url]https://code.google.com/p/winzipaes/[/url] winzipaes,支持ZIP加密,但是只支持AES256格式的(只有Winzip才能解压),另外一个比较严重的问题是J...

2013-04-19 14:12:19 113

Chaos Engineering

Netfix 专家编写的混沌工程的理念,对构建高可用的微服务非常有启发性。

2019-01-30

空空如也

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

TA关注的人

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