Update 2024-12-10
จาก Code เล็กๆ เมื่อวันเวลาผ่านไป มันก็เติบโตขึ้น ผ่านการตัดต่อพันธุกรรมมาอย่างโชกโชน พร้อมกับภาระหน้าที่อันยิ่งใหญ่ แต่บาง Class บาง Method มันไม่ตอบโจทย์ทางธุรกิจแล้ว มันควรจะถูกกำจัดไปซะ แต่ Code มันบางส่วนมันใช้อยู่
เราจะทำอย่างไร เพื่อให้ทีม Develop ที่พัฒนาด้วยกัน เปลี่ยนไปเรียกใช้ Class หรือ Method ใหม่แทน !!!
ทางแรก เราอาจจะประกาศแจ้งให้ในทีมทราบ แต่บางครั้งอาจจะมีหลงลืมบ้าง เพื่อป้องกันปัญหาระยะยาวทำแบบ Java ดีกว่า ตัว Java มันมีบอกว่า Code ส่วนไหนที่เลิกใช้ (deprecated) ไปแล้วครับ โดยในตัว .Net Framework / .NET Core / .NET 6++ มี Attribute ให้เรียกใช้ครับ คือ ตัว Obsolete ครับ สำหรับตัวอย่างมาลองดูจาก Scenario ดังนี้ครับ
ขั้นแรก - เจรจาก่อน
การใส่ Attribute Obsolete ไว้บน Method ที่เราต้องการ ในที่นี้ คือ ShiftWorkingDate
- หา Method ที่ต้องการประกาศให้มันเป็น Obsolete หรือ Deprecated
- เติม Attribute Obsolete ไว้บน Method ที่ต้องการ
ขั้นสอง - กระชับพื้นที่
เพิ่ม Message แจ้งเตือน
- ลองมาเพิ่ม Message แจ้งเตือนครับ
ขั้นสาม - ขอคืนพื้นที่
หมดเวลาแล้ว กำหนด Flag เป็น true ครับ ถ้า Developer คนไหนยังไม่แก้ แก้เวลา Compile มัน Error ครับ
- ได้เวลาของคืนพื้นที่แล้วครับ เพิ่ม Flag true ต่อท้ายไปครับ
/// <summary> /// ใช้ในการเลื่อนไปตามเงื่อนไขให้ตกวันทำงาน ตัวอย่างการใช้งานในการ Generate Cashflow ของ FixedIncome เลื่อนไปแค่วันเดียว /// </summary> /// <param name="pScheduleDate">วันที่ต้องการเลื่อน</param> /// <param name="pStringFixedType">ลักษณะการเลื่อน "+" เลื่อนไปวันถัดไป "-" เลื่อนไปวันก่อนหน้า "Y" ตกวันไหนใช้วันนั้น</param> /// <param name="pIsModifiedBusinessDay">ในกรณีที่เลื่อนแล้วตกไปเดือนอื่นให้เลื่อนกลับ</param> /// <param name="pHolidayList">List ของวันหยุดที่จะใช้เลื่อน</param> /// <returns></returns> [Obsolete("เปลี่ยนไปใช้ Method ShiftworkingDay แทนภายในวันที่ 31-SEP-2016 เดวจะยุบทิ้งแล้ว",true)] public static DateTime ShiftWorkingDate(this DateTime pScheduleDate, string pStringFixedType, bool pIsModifiedBusinessDay, IList<DateTime> pHolidayList) { DateTime shiftDate = pScheduleDate; ; ... YOU LOGIC }
สุดท้ายและ ทำไมถึงต้องมาเขียน เพราะ จาก Code เก่าที่ Migrate มา Method ShiftWorkingDay ที่ทำหน้าที่เลื่อนวันไปในกรณีที่เป็นวันหยุด มันมีถึง 6 Edition ใครอ้างผิด ก็ซวยไปครับ กว่าจะตามมาแก้ได้ใช้เวลาพอสมควรเลย
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.