数据+结构
十月 21, 2013
Programming practices
No Comments »
数据是业务流密切相关的东西,容易发生变化,而结构通常都是大同小异。很多时候我们不得不为了各种各样的需求而设计复杂的数据结构。而且一旦它们之间呈现出复杂的依赖关系时,你会发现这就是一个噩梦:
- 结构的逻辑变的相当复杂,而且难以分离
- code review变得困难,让质量无法保证,代码难以维护
能不能让这个事情变的更简单一些呢?看看内核的红黑树和链表:
- 链表
- http://lxr.free-electrons.com/source/include/linux/list.h
- 红黑数
- http://lxr.free-electrons.com/source/include/linux/rbtree.h
- http://lxr.free-electrons.com/source/lib/rbtree_test.c
一旦你习惯了这种设计模式,会发现它很有好处,而且可以轻松巧妙的解决很多问题。例如,在网络编程中,定时器是频繁被用到的一个组件,你会怎么设计它?