什么是绿地和棕地的应用?
我读了Fluent NHibernate wiki中的以下句子:
…; 然而,对于大多数绿地应用(以及相当多的棕地应用),自动映射将不仅仅是有能力的。
什么是绿地和棕地的应用?
格林菲尔德
在软件工程等其他学科,绿地也是一个缺乏前期工作约束的项目。 这与绿地土地上的build筑类似,不需要改造或拆除现有的build筑。
(来自http://en.wikipedia.org/wiki/Greenfield_project )
布朗菲尔德
棕地开发是IT行业常用的术语,用于描述在现有(传统)软件应用程序/系统即时存在的情况下需要开发和部署新软件系统的问题空间。 这意味着任何新的软件架构都必须考虑到现场软件,并与现场软件共存。
(来自http://en.wikipedia.org/wiki/Brownfield_(software_development); )
我认为这可能与城市规划术语“绿地”和“棕地”有关 。 绿地土地是未开发的土地 – 农业,园林绿化或自然。 布朗菲尔德土地是发达的土地。
褐地应用程序是现有的应用程序,而绿地应用程序是尚未开发或正处于开发初期阶段的应用程序。
Greenfield应用程序:新的开发,没有先前的工作,对您的解决scheme构成限制。 我认为这个术语来自于“绿色”领域。
布朗菲尔德:现有的应用程序,很多现有的东西考虑,等等。
看到这个职位 。
我想这是一个类比build设
- 一个新build工地是处女地,即一个新项目,从头开始一个新的软件项目
- 褐色地带是现有build筑物需要首先拆除的地方,即在现有软件项目中build造的地方
根据我所了解的James Gregory(Fluent NHibernate背后的人物),我认为维基百科对于brownfield的入口在理论上有一点点。 在Brownfield应用程序开发中 ,我们将其定义为:
一个以前创build的项目或代码库,可能会受到不良实践,结构和devise的污染,但有可能通过全面和定向重构来恢复
短版本:一个需要工作但仍然积极开发的现有项目(与大多数传统系统不同)。
关于公司决定“绿地”或“棕地”或重构遗留代码的争论很多。
这个决定需要考虑很多因素,而不是可用于开发绿地应用程序的资金。 在很多情况下,传统应用程序是公司目前的摇钱树,任何遗留代码的绿地替代品在获得第一付款客户的掌控之前,都不会成为单一的红色美元。
虽然大多数软件工程师的偏好是开始新的绿地项目,因为他们通常恨OPC(其他人的代码)它可能并不总是在公司的长期财务。
我写了一篇文章,分析绿色工程项目所涉及的风险,基于20年前我工作的一家公司(显示我现在的年龄)的一个非常真实的经验。 你可以在这里阅读它:
http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html