Hunter的大杂烩 技术学习笔记

2009-02-25

【转】61条面向对象设计的经验原

Filed under: C++ — hunter @ 3:53 pm

61条面向对象设计的经验原

thurJ.Riel
   (1)
所有数据都应该隐藏在所在的类的内部。p13   (2)
类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15   (3)
尽量减少类的协议中的消息。p16   (4)
实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。p16   (5)
不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17
如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。   (6)
不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。p17   (7)
类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要么只使用另一个类的公有接口中的操作。p18   (8)
类应该只表示一个关键抽象。p19
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响.   (9)
把相关的数据和行为集中放置。p19
设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。   (10)
把不相关的信息放在另一个类中(也即:互不沟通的行为)。p19
朝着稳定的方向进行依赖.   (11)
确保你为之建模的抽象概念是类,而不只是对象扮演的角色。p23   (12)
在水平方向上尽可能统一地分布系统功能,也即:按照设计,顶层类应当统一地共享工作。p30   (13)
在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。p30
规划一个接口而不是实现一个接口。   (14)
对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。p30   (15)
对包含太多互不沟通的行为的类多加小心。p31

(more…)

2009-02-17

【转】实现高可用性的7R原则

Filed under: 技术话题,架构 — hunter @ 11:33 am

from:http://www.net130.com/CMS/Pub/special/special_storage/21271.htm

 

实现高可用性的7R原则

    每个应用过程的负责人都希望把他们负责的各种在线系统的正常运行时间最大化–最好是把它们变成完全的容错系统。  

内部和外部的约束使得这个问题变得几乎不可能解决。预算的限制,部件的失败,不完善的代码,人的失误,自然灾害,以及不可遇见的商业变化,都是达到100%可用性(或者说高可用性)的障碍因素中的一部分。

这里列举了七条在不打破预算的情况下,最大化可用性的方法。由于每种方法的首字母都是R,所以又称高可用性的7R原则。他们是:
冗余(Redundancy)
名声(Reputation)
可靠性(Reliability)
修补能力(Repairability)
恢复能力(Recoverability)
响应(Responsiveness)
活力(Robustness)

(more…)

【转】LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构

Filed under: Linux,php — hunter @ 11:32 am

from: http://www.phpv.net/html/1546.html

 

度量性能

持续地对性能进行度量在两个方面有帮助。首先,度量可以帮助了解性能趋势,包括好坏两方面的趋势。作为一个简单的方法,查看一下 Web 服务器上的中央处理单元(CPU)使用率,就可以了解 CPU 是否负载过重。同样,查看过去使用的总带宽并推断未来的变化,可以帮助判断什么时候需要进行网络升级。这些度量最好与其他度量和观测结合考虑。例如,当用户抱怨应用程序太慢时,可以检查磁盘操作是否达到了最大容量。

性能度量的第二个用途是,判断调优是对系统性能有帮助,还是使它更糟糕了。方法是比较修改之前和之后的度量结果。但是,为了进行有效的比较,每次应该只修改一个设置,然后对适当的指标进行比较以判断修改的效果。每次只修改一个设置的原因应该是很明显的:同时做出的两个修改很可能会相互影响。选择用来进行比较的指标比较微妙。

选择的指标必须能够反映应用程序用户感觉到的响应。如果一项修改的目标是减少数据库的内存占用量,那么取消各种缓冲区肯定会有帮助,但是这会牺牲查询速度和应用程序性能。所以,应该选择应用程序响应时间这样的指标,这会使调优向着正确的方向发展,而不仅仅是针对数据库内存使用量。

可以以许多方式度量应用程序响应时间。最简单的方法可能是使用 curl 命令,见清单 1

(more…)

2009-02-16

域名备案–中国特色的互联网

Filed under: 技术话题 — hunter @ 3:27 pm

信产部的兄弟真有闲心啊,搞这种东西…在中国做互联网不容易,通常是自己人整死自己人…

2009-02-03

50个非常有用的PHP工具【转】

Filed under: php — hunter @ 11:43 pm

from:http://www.javaeye.com/news/5208-50-very-useful-php-tools-editing-in

调试工具

测试和优化工具

  • PHP Profile Class
  • (more…)

    Older Posts »

    Powered by WordPress