怎么设计一个易于开发、维护、扩展的软件程序?
比如有个IM项目,我想把他做成一个开放平台,怎么设计API,怎么在各个模块间通信?
怎么设计得易于开发、维护、扩展?
我想把软件做成模块化,每个功能都做成DLL。但是具体怎么做呢?
一些开源项目是怎么做到协同开发的?大型的IT公司是怎么做的?
希望高手指点一下,或者给点资料也可以,谢谢。
不要说什么现在做开放平台的很多,你自己做太难了之类的建议,
因为每个人都有自己需要的东西,你看到的只是表面。谢谢。
[解决办法]
可以看看插件的模式。http://www.abstraction.net/ViewArticle.aspx?articleID=67
[解决办法]
插件架构非常不错
[解决办法]
看设计模式
[解决办法]
大话设计模式...
[解决办法]
找个好的开源项目研究
[解决办法]
看《代码大全》
[解决办法]
一个好用的源代码编辑器足矣。
[解决办法]
先实现一个版本,再逐步重构,重构的过程利用设计模式指导。
[解决办法]
事物都有两面性,灵活就要付出代价。
C++插件式可以参考CodeBlocks的源代码。
协同开发就是分工合作,要多沟通,底层先实现,就是架子一定要搭的好,牢靠。
还有有工具支持,比如版本工具,例如 SVN, CVS,BUG工具,例如bugfree。
交流工具:项目网站,即时通讯(QQ群之类)
以上这些都是开源团队一般做法。大公司会用业界成熟的软件生命周期工具,例如:Rational