Tag Archives | java

Spring 源码之AOP

前言

整理前面spring源码中aop的部分,主要梳理主要的调用关系,期望能看出来目标对象的代理是实现的,定义的增强操作怎样被插入到目标方法的执行中去的。根据proxy的创建,和调用为主要线索。为了使得线索上简单,做了如下简化:

  • 作为两种代理方式只是介绍了JdkDynamicAopProxy ,省略了ObjenesisCglibAopProxy,关于CGLIB的可以参照?AOP 的利器:ASM 3.0 介绍
  • ?省略了Advisor,Advice,Point这些角色的解释及其使用详细,这三个重要接口在使用中的实现还是有挺多细节的。
  • ?顺序的调用关系的代码都贴出来,但是了解主要逻辑,只要关注高亮部分即可。
  • 关于FactoryBean的使用时spring IOC的内容,没有展开
  • 另外一种Proxy创建的工厂ProxyFactory未介绍
  • JdkDynamicAop[......]

阅读全文

Tags: , , ,

Comments { 0 }

【Hbase代码笔记】Put

记录HBase 进行一个Put的过程。

1. Client端通过HTable发起Put操作

2. Htable的flushCommits方法使用服务端的连接 来处理提交。和Hadoop Cilent的提交是完全一样的思路

Htable在通过自身的writeBuffer缓存后,会刷新提交

3. Htable 通过HConnection(其实是TableServers类型) 类型的connection发起提交。在Hbase构造时候

4. TableServers类的processBatchOfRows

5[......]

阅读全文

Tags: , , ,

Comments { 0 }

FindBugs Bug Descriptions

摘录了Findbugs的bug rule的描述,和其他相关的静态代码扫描工具相比,其库还是比较brief的,不像其他一些工具他很多细碎的问题也提示出来。少而精,因此对这些rule的理解就成为了可能。其中挺多bug描述其实在没有发生的时候也可以去学习,避免发生。

因为比较典型的不少问题,在代码中看着不是错误,至少现在不是错误,甚至都不是大的问题,但是是潜在的问题,在以后的代码维护中,功能稍微有扩展或者调整,即使是当时写下这些的代码的人也可能在修改这份代码时候出现问题。

挺多其实平时在忙着赶工期忙feature时候,是顾不上这么细微的代码细节的,角落处的代码细节。但是可能最终在某种场合出问题的就是这个不起眼的地方,而且,一般这样的问题调查起来非常麻烦。

结合hbase中发现的问题(apache项目中都有这样的问题),我们的代码中怎么可能没有(也有一点可能,一般我们代码的业务逻[......]

阅读全文

Tags: , , , ,

Comments { 0 }

Classification之Decision Tree Gini Index 完整示例

整理历史邮件的时候pick up出了研一时候的一个基于gini index的classification的作业,包括一个7页纸的功能介绍。作业很精致,文章也挺精致的。能回忆起来,当时白天在教研室做项目,这个小作业是一个半晚上做完的,只记得当时代码写的飞快,键盘敲的很爽。最后根据training data,使用Swing 的JTree画出的Decision Tree很漂亮,最后使用testing data做验证,准确率也很不错。

当时怎么这么爱写E文的,因为当时完全在E文的环境下,上课、作业、项目。唉,现在看着没有那么顺手了,感叹context的影响真是潜移默化,但却足够深远!

代码能跑起来,跑起来效果也挺好,工具很好用,做的也很周到。traning出来的decision tree长得挺好看的,最后还有个基于testing data的对于构造的decision tree的评估。但[......]

阅读全文

Tags: , , , , ,

Comments { 0 }