วิธีการจัดการกับฟังก์ชั่นที่ผิดในรหัสการผลิต?


28

ฉันเพิ่งเจอห้องสมุด Python ใน GitHub ไลบรารี่นั้นยอดเยี่ยม แต่มีการพิมพ์ผิดที่หนึ่งในชื่อฟังก์ชั่น ขอเรียกว่าในขณะที่มันควรจะเป็นdummy_fuction() dummy_function()ฟังก์ชั่นนี้ "แน่นอน" และมักใช้ในระบบฝังตัว

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

คำถามสามข้อ:

  1. แนวทางข้างต้นอาจมีผลที่ไม่ตั้งใจหรือไม่?
  2. มีวิธีการมาตรฐานในการแก้ไขปัญหานี้หรือไม่?
  3. ควรมีคำเตือนใด ๆ เกี่ยวกับการคัดค้านทิ้งไว้นานเท่าใด

1
นี่เป็นสถานการณ์ (แม้ว่าจะไม่ใช่ภาษาที่ใช้บ่อยมาก) ซึ่งภาษาแบบสแตติกมีความสมบูรณ์มากกว่าแบบไดนามิก: คอมไพเลอร์สามารถตรวจสอบว่าฟังก์ชันที่เปลี่ยนชื่อของคุณมีอยู่แล้วหรือไม่
Giorgio


2
ฉันจะชี้ให้เห็นmod_spelingของ Apache ด้วย แต่นั่นอาจเป็นการจงใจ
Reinstate Monica iamnotmaynard

1
@AakashM: ฉันชอบที่บทความ Wikipedia ใช้ทั้งการสะกดที่ไม่ถูกต้องและถูกต้องตลอดทั้งหน้า (แม้ว่าจะอ้างอิงถึงวัตถุไม่ใช่คำ) ด้วยเวอร์ชันที่สะกดผิดจะแพร่หลายมากขึ้น!
Martijn Pieters

อีกเล็กน้อยที่ดีเกี่ยวกับhttp_referer- "มันเหมือนเมื่อฉันทำเขตผู้อ้างอิงฉันไม่มีอะไรนอกจากความเศร้าใจสำหรับตัวเลือกการสะกดของฉันตอนนี้ฉันกำลังพยายามแก้ไขการสะกดคำใน OED เนื่องจากการสะกดของฉันใช้หลายพันล้านครั้งต่อนาที กว่าพวกเขา " - Phillip Hallam-Baker
Jamie Bull

คำตอบ:


29

ก่อนอื่นนโยบายจะขึ้นอยู่กับผู้ดูแล

ฉันคิดว่าคำถามของคุณน่าสนใจ แต่ส่วนใหญ่อิงจากความคิดเห็น

ในความเห็นส่วนตัวของฉันแนวทางของคุณคือเสียงเปลี่ยนชื่อฟังก์ชั่นและปล่อยเวอร์ชั่นที่สะกดผิดเป็นสิ่งประดิษฐ์ที่เลิกใช้แล้วเปลี่ยนเส้นทางไปยังสิ่งที่ถูกต้อง

แนวทางข้างต้นอาจมีผลที่ไม่ตั้งใจหรือไม่?

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

มีวิธีการมาตรฐานในการแก้ไขปัญหานี้หรือไม่?

อย่าสะกดผิดเมื่อเขียนห้องสมุด;)

ควรมีคำเตือนใด ๆ เกี่ยวกับการคัดค้านทิ้งไว้นานเท่าใด

ฉันเชื่อว่าการคัดค้านควรจะถูกปล่อยไว้จนกว่าจะถึงรุ่นใหญ่ครั้งต่อไป (เมื่อตัวเลขตัวแรกในหมายเลขรุ่นเพิ่มขึ้น)

นี่คือเมื่อการแบ่งความเข้ากันได้แบบย้อนหลังบางอย่างเป็นธรรมและก็ขึ้นอยู่กับผู้ใช้ห้องสมุดเพื่อให้แน่ใจว่ารหัสของพวกเขายังคงสร้างได้ดี

ให้แน่ใจว่าได้ชี้ให้เห็นในการเปลี่ยนแปลง: พวกถ้าคุณใช้dummy_fuctionให้แทนที่ด้วยdummy_functionทุกที่และคุณก็พร้อมที่จะไป

ถ้าไลบรารี่นั้นไม่ได้เป็นเวอร์ชั่นมันน่าจะเป็นกรณีที่ดีที่จะเริ่มทำไลบรารี่


1
ดีใจที่ได้ยิน. ไลบรารีได้รับการกำหนดเวอร์ชันดังนั้นวิธีการควบคุมเวอร์ชันจึงใช้งานได้ดี จริงๆแล้วมันมี IDE ของตัวเองเพื่อให้เวอร์ชันที่สะกดผิดสามารถซ่อนจากเครื่องมือการเติมโค้ดซึ่งควรหยุดผู้ใช้รายใหม่ที่ใช้มัน ถ้าฉันจะให้ +1 อีกคำตอบสำหรับ Q2 ฉัน!
Jamie Bull

2
นี่เป็นวิธีการที่ฉันเคยเห็นในซอฟต์แวร์อื่นเช่นกัน ฉันใช้ API บุคคลที่สามสำหรับชิ้นส่วนของซอฟต์แวร์ที่ฉันพัฒนาและ API ของพวกเขามีวิธีการทะเยอทะยานที่มีการพิมพ์ผิด ปัญหาได้รับการแก้ไขโดยการเปลี่ยนชื่อวิธีและสร้างวิธีจำลองด้วยตัวสะกดแบบเก่า (ไม่ถูกต้อง) ที่เรียกรุ่นที่ถูกต้อง วิธีการหลอกตาไม่มีเอกสารประกอบนอกเหนือจากที่กล่าวถึงมันเลิกใช้แล้วและลิงก์ไปยังรุ่นที่ถูกต้อง วิธีการนั้นมีมานานหลายปีแล้วเพื่อหลีกเลี่ยงความเข้ากันได้ย้อนหลัง
Karl Nicoll
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.