Что такое "зеленые" и "коричневые" приложения?
Я прочитал следующее предложение в Fluent NHibernate wiki:
...; тем не менее, для большинства приложений с использованием новых приложений (и даже нескольких коричневых полей) автоматическое сопоставление будет более чем способным.
Что такое приложения с зеленым и коричневым полями?
Ответы
Ответ 1
Гринфилд
в других дисциплинах, таких как разработка программного обеспечения, новое поле также представляет собой проект, в котором отсутствуют какие-либо ограничения, налагаемые предшествующей работой. Аналогия связана с строительством на землях, где нет необходимости переделывать или разрушать существующую структуру.
(из http://en.wikipedia.org/wiki/Greenfield_project)
Браунфилд
Разработка Brownfield - это термин, обычно используемый в ИТ-индустрии для описания проблемных пространств, требующих разработки и развертывания новых программных систем в непосредственном присутствии существующих (устаревших) программных приложений/систем. Это означает, что любая новая архитектура программного обеспечения должна учитывать и сосуществовать с программным обеспечением реального времени уже на месте.
(из http://en.wikipedia.org/wiki/Brownfield_(software_development))
Ответ 2
Я думаю, что это может быть связано с условиями городского планирования greenfield land и " земля коричневого поля ". Земельная земля - это неразвитая земля - сельскохозяйственная, озелененная или естественная. Земля Браунфилда - это развитая земля.
Приложение с коричневым полем - это существующее приложение, в то время как новое приложение - это приложение, которое еще не создано или находится на очень ранней стадии разработки.
Ответ 3
Приложения Greenfield: новая разработка, без предварительной работы, которая создает ограничения на ваше решение. Я думаю, что термин происходит от un "unplowed, green" field.
Браунфилд: существующее приложение, много существующих вещей для рассмотрения и т.д.
См. этот пост.
Ответ 4
Я бы предположил, что это аналогия построения
- a greenfield сайт целиком - т.е. новый проект, начиная с нового программного проекта с нуля
- a brownfield сайт - это тот, где существующие структуры необходимо сначала демонтировать, т.е. строить в рамках существующего программного проекта
Ответ 5
Основываясь на том, что я знаю о Джеймсе Грегори (парнем за Fluent NHibernate), я думаю, что запись в Википедии для коричневого поля немного на теоретической стороне. В Разработка приложений Brownfield, мы определяем его как:
проект или кодовая база, которая была ранее созданных и может быть загрязненных плохой практикой, структуры и дизайна, но имеет потенциал для возрождения комплексный и направленный рефакторинг
Краткая версия: существующий проект, который нуждается в работе, но все еще активно развивается (в отличие от большинства устаревших систем).
Ответ 6
Существует много споров, связанных с решением компании с кодом "greenfield" или "brownfield" или устаревшим кодом рефакторинга.
Решение должно быть принято с учетом многих факторов - не в последнюю очередь из имеющихся средств для разработки нового приложения. Во многих случаях устаревшее приложение представляет собой текущую кэш-корову компании, и любая замена нового кода на прежнем уровне не приведет к одному красному доллару до тех пор, пока он не будет полностью разработан и не будет в руках первого платежного клиента.
В то время как большинство разработчиков программного обеспечения предпочитают START NEW GREENFIELD PROJECT, потому что они обычно ненавидят OPC (Other People Code), это может быть не всегда в долгосрочной финансовой форме компании.
Я написал статью, в которой анализируются риски, связанные с новыми проектами, основанные на очень реальном опыте в компании, над которой я работал более 20 лет назад (показывая мой возраст сейчас;). Вы можете прочитать его здесь:
http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html