从15号到今天20号,C.S.的架构大致定下来了,就差细节问题了。
这次开发做了一个尝试,就是使用CVS。以前04和05届开发交流是靠工作室的,但是我们却是在异地开发,所以要便于代码交流的话最佳的办法就是用代码版本管理系统。由于是小项目,所以只用了CVS。
一开始头痛的是模块之间的交互。和游戏不同,设计网络软件要同时应对来自界面和网络的事件信号,交互非常麻烦。 我的策略是用一个EventManager沟通其他模块,作为模块之间的消息发出和响应的通道。
然后头痛的就是线程同步了。网络软件不可避免多线程。之前从来没有写过多线程,十分怕多线程会导致死锁的问题。这次采取Manager集中处理的方法,尽量保证模块之间的交互不用管线程问题,把死锁的情况限制在单一模块。当然,这是理想的想法。只怕真正写代码的时候没这么美好……