Greenfield ve brownfield uygulamaları nelerdir?


92

Fluent NHibernate wiki'de şu cümleyi okudum :

...; bununla birlikte, çoğu sıfırdan uygulama (ve oldukça az kahverengi alan ) için otomatik haritalama, yetenekli olandan daha fazla olacaktır.

Greenfield ve brownfield uygulamaları nelerdir?

Yanıtlar:


136

Greenfield

Yazılım mühendisliği gibi diğer disiplinlerde, yeşil alan aynı zamanda önceki çalışmanın getirdiği kısıtlamalardan yoksun bir projedir. Benzetme, mevcut bir yapıyı yeniden biçimlendirmeye veya yıkmaya gerek olmayan, sıfırdan yapılmış arazi üzerindeki inşaatla ilgilidir.

( http://en.wikipedia.org/wiki/Greenfield_project adresinden )

Kahverengi alan

Brownfield geliştirme, BT endüstrisinde mevcut (eski) yazılım uygulamalarının / sistemlerinin hemen varlığında yeni yazılım sistemlerinin geliştirilmesi ve konuşlandırılmasına ihtiyaç duyan sorunlu alanları tanımlamak için yaygın olarak kullanılan bir terimdir. Bu, herhangi bir yeni yazılım mimarisinin halihazırda yerinde olan canlı yazılımı hesaba katması ve bununla birlikte var olması gerektiği anlamına gelir.

( http://en.wikipedia.org/wiki/Brownfield_(software_development adresinden) )


30
"Neyse ki Google benim için uygun değildi, bu yüzden aşağıdaki tanımları birkaç saniye içinde bulabildim." - Bu ifadeye tam olarak neden ihtiyaç duyulmaktadır? 'Basit' bir sorudan rahatsız olmanızı ve bunu hayal kırıklığından falan eklemenizi anlayabiliyorum, ama neden kaldırıldıktan sonra ifadeyi tekrar ekleyesiniz?
AgentConundrum

8
@AgentConundrum'a katılıyorum. Bu, artık Google'ın döndürdüğü ikinci sonuç. Açıklamayı bırak.
Rob Bell

6
Çünkü hala insanların başka şeyler denemeden önce Google'ı kullanmayı öğrenmeleri gerektiğini düşünüyorum. Bilirsin, bir adama balık vermekle bir adama balık tutmayı öğretmek.
Bombe

17
@ Bombe, google'ı dolduran içerik olduğunun farkında değil misiniz? Bu nedenle cevapları google'da bulabilmeniz için bir yerde ihtiyacınız var ... Wiki makalesini google'da buldunuz, ama cevabı google'da varsa o zaman wiki makalesinin neden yazılması gerekiyor?
Robin Günü

32
Komik olan şey. Bunu şimdi Google aracılığıyla buldum. İlk bağlantı. ;)
Ibsonic

14

Kent planlama terimleri "yeşil alan" ve "kahverengi arazi" ile ilgili olabileceğini düşünüyorum . Yeşil alan, gelişmemiş arazidir - tarım, peyzaj veya doğal. Brownfield arazisi gelişmiş arazidir.

Bir yeşil alan başvurusu mevcut bir uygulama iken, yeşil alan başvurusu henüz yapılmamış veya geliştirmenin çok erken aşamalarında olan bir uygulamadır.


En azından çok mantıklı. Ama brownfield başvurusunu nasıl alırsın? Uygulamalar başlangıçta sıfırdan oluşturulmamış mı? Ne zaman brownfield olur?
Svish

2
Brownfield uygulaması genellikle büyük bir yükseltmeyi veya mevcut dosya formatları, arayüzleri, modülleri vb. İle geriye dönük uyumluluk sorunları olan mevcut bir uygulamanın yeniden geliştirilmesini ifade eder. Bazen geriye dönük tüm düşünceleri göz ardı etmeye karar vererek bir brownfield uygulaması sıfırdan yapılacaktır uyumluluk ve yeni başlayın.
Jeremy Bourque

1
Brownfield, mevcut bir canlı uygulamanın önemli bir geliştirme veya tamamen yeniden yazılması olabilir. Başka bir deyişle, eski kod.
APC

5

Yeşil alan uygulamaları: yeni geliştirme, çözümünüz üzerinde kısıtlamalar oluşturan daha önce hiçbir çalışma yapılmamış. Sanırım terim "işlenmemiş, yeşil" alandan geliyor.

Brownfield: mevcut uygulama, dikkate alınması gereken birçok mevcut şey vb.

Bu gönderiye bakın .


2

Sanırım inşa etmek için bir analoji

  • Bir yeşil alan sitesi bakire zemin olduğunu - yani sıfırdan yeni yazılım projesini başlayan yeni bir proje
  • Bir brownfield sitesi mevcut yapıların mevcut bir yazılım projesi içinde, ilk sökülmüş için yani bina ihtiyaç biridir

2

James Gregory (Fluent NHibernate'in arkasındaki adam) hakkında bildiklerime dayanarak, Brownfield için Wikipedia girişinin biraz teorik tarafta olduğunu düşünüyorum. In Brownfield Uygulama Geliştirme , onu olarak tanımlar:

Daha önce oluşturulmuş ve zayıf uygulamalar, yapı ve tasarımla kirlenmiş olabilecek ancak kapsamlı ve yönlendirilmiş yeniden düzenleme yoluyla yeniden canlandırma potansiyeline sahip bir proje veya kod tabanı

Kısa versiyon: Çalışılması gereken ancak hala aktif olarak geliştirilen mevcut bir proje (çoğu eski sistemin aksine).


2

Bir şirketin 'yeşil alan' veya 'kahverengi alan' veya eski kodu yeniden düzenleme kararını çevreleyen çok sayıda tartışma var.

Kararın birçok faktör dikkate alınarak verilmesi gerekiyor - en azından sıfırdan bir uygulama geliştirmek için mevcut fonlar değil. Çoğu durumda, eski uygulama şirketin şu anki nakit ineğidir ve bu eski kodun sıfırdan değiştirilmesi, tamamen geliştirilene ve ilk ödeme yapan müşterinin eline geçene kadar tek bir kırmızı dolar oluşturmayacaktır.

Çoğu yazılım mühendisinin tercihi YENİ GREENFIELD PROJESİNİ BAŞLAT iken, genellikle OPC'den (Diğer Kişilerin Kodu) nefret ettikleri için bu her zaman şirketin uzun vadeli finansmanı olmayabilir.

20+ yıl önce çalıştığım bir şirketteki çok gerçek bir deneyime dayandırarak yeşil alan projeleriyle ilgili riskleri analiz eden bir makale yazdım (şimdi yaşımı gösteriyor;). Buradan okuyabilirsiniz:

http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.