我主要是一名商业应用程序开发人员,我经常听到 CQRS、ServiceBus、SOA、DDD、BDD、AOP 等术语。我的问题是,这些模式/实践只存在于“企业”世界吗?与企业世界相反的是开源社区。像 Digg、LiveJournal 这样的高流量网站,每当有一篇文章提到他们如何构建/扩展他们的网站时,我听到的都是他们使用什么开源软件(Memcached、NoSQL)来扩展/简化他们解决软件问题的方式,他们很少提及上述术语。是因为它们不像企业级软件那么复杂(我对此表示怀疑)?或者人们只是为了保住工作而编造这些术语/实践/模式?或者我是否对软件开发和互联网网站扩展之间的差异感到困惑?
此外,我觉得随着模式/架构/实践数量的增加,我所做的一切似乎都是错误的,因为如果我愿意投入一些时间来学习和介绍,似乎总是有更好/更好的方法有点同谋。我看到自己最终会无休止地重构/学习新方法,而不做/生产任何具体的东西。
最佳答案
软件就是软件,设计模式可以应用于任何软件项目,无论是开源还是闭源、业余爱好还是企业级。一些非常具体的东西可能只在某些利基市场中适用或必要,这些市场可能由“发明”了一些非常具体的东西的闭源供应商主导。
主要区别是关键字销量更好。
关于design-patterns - 企业软件/架构模式和开源软件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445095/