随笔分类 -  架构/系统设计

摘要:加缓存会增加程序的复杂度(缓存更新策略)。而一般数据库的优化,不会增加程序的复杂度。即使是增加一些冗余字段,复杂度也不高。所以首先把数据库优化到没法再榨取性能了,之后才加缓存比较合理。 阅读全文
posted @ 2012-01-20 00:17 rethink 阅读(353) 评论(0) 推荐(0) 编辑
摘要:系统改造/升级项目和全新的项目有所不同,有一些必须注意的地方和心得:1  一般来说,新系统需要兼容旧系统的数据,或者旧系统的数据要升级到新系统中。   仅仅获得旧系统的数据结构是不够的,如果可能,务必要到旧系统的数据。因为数据的约束不够严谨,或者数据的关系表达不够详细,真实的客户数据往往和设计书中的描述有很大差距,和我们想象中的“理想数据”有很大差距。在复杂的系统和已经运转... 阅读全文
posted @ 2010-06-13 10:30 rethink 阅读(372) 评论(0) 推荐(0) 编辑
摘要:MVC是web开发中常见的程序结构。简单的mvc结构如下:view层:显示层。control层:业务层,集合了各种action。model层:模型层,一般和数据打交道。简单的sample:一个表对应一个model类。其中control层调用model层的方法,实现对数据的访问。采用这样的结构在一定程度上,可以做到代码清晰,较容易扩展,代码的管理复杂度较低。但是如果是业务很多,逻辑又很复杂的网站,如... 阅读全文
posted @ 2009-11-19 22:59 rethink 阅读(2074) 评论(6) 推荐(2) 编辑
摘要:分别使用NFS,Memcached,Tokyo tyrant来实现session共享的性能测试 阅读全文
posted @ 2009-08-27 11:29 rethink 阅读(2579) 评论(8) 推荐(4) 编辑
摘要:“PHP程序员,特别是从php4,甚至是PHP3中成长起来的程序员,很多都不习惯使用抛出异常这种错误处理方式。虽然php5引入了异常处理机制,但是很多php程序员还是没有真正的掌握并使用它。网站完全开放的特性,决定了网站比任何传统软件都更希望做到“系统看起来永远都是能够正常工作的”,所以采用正确的程序错误处理方式尤为重要。理论上来说,如果设计足够完美,开发人员足... 阅读全文
posted @ 2009-08-26 23:05 rethink 阅读(380) 评论(0) 推荐(1) 编辑
摘要:有不少web项目经理同时兼任架构师的角色,包括我。一般而言,我们指的架构,多指技术上的架构,硬件上的架构。最近在豆瓣上看书评时,看到一个概念:web项目,从不同的角度,可以分为三种架构:业务架构,信息架构,技术架构。业务架构以赚钱为中心,信息架构以用户为中心,技术架构以稳定为中心。架构的目标,是要建立一个坚实的、经得起时间考验的体系。过度强调哪一方,都会不同程度的对整体造成影响。最近做项目总结的时... 阅读全文
posted @ 2009-08-26 22:48 rethink 阅读(905) 评论(6) 推荐(1) 编辑