摘要:1. 初始应用A和应用B均用到了库libX.a中的类class A:由于需求的变化,应用B需要库libM.a的能力,以便和服务M交互。为了复用和简化,通过类A间接提供,应用B不用修改代码,只需要重新编译即可获得新的能力,其它用到类A的应用也是如此。这个时候会产生一个问...
阅读全文
摘要:抽象是架构师最基础最重要的能力之一。一名程序员要成长为架构师,首先要理解接口的重要性。但是对一个没有经验的人来说,他心中可能无法体会“接口”这两个字的含义。接口就是规范,接口就是协议。为了便于理解,我们可以把它和生活中的事务类比起来,这样就非常容易理解了。假设在工作中...
阅读全文
摘要:内网软件指的是只为一个企业内部提供服务的软件,它和外网软件有个很大不同 —— 即节点数是相对稳定的而且是非常有限的,在设计时可以充分利用这一特点进行简化。比如设计一款在各IDC间传输数据(文件或消息)的软件时,完全可以建立一对一的连接(为支持重连,可以为会话Sessi...
阅读全文
摘要:图1在写程序时,我们会经常遇到如上图所示的一种情形——深层调用,ClassD1和ClassD2需要调用ClassA关联的ClassX、ClassY和ClassZ等,对于这种情况,经常见到通过构造函数一层层往下传递做法。这做法有什么不好了?它不符合开闭原则,当新增一个依...
阅读全文
摘要:// 编译方法:g++ -g -o x x.cpp或g++ -O2 -o x x.cpp,两种编译方式性能基本相同。//// 结论:// 1) 环境变量TZ和isdst均不影响localtime_r的性能// 2) 环境变量TZ严重影响mktime和localtime...
阅读全文
摘要:interpreter和state模式都是通过对行为的抽象,去掉if语句,但interpreter主要是通过组合的方法解决问题,多个对象常会绞合在一起,而state总是一个对象转到另一个对象,这是两个模式间的最大区别之一。
阅读全文
摘要:http://code.google.com/p/mooon分层结构系统结构编程模式
阅读全文
摘要:基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发框架实践系列之前言篇yijian 2008-12-21 technologier@126.com1. 回首工作几年了,没什么沉淀,不是忙工作就是忙着休息,大四和工作的第一年还偶尔在一些技...
阅读全文