思考
文章平均质量分 75
sole_ghost
这个作者很懒,什么都没留下…
展开
-
可伸缩性最佳实践:来自eBay的经验
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015 或250 )来计算——可伸缩性是生死交关的问题。 在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的...原创 2009-09-15 21:37:50 · 55 阅读 · 0 评论 -
主题:关于系统性能的思考-----回复
看了《关于系统性能的思考》,结合自己平时的工作和身边的教训,谈谈自己的一些关于性能的想法 1.性能和容量不是一个概念,在相同条件下,当然性能如果越好,容量会越高 2.性能优化真的不是定式的,还需要相当丰富的经验去解决。以自己身边的系统为例,从Apache、Jboss、F5、网络、应用系统、到最后的DB,就如同是一条回家的路,任何一个环节处理慢了,都可能成为性能的瓶颈 3.一...原创 2010-07-21 02:34:06 · 140 阅读 · 0 评论 -
这是一个非常值得记忆的时刻
2008年12月份收费改造,第一次通宵发布系统;这是刚毕业不久后进入公司,抱着对学习饥渴的心态,申请晚上通宵留守,发布成功,晚上12点吃了一顿烧烤,4点发布完成后监控没有问题,6点和若干开发还在局域网内打了几盘cs,7点pm把热腾腾的豆浆煎饺送上,上午9点和其他开发交接后,10点回家睡觉 2009年11月份新的个人版发布,作为核心业务的提供方,留守发布,这次同样有烧烤,我们的系统发...原创 2010-07-07 21:51:19 · 128 阅读 · 0 评论 -
领域模型分类
一、失血模型 只有getter和setter方法的实体类,所有的业务逻辑完全由Service层来完成。 代码示例: Domain:Java代码 public class Person { private long id; private String name; private int age; //getter and s...原创 2009-08-11 17:26:01 · 107 阅读 · 0 评论 -
我们依赖的是流程保证质量,不是依赖个人保证质量
在新的个人版中,为了重用校验码的逻辑,网站系分主导,将校验码的生成、验证规则放在会员核心中(包含错误三次以上删除校验码,一分钟只能发送一次等规则),具体影响验证找回密码申请、手机绑定、手机解绑、激活增加登录号、注册时的激活等业务。这是事前有pa、pd、网站前台、会员核心几方在一起商定的。 由于这些工作本不在个人版项目的范围之内,测试决定在sit回归的情况下测试老前台,以防止验证码部分...2009-08-11 15:35:44 · 73 阅读 · 0 评论 -
重用的粒度问题
面向对象的一个重要特征就是封装和继承,其实就包含了代码的复用。继承、委托等方式(is a/has a/use a)都是代码复用的方式。 在软件开发中,有条原则就是DRY--dont repeat yourself,刚开始接触计算机时的理解是把公用的代码抽象到一个方法中,其他外围类调用此方法,其实除了这种方法级别的复用,还有更高的层次。1.代码的copy\paste,最低级的复用。 ...2010-04-15 23:01:13 · 222 阅读 · 0 评论 -
大道至简与过度设计
前段时间,由于系统需要扩展一下发送事件通知,一个服务可以发送多个通知,而且通知里需要有一些逻辑判断。冥思苦想后,在抽象模板方法中增加了一个扩展点,又通过interceptor拦截服务的方法名,当时还在为自己高深的设计窃喜。1. 找了一位同事帮我review下代码。大概1分钟之后,给出的评价是设计比较抽象,太复杂了。回头好好想了想,软件系统中的设计是干嘛的?搞的那么花花稍稍,真的可以通过花哨...2009-07-30 14:01:45 · 94 阅读 · 0 评论 -
重读martin大师的《重构--提高既有代码的设计》第一章
重新翻了这本圣经级的关于重构的书籍,把第一章关影片租赁的例子在eclipse里重构了一把,总结一下用到的重构原则: 1. extractMethod 本例将switch和ifesle2个计算影片价格和计算影片积分的代码段提取出来,专门放入一个小方法中。其实提取出来的每一个方法都应具有一个明确的业务意义。所以欲所重构,必先熟悉业务,否则没有办法提取出小方法。 2. 代码代码命名rename和...2009-07-26 14:45:19 · 130 阅读 · 0 评论 -
如何重构可以不影响到正常业务的进行?
昨天主管和我review了Q2的kpi 主管:你觉得你写的代码怎么样?我:感觉一般,看了程立写的代码,是种享受,和其比起来,差距还很大。其实大部人程序员都是以最小代价完成布置的任务,完成的代码。我完成了任务,胡总你可能只关心功能,又不知道我的代码质量如何。还是看自己的责任心和时间吧,有时间也许会不断重构自己的代码,但有些自己也有些惰性。 主管:前段时间,我找程立看了下你在企业版...2009-07-25 13:49:28 · 311 阅读 · 0 评论 -
hashmap学习
1.数据结构数组+链表的形式 【】【】【】【】【】 | | | | | 【】【】【】【】【】数组长度:固定,即初始化HashMap时的capacity。当需要数组长度时,会rehash,重新计...2009-12-09 23:57:50 · 59 阅读 · 0 评论 -
罗素语录
1. 对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情,是支配我一生的单纯而强烈的三种感情。2.幸福生活在很大程度上必然是恬静的生活,因为真正的快乐只能存在于恬静的气氛中。 3. 一直向着自己目标前进的人,那么整个世界都会为他让路。 4. 罗素 说: 爱情只有当它是自由自在时,...原创 2009-10-14 13:09:22 · 177 阅读 · 0 评论 -
这段代码不是我写的
刚刚看了9月份刚刚出版的《架构师》的篇首语,技术人员要注意沟通。是的,我就是书中所说的那种人,我害怕沟通,和人打交道远远不如和机器打交道那么自如。和人打交道,最重要的是沟通,一句不妥的用语,小到会引起对方的误解,大到任何可以想象的不堪后果。 是的,我有责任,重构代码是我的职责,但是代码混乱的历史原因不应该压在我身上。我心中只是想表达此意思,心中并没有推脱的意思,错就错在自己的表...2009-09-16 15:58:02 · 178 阅读 · 0 评论 -
冗余的粒度问题
以前谈过重用的粒度问题,今天也谈谈冗余的粒度。 1. 数据库字段的冗余 好处1:合适字段的冗余,对于提供数据库的查询速度会有很大提升,因为可以不用于其他表join去获取数据 好处2:在垂直分库的情况下,丧失了join数据表的能力,为了不让业务受伤害,在表上加上一些冗余,同样可以满足业务的需求 坏处:需要在多个表中维护数据的一致性2. 业务中多个表的冗余...原创 2010-06-26 16:12:24 · 163 阅读 · 0 评论