在学校的时候就试用过Wiki了,不过当时习惯以个人为中心,觉得那种我写的东西,可以让别人胡乱去改,实在是难以接受。
不过到了团队里面就不同了,需要的是大家的协作,同时技术团队面临着一个很重要的问题:面对这知识的快速更新和项目组成员的变动,如何积累项目开发中的知识(特别是某些关键技术难题的解决办法),并且还能做到不断的更新。
传统的解决方案是通过项目组内部的论坛的形式来积累知识。这又回到论坛和wiki的区别的问题了,我觉得论坛和wiki的最大的区别是:
1、论坛的主角是版主/楼主,而wiki的主角是Everyone,每个人都可以维护知识库里的topic。
2、论坛是以讨论的方式来积累知识,人们需要阅读完主题和全部的回复才能得到一个全面的了解。而wiki上直接显示了最后一次修改的正确结果(当然你也可以查看历史版本,或者你认为当前的结果完全错误的时候,选择回滚)。
3、论坛无法表达知识存在着关联性。比如说我们解决了一个内容管理系统的问题,需要参考一下“db4o实现对象缓存池”的方法。那么我们就能用 [[db4o实现对象缓存池]] 来关联这个topic(甚至这个topic可能还不存在于我们的wiki中,需要另外一个member去写)。
4、wiki不但自由,而且还更注重自律,体现人人维护的教义。而论坛可能很容易变成水桶。
关于wiki的基本概念,可以看看 [Wiki介绍]。
说道 [flexwiki] ,这是微软根据cpl协议开源的一个东西(实在难得),同时支持文件存储和sqlserver存储方式,界面风格也非常的俭约。更重要的是,flexwiki采用asp.net编写,易于我们修改和部署。