Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 企业软件/架构模式与开源软件之间有什么区别?_Design Patterns_Open Source - Fatal编程技术网

Design patterns 企业软件/架构模式与开源软件之间有什么区别?

Design patterns 企业软件/架构模式与开源软件之间有什么区别?,design-patterns,open-source,Design Patterns,Open Source,我主要是一名业务应用程序开发人员,我经常听到CQR、ServiceBus、SOA、DDD、BDD、AOP等术语。我的问题是,这些模式/实践是否只存在于“企业”世界中?与企业世界不同的是开源社区。像Digg、LiveJournal这样的高流量网站每当有一篇文章提到他们是如何构建/扩展他们的网站时,我听到的都是他们为了扩展/简化解决软件问题而使用的开源软件(Memcached、NoSQL),他们很少提及上述术语。是不是因为它们不像企业级软件那么复杂(我怀疑这一点)?或者人们只是为了保住工作而编造这些

我主要是一名业务应用程序开发人员,我经常听到CQR、ServiceBus、SOA、DDD、BDD、AOP等术语。我的问题是,这些模式/实践是否只存在于“企业”世界中?与企业世界不同的是开源社区。像Digg、LiveJournal这样的高流量网站每当有一篇文章提到他们是如何构建/扩展他们的网站时,我听到的都是他们为了扩展/简化解决软件问题而使用的开源软件(Memcached、NoSQL),他们很少提及上述术语。是不是因为它们不像企业级软件那么复杂(我怀疑这一点)?或者人们只是为了保住工作而编造这些术语/实践/模式?还是我对软件开发和互联网网站扩展之间的差异感到困惑


此外,我觉得随着模式/架构/实践数量的增加,我所做的一切似乎都是错误的,因为如果我愿意投入一点时间学习和引入一点共谋,似乎总会有更好/更好的方法。我看到自己最终将无休止地重构/学习新方法,而不做/产生任何具体的东西

软件就是软件,设计模式可以应用于任何软件项目,无论是开源还是开源、业余爱好还是企业级。一些非常具体的东西可能只在某些利基市场中适用或是必要的,这些利基市场可能由“发明”了一些非常具体的东西的封闭源代码供应商主导


不过,主要的区别在于关键词卖得更好。

企业应用程序和开源并不是相互排斥的。EA意味着一组模式来创建可部署到大规模环境中的健壮、可扩展的应用程序


我可以想到许多遵循EA原则的开源项目。

体系结构是从需求中推导出来的。建筑设计模式的差异与需求的差异一样大。开源和企业是两个独立的术语,一个软件项目可以是开源的,企业也可以是开源的,或者两者都不是


根据我个人的经验,开放源码的设计有点欠完善,因此企业的设计往往过于复杂。

DDD是缺陷驱动设计,对吗?youtube上有一段柯克·佩珀丁(Kirk Pepperdine)的精彩视频片段解释了这一点。领域驱动设计。但这并不重要,这与问题有点无关。这个问题真的是关于建筑,还是你对建筑的看法?@John,这是看法,但不一定只是我的看法。“但主要的区别是关键词卖得更好。”这就是为什么我们忘了M$首字母缩写的原因。@Jeffrey Oh,斯皮克女士是一个完全属于自己的班级。他们是那些销售人员根本看不到的东西的首字母缩略词