แอปพลิเคชั่น Greenfield และ Brownfield คืออะไร?


92

ฉันอ่านประโยคต่อไปนี้ในFluent NHibernate wiki :

... ; อย่างไรก็ตามสำหรับแอปพลิเคชันกรีนฟิลด์ส่วนใหญ่(และมีบราวน์ฟิลด์ไม่กี่ตัวด้วย) การทำแผนที่อัตโนมัติจะมีมากกว่าความสามารถ

แอปพลิเคชั่น Greenfield และ Brownfield คืออะไร?

คำตอบ:


136

กรีนฟิลด์

ในสาขาวิชาอื่น ๆ เช่นวิศวกรรมซอฟต์แวร์กรีนฟิลด์ยังเป็นโครงการที่ไม่มีข้อ จำกัด ใด ๆ ที่กำหนดโดยงานก่อนหน้านี้ การเปรียบเทียบคือการก่อสร้างบนที่ดินกรีนฟิลด์ซึ่งไม่จำเป็นต้องสร้างใหม่หรือรื้อถอนโครงสร้างที่มีอยู่

(จากhttp://en.wikipedia.org/wiki/Greenfield_project )

บราวน์ฟิลด์

การพัฒนา Brownfield เป็นคำที่ใช้กันทั่วไปในอุตสาหกรรมไอทีเพื่ออธิบายช่องว่างของปัญหาที่จำเป็นต้องมีการพัฒนาและปรับใช้ระบบซอฟต์แวร์ใหม่ในทันทีที่มีแอพพลิเคชั่น / ระบบซอฟต์แวร์ (เดิม) ที่มีอยู่ นี่หมายความว่าสถาปัตยกรรมซอฟต์แวร์ใหม่ใด ๆ จะต้องคำนึงถึงและอยู่ร่วมกับซอฟต์แวร์ที่ใช้งานจริงอยู่แล้วในแหล่งกำเนิด

(จากhttp://en.wikipedia.org/wiki/Brownfield_(software_development) )


30
"โชคดีที่ Google ไม่ผิดหวังสำหรับฉันดังนั้นฉันจึงสามารถค้นหาคำจำกัดความต่อไปนี้ได้ภายในเวลาไม่กี่วินาที" - เหตุใดจึงจำเป็นต้องมีคำสั่งนี้? ฉันเข้าใจได้ว่าคุณกำลังรำคาญด้วยคำถาม 'ธรรมดา' และเพิ่มสิ่งนี้ด้วยความไม่พอใจหรืออะไรบางอย่าง แต่ทำไมต้องเพิ่มคำสั่งกลับหลังจากที่มันถูกลบออกไปแล้ว?
AgentConundrum

8
ฉันเห็นด้วยกับ @AgentConundrum นี่เป็นผลลัพธ์ที่สองที่ Google ส่งกลับมา สูญเสียข้อสังเกต
Rob Bell

6
เป็นเพราะฉันยังคงมีความเห็นว่าผู้คนต้องเรียนรู้ที่จะใช้ Google ก่อนที่จะลองสิ่งอื่น ๆ คุณรู้ไหมการให้ปลากับผู้ชายกับการสอนผู้ชายให้ตกปลา
Bombe

17
@Bombe คุณไม่ทราบว่าเป็นเนื้อหาที่เติม Google หรือไม่? ดังนั้นคุณต้องการคำตอบที่ไหนสักแห่งเพื่อให้พบใน google ... คุณพบบทความ wiki ใน google แต่ถ้า google มีคำตอบแล้วทำไมบทความ wiki ถึงต้องเขียน?
Robin Day

32
สิ่งที่ตลกคือ ฉันพบสิ่งนี้แล้วผ่าน Google ลิงค์แรก. ;)
Ibsonic

14

ฉันคิดว่ามันอาจจะเกี่ยวข้องกับข้อตกลงการวางผังเมือง"กรีนฟิลด์ที่ดิน"และ"ดินแดนที่ดิน" ที่ดินกรีนฟิลด์เป็นที่ดินที่ยังไม่ได้รับการพัฒนาไม่ว่าจะเป็นเกษตรกรรมภูมิทัศน์หรือธรรมชาติ ที่ดินบราวน์ฟิลด์เป็นที่ดินที่พัฒนาแล้ว

แอปพลิเคชันบราวน์ฟิลด์เป็นแอปพลิเคชันที่มีอยู่ในขณะที่แอปพลิเคชันกรีนฟิลด์เป็นแอปพลิเคชันที่ยังไม่ได้สร้างหรืออยู่ในช่วงเริ่มต้นของการพัฒนา


ทำให้รู้สึกมากอย่างน้อย แต่คุณจะได้รับแอปพลิเคชันบราวน์ฟิลด์ได้อย่างไร? แอปพลิเคชันไม่ได้ถูกสร้างขึ้นตั้งแต่ต้นหรือ เมื่อไหร่ที่มันกลายเป็นสีน้ำตาล?
Svish

2
แอปพลิเคชัน brownfield มักหมายถึงการอัปเกรดครั้งใหญ่หรือการพัฒนาแอปพลิเคชันที่มีอยู่ใหม่ซึ่งมีปัญหาในการใช้งานร่วมกันได้กับรูปแบบไฟล์อินเทอร์เฟซโมดูลและอื่น ๆ ที่มีอยู่บางครั้งแอปพลิเคชัน brownfield จะถูกทำให้เป็นสีเขียวโดยตัดสินใจที่จะเพิกเฉยต่อการพิจารณาย้อนกลับทั้งหมด ความเข้ากันได้และเริ่มต้นใหม่
Jeremy Bourque

1
Brownfield จะเป็นการปรับปรุงที่สำคัญหรือน้อยกว่าการเขียนซ้ำทั้งหมดของแอปพลิเคชันสดที่มีอยู่ กล่าวอีกนัยหนึ่งคือรหัสเดิม
APC

5

แอป Greenfield: การพัฒนาใหม่ไม่มีงานก่อนหน้านี้ที่ทำให้เกิดข้อ จำกัด ในการแก้ปัญหาของคุณ ฉันคิดว่าคำนี้มาจากช่อง "สีเขียวที่ไม่ได้รับการไหล"

Brownfield: แอปพลิเคชันที่มีอยู่สิ่งที่มีอยู่มากมายที่ต้องพิจารณา ฯลฯ

ดูโพสต์นี้


2

ฉันเดาว่ามันคล้ายกับการสร้าง

  • เขียวสถานที่พื้นดินบริสุทธิ์ - คือโครงการใหม่เริ่มต้นโครงการซอฟต์แวร์ใหม่จากรอยขีดข่วน
  • ดินแดนเว็บไซต์ที่เป็นหนึ่งในโครงสร้างที่มีอยู่จะต้องรื้อถอนแรกคืออาคารภายในโครงการซอฟต์แวร์ที่มีอยู่

2

จากสิ่งที่ฉันรู้เกี่ยวกับ James Gregory (คนที่อยู่เบื้องหลัง Fluent NHibernate) ฉันคิดว่ารายการ Wikipedia สำหรับบราวน์ฟิลด์เป็นเพียงเล็กน้อยในด้านทฤษฎี ในBrownfield Application Developmentเรากำหนดเป็น:

โครงการหรือโค้ดเบสที่สร้างขึ้นก่อนหน้านี้และอาจถูกปนเปื้อนจากการปฏิบัติโครงสร้างและการออกแบบที่ไม่ดี แต่มีศักยภาพที่จะได้รับการฟื้นฟูผ่านการปรับโครงสร้างที่ครอบคลุมและตรงไปตรงมา

เวอร์ชันสั้น: โครงการที่มีอยู่ซึ่งต้องการการทำงาน แต่ยังคงได้รับการพัฒนาอย่างต่อเนื่อง (ซึ่งแตกต่างจากระบบเดิมส่วนใหญ่)


2

มีการถกเถียงกันมากมายเกี่ยวกับการตัดสินใจของ บริษัท ที่จะ 'greenfield' หรือ 'brownfield' หรือ refactor รหัสเดิม

การตัดสินใจต้องพิจารณาจากปัจจัยหลายประการ - ไม่ใช่อย่างน้อยที่สุดคือเงินที่มีอยู่ในการพัฒนาแอปพลิเคชันกรีนฟิลด์ ในหลาย ๆ กรณีแอปเดิมเป็นวัวเงินสดของ บริษัท ในปัจจุบันและการเปลี่ยนกรีนฟิลด์ใด ๆ ของรหัสเดิมนั้นจะไม่ทำเงินสักบาทเดียวจนกว่าจะได้รับการพัฒนาอย่างสมบูรณ์และอยู่ในมือของลูกค้าที่ชำระเงินรายแรก

ในขณะที่ความพึงพอใจสำหรับวิศวกรซอฟต์แวร์ส่วนใหญ่คือการเริ่มโครงการ GREENFIELD ใหม่เพราะโดยปกติพวกเขาเกลียด OPC (รหัสบุคคลอื่น) แต่อาจไม่ได้อยู่ในการเงินระยะยาวของ บริษัท เสมอไป

ฉันเขียนบทความที่วิเคราะห์ความเสี่ยงที่เกี่ยวข้องกับโครงการกรีนฟิลด์โดยอาศัยประสบการณ์จริงใน บริษัท ที่ฉันทำงานเมื่อ 20+ ปีก่อน (แสดงอายุของฉันตอนนี้;) คุณสามารถอ่านได้ที่นี่:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.