暂无个人介绍
2016,对自己来说注定是不平凡的一年,新的三年征程需要一个清晰的三年规划作为指导。做什么,如何做?这是我今年问自己最多的问题。思考良久,终于有了一丝清晰的方向,遂提笔记下,欢迎有志者共勉。未来的日子里,自己将会在以下几个方向发力,概括讲,就是”创新,开放,生态,国际化,品牌”。 创新 概括讲,就是人无我有(原创),人有我经精(微创)。无论是产品、技术、还是管理,皆试用。
2015 2.10 系统化学习这本书的原因很简单,在写Maven Dependency Mediator这个开源插件的时候,希望能做的和开源社区诸如Ning那些组件不同,系统研究了Maven 2和3的源码,学习了Gradle这套编译体系,后来发现Gradle冲突检测这块实现上和Maven差不多。目前,已经将几个开源组件迁移到Gradle上了。另外,在读这本书的过
时间就如白驹过隙,GUANG,来到了2015年,按照惯例,我们需要为自己做个年终盘点。2014年,在如何做好开源软件方面,我还是比较满意自己的表现。目前正在紧张有序地推进几个开源软件的incubator进程。除此之外,在Github,apache社区也分别对几款开源软件提了一些改进建议以及一些patch,彻底抑制了自己造轮子的冲动。不足之处,由于时间关系,错过了一些外部邀请的
开源项目jvm serializer介绍: 该项目分析了目前主流分布式通讯相关开源产品中使用的No Schema序列化产品Kryo,Fastjson,Hessian的序列化机制,通过构造相对比较复杂的数据model,针对序列化size,序列化时间进行了细致测试。通过测试报告可以清晰的看出Kryo无疑是大赢家,无论是序列化大小,还是速度上都更胜一筹,这也就不难理解为什么
正如这幅图所展示的那样,在Spring IO Framework体系中,Spring Boot处在Execution layer,来看看官方对这层的解释: The Spring IO Execution layer provides domain-specific runtimes (DSRs) for applications built on th
在一次C500K性能压测过程中,发现一个问题:8 processor的CPU,负载基本集中在CPU0,并且负载达到70以上,并通过mpstat发现CPU0每秒总中断(%irq+%soft)次数比较高。 基于对此问题的研究,解决和思考,便有了这篇文章,希望大家能够喜欢,也欢迎大家留言讨论。 在正文开始之前,我们先来看两个跟性能相关的基本概念:中断与上线
这篇文章主要和大家分享一下,在我们基础软件升级过程中遇到的经典Netty问题。当然,官方资料也许是一个更好的补充。另外,大家如果对Netty及其Grizzly架构以及源码有疑问的,欢迎交流。后续会为大家奉献我们基于Grizzly和Netty构建的RPC框架的压测分析,希望大家能够喜欢! 好了,言归正传~ 依赖 Netty团队大概从3.3.0开始,将依赖
<<精通组件兼容性依赖>>,这篇文章首先从Java语言层面阐述了什么是兼容性,JDK是如何处理兼容性的?然后提出了一个最佳实践路线图,首先要保证你的组件包是面向接口编程的,别人可以稳定地依赖你的接口,而实现可以采用动态发现的机制去做。并用SLF4j和Maven Dependency插件作为推荐准则,讲解了它们的源码实现,顺便引出了臭名昭著的common
之前在消息推送中间件APush里实现了对APNS的桥接,并利用业余时间阅读了官方指南Local and Push Notification Programming Guide,蛮有心得的。稍作总结,分享给大家,希望能够喜欢,欢迎留言讨论! 1. APNS 通道环境 作为一个黑盒的消息推送服务,APNS为我们提供了开发和产品两套环境,这两套环境除了Host
可运维性,是软件架构里面一个很重要的方向。而监控,报警和可视化无疑是这个方向最为倚重的法宝。今天和大家分享一下自己对消息中间件MQ的一些运维思考和实践,希望能给大家提供一些帮助,也欢迎大家发表自己的看法! 一图胜千言......
2013-5-08 - version 1.0.0 released2014-3-21 - version 1.1.0 released Fixed - log4j thread safe problemFeature - support logback 代码地址 基于perfj的性能分析工具,欢迎大家使用,也欢迎大家继续完善~
紧张而繁忙的2013已经过去了,这一年里,自己在分布式技术领域有一些长足进步,这多多得益于一贯坚持的多看,多码,多测,多参与的方针政策。在新的一年里,除了继续保持优良传统外,还要加强对外合作,与社区的Guys继续保持无地域,无差别地快乐沟通合作模式,共创最棒开源软件。在技术,敏捷实践等方面也要有更为深入的突破。在文章,书籍方面,也要更勤勉些,除了原创文章外,可以考虑尝试加入
前阵子对Spring Jms实现进行了一些扩展,借此机会系统化地研究了一下Spring对JMS的支持,整理成文,希望大家能够喜欢! 本文打算从两个维度(编程API和包结构)进行阐述,希望大家读完,能对Spring在JMS层面上做的事情有一个大致了解。当然喜欢扣细节的朋友,也欢迎提出你的疑惑! 第一部分:编程API 首先,让我们来看下
这篇文章被压在草稿箱许久,最近公司内部的技术社区有同学贴出了几篇分享Java线程的文章,发觉有很多的地方可以深挖,所以花点时间继续撰写,便有了这篇博文。本文只聚焦JVM层面的线程模型,不考虑和真实的操作系统Thread模型挂钩(由于篇幅有限,本文不会介绍Thread dump
JMS 2是Java EE 7的一个重要“卖点”(如图所示), 本文的重点也落在了JMS 2规范上,通过近4个小时的阅读(156 Page),结合最近Common MQ的实施经验,谈谈对新规范的一些解读,后续会陆续发表一些相关博文,希望大家能够感兴趣。 浏览一下Architecture章节目录,大家很快就会意识到,JMS 2的一个最重要的设计初衷,
Apache的HttpComponent(这里是基于 version 4.1)组件,用的人不在少数。但是能用好的人,却微乎其微,为什么?很简单,TCP/IP协议里面的细节太多了(细节是魔鬼),像并发请求控制&资源释放,Nagle算法参数优化,Connection eviction,跟ulimit配对的total connection,重定向策略定制化,两类超时时间
之前,一直对Webx的印象是厚重,n多无厘头的默认契约,所以不愿过多接触它的源码。最近一段时间,构建在之上的应用安全问题频出,于是花了一些时间,研究了其Spring ext部分的源码,虽说有spring源码知识的基础,不过研究Webx的过程中,还是让人受益匪浅,也慢慢改变了之前的一些看法。这里我摘录下自己研究源码时怀揣着的疑问,感兴趣的同学可以留言一同讨论,看看你的实现是不
最近在设计新版的流程渲染引擎,考虑采用无损失放缩的矢量图SVG去搞,从技术调研到实现蛮有心得的,这里贴出自己的设计思路,欢迎拍砖~ 首先说下诉求,简单说就是绘制流程地图。其次简单列举下需要注意的技术点: (1) 图形元素和坐标元素解析(合并or分拆) (2) DOM树解析,原生JAXP,DOM4J or SVG DOM utils(混用会带来很多问题)
现在工程师们越发的喜欢谈性能(CPU, memery, IO, container, middleware等),性能调优似乎也成为软件行业基础架构师越来越倚重的技艺之一。通常情况下,性能shooting也无外乎分为几个过程。其一,performance diagnostic & bottleneck positioning,这一步往往是关键,当然手法也是千奇百怪,这
受七周七语言、编程语言实现模式等读物启发,计划写一个语言之美系列博文,因为最近工作上用的比较多的语言是Java,所以先从它开刀,希望大家多提宝贵意见~ 一. 泛型 (1). 泛型类并没有自己独有的Class类对象; (2). 静态变量是被泛型类的所有实例所共享的; (3). 泛型的类型参数不能用在Java异常处理的catch语句中; (4). List<? ext
最近花时间解决了一些以前积攒的,未曾深入研究的问题。其中一个就是eclipse maven 关联jar包源代码出现乱码的问题。问题的解决方案不算太麻烦,但是追本溯源确是件很有意思的事情(一直追踪到eclipse的源代码,探查到一些开源项目,如:伊利诺斯大学的开源项目CodingSpectator)。当然了,RCP开发本身就挺吸引我的,后面有机会,会和大家分享更多的心得。好了
如何提高Ajax应用的质量和性能,概括来讲,该过程主要包含以下几个步骤: 1.JavaScript代码的潜在错误和代码风格检查。通过集成JSLint可以找到代码中潜在的问题。 2.JavaScript文件的合并、缩减和混淆。通过合并可以把多个JavaScript文件合成一个,减少页面加载时的HTTP请求个数;通过缩减可以去掉JavaScript代码中多
最近在做服务器启动调优的过程中,重温了一下IBM tech wiki上的JPDA系列文章,这里放出来和大家分享,欢迎大家留言讨论~ 1. 第一部曲 http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/ 2. 第二部曲 http://www.ibm.com/developerworks/cn/java/j-lo-
初尝LAMP,WAMP or MAMP,可能大多数同学会想到使用AppSer套件吧。今天,借着我们的Web Profiler,我想和大家分享的一下LAMP环境搭建(不过这里暂时不需要M)。 一. 环境准备 工欲善其事必先利其器。首先,我们需要列出环境搭建过程中的Requirements and Optional。 1. Apache HTTP Ser
这篇文章可以看做是Apress出版的那本<<软件框架设计的艺术>>进阶阅读。欢迎大家留言,一同分享自己的心得体会~ 软件大师Robert Martin早在1994年的论文中就提到了OO设计度量准则,站在可维护性(Maintainablity),可扩展性(Extensibility),可重用性(Resuability)的角度上,提出了
数据库是一个共享资源,可以供多个用户使用。然而,对于大多数程序员来说,单处理机系统是我们接触最多的系统,运行在其上的数据库事务也并非真正意义上的并行,实际上它是这些并行事务的并行操作轮流交叉运行,这种并行执行方式称为交叉并发方式(Interleaved Concurrency),这样可以减少处理机的空闲时间,提高系统的效率。而在多处理机系统中,每个处理机可以运行一个事务,多
序言: 权限模块是MIS系统中不可或缺的重要组成。员工在进行正常的访问前,服务器往往都需要认证员工的身份。确认员工是否授权,也就是进行访问控制。访问控制管理允许被授权的主体(个体或团体组织)对某些资源的访问,同时拒绝向非授权的主体提供服务。权限模块的逻辑模型一般形式如下: 谁(员工/角色)对什么(应用模块)是否具有某种操作的授权(授权状态:gran
最近在梳理公司的EAI平台 — JCAPS,顺便翻阅了一些“历史”文献,梳理成文,希望能加深大家对SOA的认识。 ESB 是软件行业的下一代集成产品的名称。ESB 沿用企业应用程序集成 (EAI) 的技术道路前行,在改进 EAI 中的某些技术环节的同时,采用了 EAI 技术中的更为有效的方面。尽管 EAI 和 ESB 的目标相同,但是在技术体系结构方面,这
喜欢eclipse的朋友,可能多半都会装一些导航插件吧,比方说easyExplorer。在装了Aptana插件后,我卸掉了原先的EE,准备使用它自带的Explore Files,发现控制台打印出如下语句: cmd /C start explorer /select,/e, "D:\deimos\biz\common\src\java.test\com\deim
谈起XML解析,大家可能第一反应是DOM,SAX模型。没错,在Java领域,无论是Dom4j, Jdom,还是XOM,其底层都会依赖具体的解析器引擎(Crimson or Xerces)去做事,具体的实现后面会有文章陆续探究。今天写这篇文章的主要目的是想和大家分享自己使用Java SE6的StAX API的一些感受,尤其是对其API的设计理念的一个思考,没多少文字,主要是一
作为成长的记忆,也作为不断追求卓越的见证,分享自己工作一年来的优秀代码片段。 思考:两年,三年,甚至更远,进步能有几何??? 期望:年年岁岁花相似,岁岁年年码不同~ /** * Comprehensive Assert API, for extensible ,you can use inheritance machanism, * naming your class as
在Java领域,谈到网络编程,可能大家脑海里第一反应就是MINA,NETTY,GRIZZLY等优秀的开源框架。没错,不过在深入探究这些框架之前,我们需要先从最original的技术探究开始(当然,需要大家先熟悉java.net.*类库)。这里,我要和大家分享一下HttpComponents项目的部分组件特性。HttpClient,想必大家早都接触过了吧。HttpCompon
----能够正视失败和错误,而不回避和掩盖,正是职业架构师的宝贵素养!!! 首先,我们需要明白的是何为架构,以我看来,架构更多关注的是高层设计(所谓的high-level Design),它是一组有关如何确定软件系统的组织机构的重要决策。感兴趣的朋友可以查看这篇文章来深入理解一下架构的概念
消息中间件的最终一致性如何保证?架构上面,主要考虑以下几个方面: 1。事务同步; 2。消息缓存or持久化; 3。定时钟轮询 事务同步很好理解。我的消息总不能在事务提交前发出去吧?为此,架构设计中我们通常这么干: public boolean publish(AsyncEvent event) {
工作中需要解决一些servlet容器类加载器的问题,尤其是Jboss 4.x系列,比方说log4j版本冲突需要靠更改配置项Java2ClassLoadingCompliance,UseJBossWebLoader;ear包部署,出现NoSuchMethodError,NoSuchFieldError,NoClassDefFoundError等(二进制兼容错误)需要进行类隔
推荐几篇不错的关于前端性能优化的原创E文: 1. http://developer.yahoo.com/performance/rules.html 2. http://code.google.com/intl/zh-CN/speed/page-speed/docs/rules_intro.html
"凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋." 初出茅庐,已经能熟练的使用常用的框架了,感觉框架在手,天下我有. "紫薇软剑,三十岁前所用,误伤义士不祥,悔恨不已,乃弃之深谷." 已经懂得把百炼钢化为绕指柔,对各个框架的特点有所了解,会根据项目的需求去选择合适的框架,并能在此基础上更好的去设计拓展. "重剑无锋,大巧不工,四十岁前持之横行天下." 返璞归真,放下了对
近几年,架构领域兴起了很多新型架构思想。DDD成为继OOD之后又一个被人津津乐道的设计风格。.这里结合自己工作实践,和大家分享一下自己的DDD实践观,首先向大家推荐一篇关于DDD的文章(http://msdn.microsoft.com/en-us/magazine/hh547108.aspx.看看微软的卓越工作,从DataTable到EntityObject. - Ne
将自己学习,工作中整理的一些经典SQL和大家分享一下。注意,在Oracle 9i中tiger账户默认是开启的,后续版本则改变了策略~同时,关于sql优化尤其是hint的使用,这里不做分享,具体可以查阅民间流传的50大招~ -- toy sql alter user scott account unlock; select ename,sal*12 as "annual
之前,和很多朋友交流的过程中会谈及Java EE相关规范的问题。可能有很多朋友不是很清楚,这里放出上学期间整理过的一篇文章,方便大家进行Java EE进阶学习。 Technologies JSR Download Java Platform, Enterprise Edition 6 (Java EE 6)
俗话说的好,净信书不如无书。怀揣着怀疑,翻阅了诸多权威文献。这里总结了自己工作、学习中做性能调优时经常翻阅的文献,希望能为大家带来方便。如果在阅读过程中有什么不清楚的,也欢迎大家留言,一同探讨
企业是如何选拨高素质工程师(高级软件工程师or架构师)的?除了脑筋急转弯那种简单的开场白外,还需要更专业,更深邃的交流。这里,我把自己平时的思考备案分享给大家,欢迎讨论~ 基础技术篇(数据结构,并发编程,JVM内存调优等) 1. 谈谈对队列offer,poll,peek操作的理解(实现,算法复杂度) 2. 谈谈对HashMap,ConcurrentHashMap,Con
Java的异常体系想必大家都熟记于心的,那么在日常的编码过程中,大家又是如何实施的呢?针对checked和unchecked exception大家的理解又有多少呢? 几乎所有的书本上都给出了一个conclusion,如果日常事务能从异常中恢复,那么建议用checked exception,如果不能recover from,那么就是unchecked的