ทำไมมันมีตั้งแต่แรก?
คุณตรวจสอบรหัสที่ไม่เสถียรในการฉีดหรือไม่ ทำไม?
ไม่ควรตรวจสอบรหัสที่ไม่เสถียรใน trunk / main / master หรือชื่อ trunk หลัก สิ่งนี้ถือว่าเป็นการพัฒนาที่มีความเสี่ยงสูงและควรถูกแยกออกจากสาขาของตัวเองที่คุณทำงานมากกว่าที่จะเช็คอินหลัก
ฉันจะขอแนะนำให้ท่าน (และนำทีมงานของคุณ) เพื่ออ่านกลยุทธ์ขั้นสูง SCM กิ่ง โดยเฉพาะอย่างยิ่งให้ความสนใจกับบทบาทการพัฒนาและสิ่งที่กล่าวเกี่ยวกับสิ่งที่ถือว่าเป็นการพัฒนาที่มีความเสี่ยงสูง:
โดยทั่วไปให้พิจารณาใช้สาขาแยกสำหรับแต่ละโครงการที่มีความเสี่ยงสูง โครงการที่มีความเสี่ยงสูงนั้นมีขนาดใหญ่จำนวนคนจำนวนมากหัวเรื่องที่ไม่คุ้นเคยหัวข้อทางเทคนิคที่สูงเส้นเวลาที่แน่นมากวันส่งมอบที่ไม่แน่นอนข้อกำหนดที่ไม่สมบูรณ์หรือระเหยและทีมงานกระจายโครงการ ในทำนองเดียวกันพิจารณากำหนดสาขาเดียวสำหรับการพัฒนาความเสี่ยงต่ำในแต่ละรุ่น มีหลายแหล่งรวมทั้ง [WING98] แนะนำให้ใช้การฉีดเพื่อจุดประสงค์นี้ พิจารณาปัจจัยที่กล่าวถึงข้างต้นสำหรับการฉีดก่อนที่จะกระทำการนี้ การพัฒนาความเสี่ยงต่ำอาจมีนโยบายที่แตกต่างจากการฉีดแม้ว่าคุณจะมีสมาชิกหลายคนในตระกูลผลิตภัณฑ์ประสานงานผ่านการฉีด
การให้ผู้คนตรวจสอบรหัสที่ไม่เสถียร (หรือไม่ได้ใช้) ลงในการฉีดหมายความว่าคุณจะสับสนระหว่างการพัฒนาในอนาคตเกี่ยวกับการพยายามรักษารหัสนี้ ทุกสาขาและโคลนของตัวแทนจากนี้ไปจนถึงวันสุดท้ายจะมีสิ่งนี้จนกว่าจะมีคนบอกว่า "codE ที่ตายแล้ว" และลบมัน
มีบางอย่างที่พูดว่า "ดีถ้ามันอยู่ในสาขามันจะถูกลืม" และในขณะที่มันอาจจะเป็นจริงการลืมรหัส (และไม่แน่นอน) ในการฉีดตายนั้นแย่กว่าหลายครั้งเพราะมันสับสนการพัฒนาในอนาคตทั้งหมดจนกว่ามันจะถูกลบออก - และ แล้วมันก็ยิ่งมากขึ้นลืม สาขาที่มีชื่ออย่างดีของ "/ fooProject / branches / WeisBigIdea" (หรือเทียบเท่า) สามารถมองเห็นได้และใช้งานได้ง่ายขึ้นในอนาคต - โดยเฉพาะอย่างยิ่งถ้าเป็นงาน
@Deprecated
สิ่งแรกคือ@Deprecatedหมายเหตุประกอบ สิ่งนี้นอกเหนือจาก javadoc และคายคำเตือนคอมไพเลอร์ javacจัดเตรียม-deprecationแฟล็กที่อธิบายดังนี้:
แสดงคำอธิบายของการใช้งานหรือการแทนที่ของสมาชิกหรือคลาสที่คัดค้าน โดยไม่ต้อง-deprecation, javacการแสดงบทสรุปของไฟล์ที่มาว่าการใช้งานหรือเลิกใช้แทนที่สมาชิกหรือเรียน -deprecation -Xlint:deprecationคือชวเลข
ดังที่กล่าวไว้ข้างต้นและเหนือกว่าคำเตือนของคอมไพเลอร์มาตรฐาน
ใน IDEs จำนวนมากวิธีการและค่าที่เลิกใช้จะแสดงด้วย strikethrough:
foo.bar();
และจะให้ผลผลิตเช่น:
$ javac -Xlint:all Foo.java Bar.java
Bar.java:2: warning: [deprecation] Foo in unnamed package has been deprecated
interface Bar extends Foo { }
^
ขึ้นอยู่กับโครงสร้างการสร้างของคุณคุณอาจมีคำเตือนทำลายการสร้าง นี้จะเพียงทำลายการสร้างถ้าหนึ่งในชั้นเรียนของคุณถูกใช้ (ไม่ได้ถ้ามันเป็นเพียงแค่รวบรวมใน)
@CustomAnnotation
มีหลายวิธีในการนี้ ตัวอย่างเช่นการทำหมายเหตุประกอบแบบเบา javac @Warningซึ่งจัดเตรียมตัวประมวลผลคำอธิบายประกอบที่จะปิดการเตือนในเวลาคอมไพล์เมื่อมีการใช้คำอธิบายประกอบนั้น ( การสอน Netbeans บนตัวประมวลผลคำอธิบายประกอบแบบกำหนดเองเพื่อให้คุณทราบถึงสิ่งที่เกิดขึ้น ฉาก)
ออราเคิลแม้อธิบายตัวอย่างการใช้คำอธิบายประกอบที่กำหนดเองสำหรับนักการ@Unfinishedอธิบายประกอบในการทำมากที่สุดของของ Java Metadata, ส่วนที่ 2: คำอธิบายประกอบที่กำหนดเอง
ด้วยAnnotationProcessorคุณสามารถเรียกใช้รหัสโดยพลการในเวลารวบรวม มันขึ้นอยู่กับคุณจริงๆที่จะตัดสินใจว่าคุณต้องการให้มันทำอะไร เตือนทำลายการสร้างเมื่อมีบางสิ่งใช้ มีบทเรียนมากมายบนเว็บสำหรับวิธีการเขียนโค้ดประเภทนี้ ไม่ว่าคุณต้องการที่จะสร้างข้อผิดพลาดเมื่อรวบรวม (มันจะน่ารำคาญและนำไปสู่การลบ) หรือถ้ามันใช้ (ค่อนข้างซับซ้อนมากขึ้นเล็กน้อยในการเขียน)
โปรดทราบว่าทั้งหมดนี้แสดงถึงการเปลี่ยนการสร้างเพื่อใช้ตัวประมวลผลคำอธิบายประกอบ