自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

碧荷故乡_胡奇的专栏

清清华堂,碧荷流香。悠悠十载,水木齐昌。鸿儒相往,以为故乡。日月沧沧,不弃不忘。千里殷望,难舍难量。祝纳四方,既寿永康。

  • 博客(186)
  • 资源 (10)
  • 收藏
  • 关注

原创 全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程

全陷阱破解:在Linux环境下的Jenkins中持续集成Android工程

2015-06-11 21:43:58 7514

转载 平等对待第三方的“微内核+插件”设计思想

“微核+插件”体系组装。但凡有生命力的产品,都是在扩展性方面设计的比较好的,因为没有哪个产品可以覆盖所有需求,对于开源软件尤其如此。所以,产品只有具有良好的扩展性,允许用户或第三方参与进来,进行二次开发,才能保持生命力。怎么样的扩展性才是最好的?通常来讲,就是没有任何功能是硬编码的,所有的功能都可被用户替换。那要如何才能做到这样?一个重要的原则就是:平等对待第三方。也就是凡是原作者能实现的功能,第

2014-07-31 11:14:47 7802

原创 工欲善其事必先利其器——研发团队开源管理工具最佳实践

持续集成:jenkins   加速项目推进心跳项目管理及构建:maven+nexus  强制的组件化开发开发任务及缺陷跟踪:redmine 高效的沟通自动化测试及自动缺陷检测:Junit,findbugs,checkstyle,pmd  实现部分的自动取代人工质量跟踪:sonar 持续的、量化的质量评估测试管理:testlink 测试用例和自动化测试复用版本管理:git 离线式版本管理,比svn高

2013-12-19 23:09:31 10853

原创 JVM(Java虚拟机)优化大全和案例实战

堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Yo

2013-03-06 22:55:43 51387 9

原创 Oracle死锁问题分析解决

死锁发生的情况一般是资源存在环形依赖。Oracle上的死锁一般出现于“行级锁”的环形依赖情况下:有记录A、B,事务T1、T2,现在T1、T2并发执行update(或delete)A+B事务T1操作的顺序为A-B,正常情况下会先后锁住A和B事务T2操作的顺序为B-A,正常情况下会先后锁住B和AT1、T2并发执行,T1锁住A 同时 T2锁住B;T1操作完A想要锁住B,但B已被T2锁住,T1等待中;T2

2013-01-05 21:48:56 13017 1

原创 Oracle(RAC)数据库调优和事故分析应关注的技术点

Oracle 11g AuditOracle审计(Audit)功能用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD$ 表中,可通过视图 dba_audit_trail 查看)或操作系统审计记录(默认位置为 $ORACLE_BASE/admin/$ORACLE_SID/adump/ )中。而不管是否打开数据库的审计功能,以下这些操作

2012-12-31 10:02:18 11256 2

原创 解决问题6步走训练

第一,客观的描述问题,遵循4w2h(6要素)法则,避免发生冲突。何事 - what何人 - who何地 - where何时 - when怎样 - how多少 - how much第二,筛选问题,列下表: 严重性紧急性发展性问题1L…………问题2……M……问题3…………H 如何判断“发展性”:如果不干预,会不会恶化?第三,发现问题:头脑风暴——尽量穷尽,相对独立,畅所欲言,控制时间。冰山分析法——根

2012-12-26 17:08:23 7521 1

原创 大型电商商业模式创新_供应链金融

近年来比较流行。首先需要取得银行授信。接下来,电商与供应商之间的结算工作提供全新方式“供应链金融”支持。即结算申请审批通过后,尚未实际付款前,由银行就此笔结算金额按一定比例对供应商进行短期贷款,期间利息由供应商承担。最终,实现供应商提前收到货款,电商延长支付账期,获取议价分成,即供应商支付货款利息由电商与银行按一定比例分成的双赢目标。系统核心模块:供应商评级管理供应链金融结算供应链金融融资管理额度

2012-09-10 13:58:10 6169

原创 幂等性及5点注意事项

幂等性——是系统的接口对外一种承诺(而不是实现),承诺只要调用接口成功,外部多次调用对系统的影响是一致的。声明为幂等的接口会认为外部调用失败是常态,并且失败之后必然会有重试。查询、删除一般是幂等性的更新、插入视情况而定吧对于BS应用而言,要注意Post方式对幂等性的影响,至少要阻止刷新时重复提交推荐Get方式Rest风格的SOA架构,来保证幂等性对于Schedul(计划任务、定时任务、Worker

2012-08-03 18:19:36 12343 1

原创 Oracle RAC 实战(一)

所谓 Oracle RAC全称 Oracle Real Application Clusters,即 Oracle 实时应用程序集群,使得不同应用程序访问多个 Oracle Instance 如同访问一个 Oracle Instance(当然性能是在水平方向上相应扩展的),Node 间通过 Private Network 进行通信;所有的操作通过日志文件进行记录,放于共享设备上可以被所有集群的节点

2012-06-25 15:00:25 6054 1

翻译 乔布斯那些经典的激励我们的语录

不要按照用户的坏习惯去设计,也不要按照程序员的思维去设计!do not according to user bad habits to design, also do not according to programmers thinking design!有好的想法要坚持,不要被其他人的观点的噪声掩盖你真正的内心的声音。当你的想法站不住时,立即大度的丢弃,这其实是更是一种坚持。have good

2011-10-06 09:56:54 5976 2

转载 【转】如何看待数据与产品之间的关系?

数据分析是一种靠谱的产品研究方法,这玩意有很多误区,也不能迷信,最终到头来还是要人来做决策。忽略沉默的用户二战时英国空军为了降低飞机的损失,决定给飞机的机身进行装甲加固。由于当时条件所限,只能用装甲加固飞机上的少数部位。他们对执行完轰炸任务返航的飞机进行仔细的观察、分析、统计。发现大多数的弹孔,都集中在飞机的机翼上;只有少数弹孔位于驾驶舱。从数据上说, 加固机翼的性价比最高. 但实际情况缺恰恰相反

2011-09-27 09:48:15 5980

原创 开发者必备的SQL性能优化基本功

在互联网应用,特别是“动态”网站的应用中,随着网站访问量的增加,我们总是会发现性能的瓶颈最先来自数据IO,而非CPU、内存、网络带宽……而数据IO瓶颈一般表现在数据库查询上。当然我们可以通过使用诸如 Memcache 之类的集群缓存方案替数据库“挡”那么一下,也可以考虑使用 HBase 之类的NoSQL解决方案分散数据存取。但是最经济、最快速的办法莫过于SQL语句优化了——几乎零成本且立杆见影。优

2011-07-05 16:36:19 6857

原创 一些Linux系统服务调优/问题定位技巧

调优 - 服务器内存“吃”swap的问题swap内存当然会慢点,所以我们必须想尽办法尽量别用它。即使设置系统参数 vm.swappiness = 0 ,系统也会使用swap,而且测试中发现,swap的使用与Java服务进程没有必然联系,即使不起任何Java进程,swap也会被使用。所以 vm.swappniess 参数的值只是告诉系统要“积极地”使用swap(设为100),还是“尽量别”使

2011-06-28 18:43:00 8151

原创 Linux网络服务参数配置说明及实战

本文对应的运行时参数位于:/proc/sys/net/ipv4/*。“掌控”这些参数,能使您在Linux网络服务问题解决、调优方面功力大增。此乃“系统高手”之必备知识。 临时改动某个系统参数的值,可用两种方法来实现,例如,想启用IP路由转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 或 sysctl -w net.ipv4.ip_forward=1 以上两种方法都可以即时开启路由转发功能。但如果系统重启,或执行了“service network re

2011-02-07 22:37:00 20268

原创 我的新书《jBPM4工作流应用开发指南》出版了

内容简介 - 序 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理(Business Process Management,简称BPM)的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活,居家旅行”的必备素质。 本书分3篇。 第一篇,概念篇——介绍工作流管理技术(也即BPM技术)的概念、起源和发展历程。开源工作流选型,以及jBPM——这个迄今为止最成功的Java开源工作流项目的“前世今生”。 第二篇,应用掌握篇——可以帮助您快速上手jBPM4、使用jBPM4开发企业流程

2010-10-19 23:53:00 11166 7

原创 如何管理“人”

我们常说工作中应该“对事不对人”,但事都是人做的,不同的人做相同的事效果可能相去甚远,再好的业务如果用错了人也会全盘皆输。正所谓“事在人为”嘛,识人、用人、聚人是一个团队管理者获得成功的基础。 先说怎么认识人 人格矩阵法。即所谓的Topk技术,Topk就是由:tiger、owl、peacock 与 koala 4个英文单词的第一个字母组成,即把人的人格类型总结为老虎、猫头鹰、孔雀与考拉这4种动物的行为智慧: 老虎 - 此类人表现为:做事结果导向明显(不在乎过程),野心勃勃,

2010-09-07 21:44:00 15204 39

原创 敏捷开发方法Scrum经验总结

经过实践证明,Scrum 方法用于开发要求快速、灵活,且生命周期短的需求还是很给力的。 关于启动 Scrum 方法的套路就不再赘述了,都是经典的东西。下面总结一下独特的经验(大家鼓掌): 在 sprint planning meeting 上定好本次迭代(迭代即 sprint,之于Scrum的意义不解释)的计划,计算出总“人天”和这次迭代的总“工作日”,画出 burn down 图,burn down 图对于把控 sprint 的进度、及时发现进度和阻碍方面问题是有帮助的。 可以考虑加入“

2010-08-04 17:57:00 9166 9

原创 2010年关于SNS和互联网一些你未必知道的事实

互联网行业风云变幻,以下事实保鲜期为2010年,供思考。 社会性网络服务-SNS 的本质是成为人们通讯、沟通的社交平台。在最初阶段依靠社会化游戏能快速聚集人群,但很快人们就会玩腻,此时若已偏离“本质”——社交,则SNS网站必会江河日下。可查 kaixin001.com renren.com 在 Alexa.com 的数据为证,且 facebook.com 的成长历程已然证明了这一点。 形成人与人之间“社会化网络”的速度要快,不能细水长流。一个新用户进入SNS网站,要用尽各种办法帮助他快速“团

2010-07-27 18:02:00 10056 24

转载 如履薄冰的网站们——该如何理性的看待被拔网线、封IP、切域名?

原题:博客网站被误封与互联网管理法治化据媒体报道,某知名博客网站近日被域名解析商停止了域名解析服务,理由是该站存在违法内容。但该网站的管理层却告知媒体,该站被封是因为一篇已删除掉的违规内容。笔者正好认识采写该新闻的记者,电话沟通后才知道,真实的情况是,可能当时文章已经删除,但部分服务器还没有来得及同步,才导致内容监察人员仍然可以看到该文。如果上述说法属实,那么该网站应该是非常无辜的。博客服

2010-02-05 09:56:00 5501

原创 出来混总是要还的——致那些搞互联网搜索引擎的人

前段时间我的一个朋友(非计算机或互联网人士)大为光火,原因是他家马桶堵了,当然这没啥问题,又不是数据库堵了,找人疏通不就得了?于是他二话不说抄起在中国大陆地区市场份额高达70%的百度搜索引擎搜索“马桶堵塞”。百度一下,你丫就知道……100余毫秒后,百度同志给出了结果,一看,我靠,还真不少,第一条结果看来真靠谱,还正好是北京的,还正好为你提供上门疏通服务,真贴心、真好使啊,怪不得丫占70%呢

2010-01-30 16:56:00 10863 51

原创 互联网站点服务加速的14条军规

我们都说互联网内容制胜,但如果网站的响应速度太慢,即使内容再好,也更会造成用户体验从“抓狂 - 愤怒 - 永远离开 - 坏口碑传播”这样的毁灭性路线。Make fewer HTTP requests - 减少http请求次数。例如首页嵌套了4个iframe,那么就是4+1=5个http请求,如果去掉iframe或改成服务器端包含的话……那么就只剩一个http请求啦。所以,对于访问量巨大

2010-01-20 18:33:00 3275 14

原创 如何调优JVM - 优化Java虚拟机(大全+实例)

已修改。请参见内容更为严谨丰富的第二版:http://blog.csdn.net/kthq/article/details/8618052

2010-01-11 15:32:00 18622 5

原创 Http协议的Delete和Put方法是做什么的?怎么用?

一般来说,Web服务器默认的只支持Post和Get这两种“只读”的请求方法。但是随着Ajax XMLHttpRequest 和 REST风格应用的深入,我们发现Http 1.1协议还支持如下请求方法(Request Method):OPTIONSHEADDELETEPUTTRACECONNECTGet是最常用的,就

2010-01-08 13:49:00 100785 12

原创 职场真言——让你变得更加“专业”

强迫自己强迫自己无论多复杂和多少种的问题,必须总结在三秒钟、二十个字内说清楚,每次电话的时间不超过三分钟,见面时间不超过十分钟。 强迫自己与任何人沟通之前,通过观察他身边的细节,三句话内必须说出他最关心的话题,并为此次对话的目的服务。 也许有些极端,但增加见面次数,缩短见面时间是给人留下深刻印象最有效率的方法。中层干部中层干部都是孙子。因为中层干部没有“

2010-01-04 17:39:00 5448 21

原创 一些你需要知道的Java编程代码规范

首先,强烈推荐你先参考Sun官方的Java代码/编程规范: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 你可以打破以上的任一规则,不过一定要有个好理由,并且记录下来。永远,永远,永远不要在没有记录堆栈跟踪信息(stack trace)或是重新抛出异常的情况下捕获异常,俗称“吃掉异常”。用log.

2009-11-21 18:57:00 2075 1

原创 终极面试技巧——催眠对话和反面试

从书上看到的两个技巧,比较有意思:催眠对话面试被提问的时候,无论什么问题,回答的一开始先要点头称是,喊对;如果有机会提问,也要抛出让对方答“是”和“对”的封闭式问题,这样两个人的对话在一开始就进入了互相肯定的思维下意识,这就是催眠的本质——控制对方的思维下意识,这叫催眠对话。反面试你提问题给面试官的时候。说自己思考了很久的问题,就是这家公司和它的竞争对手最大的区别在哪里、对

2009-11-19 22:20:00 3971 8

转载 有关“结对编程”的一些结论

结对编程可以提高代码质量。 结对编程可以让团队的精力更加集中。 令人惊奇的是,很多强烈抵制结对编程的开发人员根本就没有尝试过,而一旦尝试之后就会迅速喜欢上它。 结对编程令人精疲力竭,不能全天都这样做。 常常更换结对是有好处的。 结对编程可以增进团队间的知识传播。速度快到令人难以想象。 有些人就是不习惯结对编程。不要因为一个优秀的开发人员不习惯结对编程就把他置之不理。

2009-11-19 12:57:00 1279 3

原创 开发人员专享的“福利”——“实验日”

“实验日”——你爱叫什么都行,算是这么一种方式。 在这样的日子里,开发人员基本上可以做任何他想做的事情(我承认这种想法是从Google来的)。比如研习最新的工具和API、准备认证、跟同事讨论乱七八糟的事情、开发自己喜欢的项目等等。 如果你是开发经理、研发主管或其它什么技术管理者,可以在每个迭代周期之间安排这么一个实验日。这样不仅你能得到自然的休息,开发团队也能了解自己感兴趣的、最前沿的知识。

2009-11-15 10:10:00 1565 2

原创 敏捷开发方法Scrum最佳实践

首先强调一些Scrum的基本概念本文只想为那些不断实验敏捷开发方法、追寻快速交付产品的IT管理者提供全套经过验证的实践经验,供之参考。我首先假设你已经理解了Scrum这种敏捷开发方法的基本概念并认同之,但是仍然,我还是要强调以下我们对Scrum达成的“共识”:-)Scrum开发流程通常以30 天或者更短的一段时间为一个周期,由产品经理(Product Owner)提供新产品的需求规

2009-11-09 22:01:00 4411 3

原创 Maven调用Ant脚本的最佳实践

本文所述的 maven-antrun-plugin 版本是2.1,Ant 版本是 1.7.1。Maven工程改造中如果实在脱离不开对于Ant 的依赖,这样做: maven-antrun-plugin 2.1 ant ant-juni

2009-11-07 13:27:00 3618

原创 圈子圈套慧语解读

任何成功,都有太多的偶然;而任何失败,都有太多的必然。 ——不犯错误,就存在成功的“偶然”。总有人急于把自己的结论先抛出来,然后再摆事实讲道理以求对方接受自己的观点,其实这是严重的次序错误,因为没有人心甘情愿总被他人说服,尤其是老板,都习惯由自己得出结论。所以,引导远胜于说服,而最能体现“润物细无声”一般境界的引导方式就是“拾遗补缺”:在老板考虑的诸多因素中,凡是对我们有利却被他

2009-10-27 17:01:00 1920 1

原创 高科技幻觉的另一个变种

相信软件开发人员能轻松的、自动化的完成工作?不!他们的主要工作是人类交流,将需求变成计算机程序,不管我们怎么改变、优化软件生命周期,这项工作仍然是必须的,并且它是不可能自动完成的。

2009-10-13 15:40:00 1181 2

原创 新科技在什么时候才能带来价值

首先,我们需要先达成一些共识:这里的“新科技”是指信息化技术在现代企业中的应用,“价值”对于企业来说就是利润、收益,也是企业经营的根本目的!那么,一项新的科技(或者说“技术”)在什么时候才能带来价值呢?——只有当一项新科技令企业冲破一个现存的限制时,这项新科技才会带来价值。但往往是在新科技实施的过程中,人们忽略了改变相关的运作规则,仍然沿用旧的运作规则,那么这些旧的运作规则就是“限

2009-10-08 23:55:00 1324 2

原创 “超限效应”和“改宗心理效应”

“超限效应”是指刺激过多、过强和作用时间过久而引起心理极不耐烦或反抗的心理现象。可以通俗的理解为大话西游中的“唐僧效应”。试想一下,如果一个长辈在孩子耳边喋喋不休、一个“权威”对年轻人没完没了的强调他的经验,会不会得到叛逆、反感的回应?——对于管理者来说,往往最简单的话语最管用。面对频频犯错的下属或晚辈,要坚信:“指点一二”,更能令其醒悟;“点拨两下”,更能令其思考。有思考,才存在

2009-10-08 16:36:00 1862 1

原创 Maven最佳实践

本文不想讨论Maven是什么、能做什么、我们选择Maven有什么好处……本文只是提出在公司大规模开发环境中使用Maven技术的一个案例、一次实践、一种思路,供大家借鉴和参考。至于是不是“最佳”?当然不是!因为没有“最佳”,只有“更佳”:-)POM,不得不说一下对Maven而言,POM(Poject Object,项目对象)文件就是一个项目的全部,再不需要

2009-09-28 11:04:00 2251

原创 基于Java技术的大型网站架构方案

Web层主体架构可以基于 Struts 1.X/2.X,当然有很多更好的控制层框架供选择,以快速敏捷为准则吧。抽象出核心库封装 控制器和中间层 的操作。在大规模集群环境下,session复制会引起严重的性能问题。考虑用 集群缓存 + cookie验证 代替session实现权限控制吧。Cache层配置 Memcache 组成集群缓存对 Memcach

2009-08-17 18:31:00 11015 1

原创 编程的本质

程序员们每天为之忙碌而编写的程序归根到底是由什么组成的?——数据和算法。想想是不是这样? 那么,究竟是“数据/结构”重要?还是“算法”更重要呢?思考一下我们为什么要编写程序?——处理数据。不是么,无论是存储和读取、发送和接收、监听和订阅、服务端与客户端,我们翻来覆去,玩的就是一堆“数”。因此可以想象,如果程序建立在一个不佳的数据模型之上,改进的成本将远远大于建立在不

2009-08-17 15:31:00 1646 1

原创 使用Git替代SVN的可行性分析

试用了一把Git,感觉Git的优势在于:版本库本地化——每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。因为是私有的本地版本库,因此实现“真正的”脱机工作成为可能。只有在必要的时候,才会和公共版本库合并,每个开发

2009-08-14 18:13:00 8896

转载 搜索引擎(Google)如何评价Blog

了解一下 Google 关于 Blog Ranking 的算法,总结如下。 Google 评价 Blog 的正面指标:订阅数 - 统计 blog 在各种 reader 中被订阅的数量。被订阅的越多,ranking 越高。但同时会使用一些方法处理"subscriptions spam",诸如验证订制人和 IP 的唯一性。搜索点击数 - 统计 blog 作为搜索结果时被点击的次

2009-08-12 11:56:00 1367 1

软件设计规范

基于UML的软件架构设计规范,包括包划分、UML设计等,具有参考和指导的价值

2007-08-17

数据库设计规范

精心整理的数据库设计规范,在多个项目应用,具有指导、参考价值

2007-08-17

设计模式中文版

设计模式的中文版本。如果想快速了解设计模式而非学习英语,我建议还是看中文的文档,如果你的母语是中文的话。翻译质量不错,来自China Pub

2007-08-11

工作流任务不可退回的场景

工作流任务不可退回的场景

2007-07-31

不可取回的场景

不可取回的场景

2007-07-26

面向对象的设计原则——类设计原则

精心整理,简明扼要,易于理解,相当经典

2007-07-25

Hibernate3中文参考

Hibernate3中文参考文档

2007-07-25

Ajax Sequence Diagram

Ajax Sequence Diagram

2007-06-23

2007年开源项目目录、评论、排名

2007年开源项目目录、评论、排名

2007-06-14

Java编码规范

标准java代码编写规范,huqi整理

2007-04-02

空空如也

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

TA关注的人

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