摘要: 以前写的关于架构经验方面的文章(如上一篇实战中演化的三层架构)都是从整体的角度出发的,采用全局的视角,本文我们将拉近镜头,聚焦于日志记录这一块。随着做软件的时间越长、经验积累得越来越多,就越觉得日志记录的重要。 日志记录的主要作用可以从正反两个方面来说:(1)如果程序运行出现问题,可以通过相关日志快速定位到出问题的地方,找到问题的根源,从而快速解决问题。对于已上线的系统来说,如果出现一个bug,通常,解决这个bug的时间主要花在定位bug上,一旦找到bug根源,修复它是非常快的。而恰当的日志记录可以帮我们迅速定位bug。(2)确保我们的系统运行在正常状态。当我们看到日志中类似“***成功完成.阅读全文
摘要: 作为一个搞软件的,能有机会经历被黑客攻击、并参与到抵抗攻击方案的讨论与实施中来,我觉得是很幸运的。虽然每天都有很多攻击产生,但是这种攻击能降临到我们这种不是很知名的公司身上,确实非常难得。下面就把我们对攻击相关的一些认识整理一下并记录,我们也是刚开始积累这些经验,所以有什么错误和不足之处,希望大家不吝斧正和补充。 虽然,我们经常看到一些门户网站被攻击,但是攻击者并不局限于只攻击网站,他可以攻击你对外提供的一切服务,比如,攻击你的游戏服务器、攻击DNS服务器等等。一、为什么会产生攻击?所有攻击的产生都有其背后的原因,我们能想到的有以下几点:(1)黑客小试身手,拿你的服务做试验。真正有实力的黑客是阅读全文
摘要: 从06年第一次发布ESFramework的相关介绍以来,已经走过了4个年头,ESFramework也从0.1版本成长到4.0。ESFramework 4.0 已经不再是一个简单的通信框架,而是形成了一个解决巨大量(百万级)用户同时在线的高性能的通信体系和完整的解决方案。 ESFramework的层级结构如下所示: 你的通信应用程序可以基于图中的任何一层来构建,但是选择的层次越高,框架帮你做的事情也就越多,你的开发也就越高效和快速。我们来粗略地看看每一层。一.ESFramework ESFramework 作为通信框架的核心,定义了消息处理的骨架流程,提供了多种通信引擎实现,相对单纯而稳定。在.阅读全文
摘要: 系统架构的思想是重要的,但是架构不能纸上谈兵、不能脱离实践。 阅读全文
摘要: 框架和类库等概念的出现都是源于人们对复用的渴望。“不要重复发明轮子”,成了软件界的一句经典名言。从最初的单个函数源代码的复用,到面向对象中类的复用(通常以类库的形式体现),再到基于组件编程中二进制组件(.NET中是以IL程序集形式存在的)的复用,人们复用软件的抽象层次越来越高。现在,框架复用是抽象层次的又一提升,框架的复用不仅仅是功能的复用,更是设计的复用。1.1 框架与类...阅读全文
摘要: 在我的架构经验小结(二)-- 关于三层架构 一文中,已经比较深入的介绍过三层架构方面的一些经验了,现在,我们来使用一个更小的比例尺来近距离观察我所理解的三层架构。
阅读全文
阅读全文
摘要: 框架为应用作过多的假设的一个非常具体的现象就是,框架越俎代庖,把本来是应用要做的事情揽过来自己做。这是一种典型的吃力不讨好的做法。框架越俎代庖,也许会使得一个应用的开发变得简单,却会给其它更多想使用该框架的应用增加了本没有必要的束缚和负担。
阅读全文
阅读全文
摘要: 最初Peter Deutsch从J2EE的企业开发中总结了7大谬误,后来,James Gosling在其基础上增加了一条,再后来,Ted Neward又在其上增加了两条,总共为“十大谬误”。这段时间正在看两本书:《Effective Enterprise Java》和《J2EE AntiPatterns》,恰好两本书都提到了“分布式计算的*大谬误”,...阅读全文
摘要: 事件通知服务用于解决多个应用程序之间的事件发布与预定的问题。在.NET平台上,跨应用程序的事件发布/预定通常以Remoting作为底层的通信基础,在此基础之上,事件通知服务使用中介者模式来简化跨应用程序的事件通知问题。 本文采用的解决方案中,有两个重要组件:事件服务器EventServer和事件客户端EventClient。EventServer作为中介者,并作为一个独立的系统,通常可以将其作为w...阅读全文