ฉันอ่านประโยคต่อไปนี้ในFluent NHibernate wiki :
... ; อย่างไรก็ตามสำหรับแอปพลิเคชันกรีนฟิลด์ส่วนใหญ่(และมีบราวน์ฟิลด์ไม่กี่ตัวด้วย) การทำแผนที่อัตโนมัติจะมีมากกว่าความสามารถ
แอปพลิเคชั่น Greenfield และ Brownfield คืออะไร?
ฉันอ่านประโยคต่อไปนี้ในFluent NHibernate wiki :
... ; อย่างไรก็ตามสำหรับแอปพลิเคชันกรีนฟิลด์ส่วนใหญ่(และมีบราวน์ฟิลด์ไม่กี่ตัวด้วย) การทำแผนที่อัตโนมัติจะมีมากกว่าความสามารถ
แอปพลิเคชั่น Greenfield และ Brownfield คืออะไร?
คำตอบ:
ในสาขาวิชาอื่น ๆ เช่นวิศวกรรมซอฟต์แวร์กรีนฟิลด์ยังเป็นโครงการที่ไม่มีข้อ จำกัด ใด ๆ ที่กำหนดโดยงานก่อนหน้านี้ การเปรียบเทียบคือการก่อสร้างบนที่ดินกรีนฟิลด์ซึ่งไม่จำเป็นต้องสร้างใหม่หรือรื้อถอนโครงสร้างที่มีอยู่
(จากhttp://en.wikipedia.org/wiki/Greenfield_project )
การพัฒนา Brownfield เป็นคำที่ใช้กันทั่วไปในอุตสาหกรรมไอทีเพื่ออธิบายช่องว่างของปัญหาที่จำเป็นต้องมีการพัฒนาและปรับใช้ระบบซอฟต์แวร์ใหม่ในทันทีที่มีแอพพลิเคชั่น / ระบบซอฟต์แวร์ (เดิม) ที่มีอยู่ นี่หมายความว่าสถาปัตยกรรมซอฟต์แวร์ใหม่ใด ๆ จะต้องคำนึงถึงและอยู่ร่วมกับซอฟต์แวร์ที่ใช้งานจริงอยู่แล้วในแหล่งกำเนิด
(จากhttp://en.wikipedia.org/wiki/Brownfield_(software_development) )
ฉันคิดว่ามันอาจจะเกี่ยวข้องกับข้อตกลงการวางผังเมือง"กรีนฟิลด์ที่ดิน"และ"ดินแดนที่ดิน" ที่ดินกรีนฟิลด์เป็นที่ดินที่ยังไม่ได้รับการพัฒนาไม่ว่าจะเป็นเกษตรกรรมภูมิทัศน์หรือธรรมชาติ ที่ดินบราวน์ฟิลด์เป็นที่ดินที่พัฒนาแล้ว
แอปพลิเคชันบราวน์ฟิลด์เป็นแอปพลิเคชันที่มีอยู่ในขณะที่แอปพลิเคชันกรีนฟิลด์เป็นแอปพลิเคชันที่ยังไม่ได้สร้างหรืออยู่ในช่วงเริ่มต้นของการพัฒนา
แอป Greenfield: การพัฒนาใหม่ไม่มีงานก่อนหน้านี้ที่ทำให้เกิดข้อ จำกัด ในการแก้ปัญหาของคุณ ฉันคิดว่าคำนี้มาจากช่อง "สีเขียวที่ไม่ได้รับการไหล"
Brownfield: แอปพลิเคชันที่มีอยู่สิ่งที่มีอยู่มากมายที่ต้องพิจารณา ฯลฯ
ดูโพสต์นี้
จากสิ่งที่ฉันรู้เกี่ยวกับ James Gregory (คนที่อยู่เบื้องหลัง Fluent NHibernate) ฉันคิดว่ารายการ Wikipedia สำหรับบราวน์ฟิลด์เป็นเพียงเล็กน้อยในด้านทฤษฎี ในBrownfield Application Developmentเรากำหนดเป็น:
โครงการหรือโค้ดเบสที่สร้างขึ้นก่อนหน้านี้และอาจถูกปนเปื้อนจากการปฏิบัติโครงสร้างและการออกแบบที่ไม่ดี แต่มีศักยภาพที่จะได้รับการฟื้นฟูผ่านการปรับโครงสร้างที่ครอบคลุมและตรงไปตรงมา
เวอร์ชันสั้น: โครงการที่มีอยู่ซึ่งต้องการการทำงาน แต่ยังคงได้รับการพัฒนาอย่างต่อเนื่อง (ซึ่งแตกต่างจากระบบเดิมส่วนใหญ่)
มีการถกเถียงกันมากมายเกี่ยวกับการตัดสินใจของ บริษัท ที่จะ 'greenfield' หรือ 'brownfield' หรือ refactor รหัสเดิม
การตัดสินใจต้องพิจารณาจากปัจจัยหลายประการ - ไม่ใช่อย่างน้อยที่สุดคือเงินที่มีอยู่ในการพัฒนาแอปพลิเคชันกรีนฟิลด์ ในหลาย ๆ กรณีแอปเดิมเป็นวัวเงินสดของ บริษัท ในปัจจุบันและการเปลี่ยนกรีนฟิลด์ใด ๆ ของรหัสเดิมนั้นจะไม่ทำเงินสักบาทเดียวจนกว่าจะได้รับการพัฒนาอย่างสมบูรณ์และอยู่ในมือของลูกค้าที่ชำระเงินรายแรก
ในขณะที่ความพึงพอใจสำหรับวิศวกรซอฟต์แวร์ส่วนใหญ่คือการเริ่มโครงการ GREENFIELD ใหม่เพราะโดยปกติพวกเขาเกลียด OPC (รหัสบุคคลอื่น) แต่อาจไม่ได้อยู่ในการเงินระยะยาวของ บริษัท เสมอไป
ฉันเขียนบทความที่วิเคราะห์ความเสี่ยงที่เกี่ยวข้องกับโครงการกรีนฟิลด์โดยอาศัยประสบการณ์จริงใน บริษัท ที่ฉันทำงานเมื่อ 20+ ปีก่อน (แสดงอายุของฉันตอนนี้;) คุณสามารถอ่านได้ที่นี่:
http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html