2008年09月2日

一个不错的架构设计

作者 非鱼

Django马上就要发布1.0正式版了,等了好几年,现在才准备要出来。(看官方网站上应该就是这两天了)。在接近正式版的Beta2上,官方的介绍里重点强调了一个模块,comments,于是去读了一下它的文档,果然是个好东西啊。

简言之,comments是一个用于给任何对象添加用户回复功能的模块。你只要在配置文件里加上这个app,在html模板里加上一个load的调用,马上就可以给你原来的对象添加回复功能。所有的回复都存储在它自己的表里。取回复数,显示回复列表,显示回复文本框都有现成的方法可以调用,而发表回复的过程则是全自动处理的。

看完文档的第一感觉是这个模块设计的非常巧妙,你原来的所有的model,比如文章,用户,相片,或者理财易里面的账本,收支,预算等等,全部都可以很方便的增加用户评论的功能。(当然,对于喜欢挑刺的我来说,还有一个第一感觉,它的效率可能会差一点,因为在不修改原对象的情况下,它没有办法把每个对象的评论数放到原对象的表里,而只能在显示每条对象的时候去它自己的表里取一次数据。这样如果在显示某个List的时候想显示评论数,就会造成大量的数据库读取。)

但是,瑕不掩瑜,这个模块的设计理念是一流的,如果海内有这样的设计,就不会需要花那么久的时间才能给迷你博客加上评论功能了。(如果把它设计的不那么灵活,通过它来维护对象所在表中的回复数也是很容易的事。)