วิศวกรรมเคมี & amp;
แยกตัวประกอบ vs เขียนใหม่: การ เลือก ระบบ วิศวกรรม อย่าง ถูก ต้อง
Table of Contents
เมื่อ เรา พยายาม ปรับ ปรุง ระบบ วิศวกรรม องค์กร มัก จะ ต้อง ตัดสิน ใจ ว่า จะ จัด การ กับ ส่วน ประกอบ ที่ มี อยู่ หรือ แก้ไข ใหม่ ทั้ง หมด ไหม?
การ สร้าง ความ เข้าใจ
การหาวนั้นเกี่ยวข้องกับการปรับปรุงระบบที่มีอยู่ให้เพิ่มขึ้นโดยไม่เปลี่ยนคุณสมบัติหลักของมัน มันมุ่งเน้นที่จะเพิ่มคุณภาพ การอ่าน และการรักษาความง่ายในการรักษาพฤติกรรมของระบบไว้ วิธีนี้มักใช้เพื่อลดหนี้ทางเทคนิค และเตรียมระบบเพื่อการพัฒนาในอนาคต การสร้างระบบเพื่อปรับปรุงระบบไม่ได้เกี่ยวกับการพัฒนาคุณสมบัติของมัน แต่เป็นการปรับปรุงโครงสร้างภายในของรหัสเพื่อให้การเปลี่ยนแปลงในอนาคตนั้นง่ายขึ้น ปลอดภัยกว่า และเร็วขึ้น
การ ปรับ ปรุง และ การ ดม กลิ่น รหัส
การหาพิกัด "กลิ่นรหัส" โดยปกติจะเป็น "กลิ่น" -- ตัวบ่งชี้พื้นผิวที่มักตรงกับปัญหาที่ลึกลงไปในระบบ ตัวอย่างคือ รหัสที่ซ้ํากัน วิธีการเรียนแบบยาว คลาสขนาดใหญ่ และคู่ที่มากเกินไป โดยระบบกําจัดกลิ่นเหล่านี้ได้ ทีมสามารถทําให้โค้ดย่อยย่อยย่อยของตัวแบ่งตัวและทดสอบได้มากขึ้น เครื่องแบบตัววิเคราะห์แบบคงที่และ IDE มีคุณสมบัติต่าง ๆ (เช่น การเปลี่ยนชื่อ, วิธีการแยกส่วน, การดึงตัวช่วยลดจุด, การลดจุด, การลดจุด, การลดจุด
เมื่อ ต้อง ให้ การ
การหาทุนนั้นมีประสิทธิภาพมากที่สุด เมื่อระบบที่มีอยู่ยังมีประสิทธิภาพในโครงสร้าง แต่มีการสะสมหนี้ทางเทคนิคปานกลาง นอกจากนี้ยังเหมาะสมเมื่อตรรกะทางธุรกิจมีความซับซ้อนและมีความซับซ้อน
การแก้ไขใหม่
การ เขียน ใหม่ เกี่ยว ข้อง กับ การ พัฒนา ระบบ ใหม่ ตั้ง แต่ การ ขูด หรือ ใช้ เทคโนโลยี สมัย ใหม่ มาก เกิน ไป จน เกิน ไป แต่ วิธี นี้ ก็ มัก จะ ใช้ กัน ใน ช่วง ที่ ระบบ ปัจจุบัน ล้า สมัย, ซับ ซ้อน เกิน ไป, หรือ ไม่ มี ความ ต้องการ ทาง ธุรกิจ อีก ต่อ ไป การ เขียน ใหม่ อาจ ทํา ให้ มี การ เริ่ม ต้น ใหม่ ได้ โดย เปิด โอกาส ให้ มี การ ใช้ สถาปัตยกรรม และ เทคโนโลยี สมัย ใหม่ ๆ แต่ ก็ หมาย ถึง การ ทิ้ง ความ สามารถ ใน การ แก้ ปัญหา, การ ปรับ ปรุง แก้ไข, และ การ รู้ จัก บังคับ ใช้ รหัส เก่า ๆ ใน สถาบัน.
โปรแกรมเขียนซ้ําของ Greenfield vs. Brownfield
สีเขียวที่เริ่มการทํางานใหม่ โดยสร้างระบบใหม่ในสภาพแวดล้อมใหม่ ซึ่งมักเกิดขึ้นเมื่อแพลตฟอร์มเดิมหมดอายุ (เช่น ย้ายจากโคโบลไปยังจาวา) หรือเมื่อระบบต้องถูกปรับให้กลับไปใช้ลําดับความน่าอยู่ได้อีกครั้ง ทุ่งหญ้าที่สร้างขึ้นใหม่ทีละน้อย ในขณะที่คนอื่นยังทํางานอยู่ -- ชั่วคราวเรียกว่า "รูปแบบการย้ายของกุ้ง" การย้ายถิ่นถิ่นนี้ลดความเสี่ยงจากการย้ายระยะการย้ายถิ่นฐานของกลุ่มอื่น ๆ
เมื่อจะเขียนใหม่
การเขียนใหม่นั้น ชอบเมื่อระบบปัจจุบันมาถึงจุดที่การหาตัวประกอบจะต้องมีค่ามากกว่าการสร้างใหม่ ตัวระบุรวม: โค้ดฐานไม่ได้การตรวจสอบ สถาปัตยกรรมป้องกันการเปลี่ยนแปลงที่จําเป็น (เช่น ไม่สามารถปรับขนาดแบบทางแนวนอน) หรือชั้นวางเทคโนโลยีนี้ไม่สามารถรองรับได้ เหตุการณ์ที่มีการเปลี่ยนแปลงอย่างมาก ทําให้ระบบธุรกิจไม่สามารถปรับตัวได้โดยไม่มีการซ่อมแซมอย่างสมบูรณ์ การเขียนใหม่นี้ยังเป็นกลยุทธ์ที่ใช้ในการป้องกันการแข่งขันกันของโครงสร้างใหม่ เช่น ระบบย่อยหรือระบบที่ขาดพลังงาน
การ เปรียบ เทียบ ความ เสี่ยง และ ค่า ใช้ จ่าย
การ เข้าใจ สิ่ง เหล่า นี้ ช่วย ให้ ทีม งาน เลือก แนว ทาง ที่ จะ ยอม รับ ความ เสี่ยง ของ องค์การ และ วัฏจักร ของ งบ ประมาณ.
ปัจจัย เสี่ยง
[FLT: 0] ความเสี่ยงที่เพิ่มขึ้น : ความเสี่ยงที่ยิ่งใหญ่ที่สุดคือ การสร้างใหม่ไม่เคยสําเร็จ -- มันกลายเป็นวงจรที่ไม่มีที่สิ้นสุดของการปรับปรุงขณะที่ปัญหาเบื้องหลังของระบบยังคงดําเนินต่อไป ความเสี่ยงอื่นคือ "การลดความเหนื่อยล้า" ที่ทีมสูญเสียแรงจูงใจ เนื่องจากความก้าวหน้าเป็นความช้าและมองไม่เห็นในการถือหุ้น อย่างไรก็ตาม การชดเชยที่มักจะลดความเสี่ยงต่อการเปลี่ยนแปลงลง เพราะการปรับเปลี่ยนแต่ละอย่างนั้นเล็กน้อยและสามารถแก้ไขได้
[FLT: 0] เขียนความเสี่ยง: คําเตือนที่มีชื่อเสียงมากที่สุดมาจากบทความของ Joelo Spoplasky "THS You ควรจะไม่ไ trans, part I"[FT:3]" ซึ่งเขาโต้แย้งว่าการเขียนซ้ํานําการจัดส่งสินค้าบ่อย ๆ ระยะเวลาที่ต่ํากว่ากําหนดเวลาที่ผ่านไปหลายปี การปรับปรุงตารางความเสี่ยง (ระบบใหม่อาจจะใช้เวลานานกว่าที่คาดหวัง), ความรู้ที่มีความเสี่ยง (การรวมข้อมูล) และความเสี่ยงในการปรับเปลี่ยนระบบ (การย้ายถิ่นฐานและระบบอื่น).
วิเคราะห์ค่าใช้จ่าย
การหาวที่จําหน่ายได้เป็นเวลานาน งานวิจัยจากสถาบันวิศวกรรมซอฟต์แวร์พบว่า การแก้ไขข้อบกพร่องหลังปล่อยต้นทุน 10-1100x มากกว่าการแก้ไขในการออกแบบ แต่การปรับเปลี่ยนความบกพร่องหลายประการในระยะยาวได้โดยการปรับปรุงโค้ดความชัดเจน การเขียนซ้ําต้องใช้การลงทุนแบบหน้า: คุณต้องสร้างโครงสร้างใหม่ ออกแบบใหม่ และตรวจใหม่ทุกอย่างใหม่ ค่าใช้จ่ายทั้งหมดสําหรับการสร้างการเป็นเจ้าของ (TCO) มักจะมากกว่าการบูรณะ 3.5 ปี นอกจากว่าระบบนั้นจะยังสมบูรณ์ขึ้น แต่จะลดต้นทุนการทํางาน (gnown) ได้
กรอบ สําหรับ ผู้ นํา ทาง วิศวกรรม
การ เลือก ระหว่าง การ หา น้ํา และ การ เขียน ใหม่ ขึ้น ใหม่ ขึ้น มา ขึ้น อยู่ กับ ปัจจัย หลาย อย่าง เช่น ความ ซับ ซ้อน ของ ระบบ, ความ สําคัญ ของ ธุรกิจ, ทรัพยากร ที่ มี อยู่, และ เป้า หมาย ระยะ ยาว.
การ สนับสนุน สุขภาพ ของ ระบบ
ทําการวิเคราะห์โค๊ดเบสอย่างเป็นระบบ โดยใช้ migritics เช่น ความซับซ้อนของไวยากรณ์, การอ้างอิงรหัส, การแยกส่วน, และความหนาแน่นของข้อบกพร่อง เครื่องมือเช่น Sonarquecame หรือ CodeClimay สามารถให้ข้อมูลที่วัตถุประสงค์ได้ ถ้าระบบมีคุณภาพต่ําในการรักษาความเสถียร แต่ตรรกะทางธุรกิจนั้นเสถียร ควรจะใช้ได้เพียงพอ ถ้าสถาปัตยกรรมมีข้อบกพร่องพื้นฐาน (เช่น capities แบบ Passic ที่ไม่สามารถแก้ไขได้) อาจจําเป็นในการเขียนใหม่
เป้า หมาย ใน การ ธุรกิจ
ทําแผนที่การตัดสินใจทางเทคนิคไปยังผลลัพธ์ของธุรกิจ หากเป้าหมายคือเร่งการทํางานภายในไตรมาสถัดไป การสร้างเว็บไซต์ใหม่มักจะปลอดภัยกว่า หากเป้าหมายคือ การเข้าสู่ตลาดใหม่ที่ต้องการประสิทธิภาพหรือการปรับขนาดอย่างแตกต่างอย่างสุดขีด ก็สามารถทําให้สามารถแก้ไขได้ เชิญชวนเจ้าของผลิตภัณฑ์และผู้ถือหุ้นให้ทําความเข้าใจ "ทําไม" ตัวอย่างเช่น การเริ่มต้นใหม่อาจเขียนใหม่เพื่อหมุนอย่างรวดเร็ว ในขณะที่องค์กรที่มีระบบมรดกที่สําคัญ อาจชอบเพิ่มความเหมาะสมในการหลีกเลี่ยงการลดเวลาลง
ความ สามารถ ใน การ ทํา งาน และ ความ รู้ ด้าน การ ศึกษา ของ ทีม
การหาพิกัดการเข้าใจระบบที่มีอยู่อย่างลึกซึ้ง หากผู้เขียนดั้งเดิมยังอยู่บนทีมนั้น การหาพิกัดจะมีประสิทธิภาพมากขึ้น หากโค้ดเบสเป็นกล่องสีดําที่มีเอกสารเล็กๆ สีแดงอาจดูน่าดึงดูด -- แต่อาจเกิดความเสี่ยงในการทําซ้ําของความผิดพลาดในอดีตได้
ตัวอย่างโลกจริง
การ ตรวจ สอบ วิธี ที่ องค์การ อื่น ๆ ได้ นํา ทาง การ เลือก นี้ สามารถ ให้ ความ หยั่ง เห็น เข้าใจ ที่ ใช้ ได้ จริง.
ตัวอย่าง: การจําลองการกลับมาของค่ายเบสแคมป์ของเฮ
เมื่อมีการพัฒนาบริการอีเมล ทีมของเบสแคมพ์เลือกใช้โค้ดเบสที่มีอยู่ใหม่ แทนการเขียนโค้ดโค้ดใหม่จากรอยขีดข่วน
ตัวอย่าง: redbooks's retribution
Freplebooks, บริษัทซอฟต์แวร์บัญชี, ก่อสร้างใหม่ที่มีชื่อเสียงขึ้นทั้งหมดจากโปรแกรม Protolic PHP เข้าสู่ระบบที่ทันสมัยและสามารถจัดการได้ การตัดสินใจมาเป็นเวลาหลายปีจากการต่อสู้กับประสิทธิภาพและข้อจํากัดทางสถาปัตยกรรมที่ไม่สามารถแก้ไขได้ การเขียนใหม่ใช้เวลากว่า 2 ปีและค่าใช้จ่ายกว่า 10 ล้านบาท แต่ทําให้สามารถให้บริการลูกค้าขนาดใหญ่และลดค่าใช้จ่าย ซีอีโอสังเกตเห็นว่า "สิ่งที่เขียนใหม่ที่สุดที่เราเคยทํา" แต่จําเป็นสําหรับการอยู่รอดของธุรกิจ [F] โพสต์ [FLF] โพสต์ [FT]: [FT] โพสต์-FT1] ความสําคัญระหว่างการดําเนินงานและเทคนิค
ตัวอย่าง: มาร์ติน ฟาวเลอร์ กลุ่มผู้สนับสนุนชุมชน
Martin Fowler, ผู้เขียนหนังสือหลัก[FLT: 0] อนุมัติ: การชดเชยรหัสการดํารงอยู่ [FLT: 1) ได้สนับสนุนมานานสําหรับการเขียนซ้ํา เขาโต้แย้งว่าระบบส่วนใหญ่สามารถปรับปรุงได้ดีขึ้น หากทีมลงทุนในการทดสอบอัตโนมัติและการรวมเข้าด้วยกันอย่างสม่ําเสมอ [FT2] แคตตาล็อก [FLT: 3] ของเขา พิสูจน์ว่าทีมสามารถปรับใช้มุมมองใดๆ ของฟาวเลอร์ได้
สรุป: การ เลือก อย่าง ถูก ต้อง
การ ประเมิน ดู สถานการณ์ ที่ มี ประสิทธิภาพ มาก ที่ สุด คือ การ จัด การ เรื่อง ความ เสี่ยง และ ความ พร้อม ใน การ สร้าง ความ สมดุล ใน อนาคต เส้น ทาง ที่ ถูก ต้อง มัก เกี่ยว ข้อง กับ การ ปรับ ปรุง ตัว อย่าง เช่น การ ปรับ ปรุง ส่วน ประกอบ ที่ เหลือ ให้ สมบูรณ์ แบบ และ ทํา ให้ มี การ ซ่อมแซม ได้ ง่าย ขึ้น ใช้ โครง สร้าง นี้ เพื่อ ประเมิน สุขภาพ ของ คุณ โดย อาศัย เป้า หมาย ทาง ธุรกิจ และ การ จัด ระเบียบ การ ตัดสิน ใจ ที่ ดี ขึ้น คุณ สามารถ นํา องค์การ ของ คุณ ไป สู่ ระบบ ที่ มี ประสิทธิภาพ มาก ขึ้น และ สามารถ ปรับ ปรุง ให้ ดี ขึ้น ได้ โดย ไม่ ต้อง ชะงัก งัน หรือ ไม่ ต้อง ใช้ การ สร้าง ซ้ํา อีก