Contents

ฟังก์ชั่นตัวอย่างใน Go คืออะไร?

ประเด็นที่สำคัญ

ภาษาการเขียนโปรแกรม Go มีฟังก์ชันตัวอย่าง ซึ่งทำหน้าที่เป็นทั้งข้อมูลอ้างอิงสำหรับผู้ใช้และวิธีการตรวจสอบความถูกต้องในการใช้งานผ่านการทดสอบ ฟังก์ชันตัวอย่างเหล่านี้เป็นตัวอย่างแนวทางปฏิบัติที่ดีที่สุดและทำหน้าที่เป็นแหล่งข้อมูลทางการศึกษาสำหรับนักพัฒนาเพื่อให้แน่ใจว่าการใช้งานเป็นไปตามมาตรฐานที่กำหนดไว้

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

การจัดหาฟังก์ชันตัวอย่างทำหน้าที่เป็นวิธีการในการตรวจสอบโค้ดที่เชื่อถือได้ ขณะเดียวกันก็รักษาเอกสารที่ถูกต้องแม่นยำ ฟังก์ชันเหล่านี้ซึ่งแสดงว่าเป็นการทดสอบปฏิบัติการ ทำหน้าที่เป็นเครื่องมือตรวจสอบที่ช่วยให้มั่นใจถึงการทำงานที่เหมาะสมของส่วนประกอบซอฟต์แวร์และกระบวนการที่เกี่ยวข้อง ด้วยการอัปเดตเอกสารอย่างต่อเนื่องตามการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับฟังก์ชันตัวอย่าง นักพัฒนาสามารถติดตามการแก้ไขได้อย่างมีประสิทธิภาพและรับรองว่าผลิตภัณฑ์ของตนยังคงสอดคล้องกันเมื่อเวลาผ่านไป

ข้อดีที่โดดเด่นประการหนึ่งของภาษาการเขียนโปรแกรม Go อยู่ที่ชุดเครื่องมือการทดสอบและเอกสารประกอบที่ครอบคลุม ซึ่งรวมถึงทรัพยากรอันล้ำค่าที่เรียกว่า"ฟังก์ชันตัวอย่าง"คุณลักษณะนี้ช่วยให้ผู้ใช้สามารถตรวจสอบโค้ดของตนได้อย่างมีประสิทธิภาพและถ่ายทอดฟังก์ชันการทำงานของโค้ดไปยังเพื่อนร่วมงานหรือผู้ทำงานร่วมกันได้อย่างง่ายดายและชัดเจนยิ่งขึ้น

เพื่อที่จะใช้ภาษาการเขียนโปรแกรม Go อย่างมีประสิทธิภาพในฐานะนักพัฒนา จำเป็นอย่างยิ่งที่จะต้องเข้าใจแนวคิดของฟังก์ชันตัวอย่างและบทบาทในการสร้างระบบซอฟต์แวร์ที่ยั่งยืน

ฟังก์ชั่นตัวอย่างคืออะไร?

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

พิจารณาสถานการณ์ที่บุคคลหนึ่งได้รวมฟังก์ชันการคูณต่อไปนี้ไว้ในรายการของโครงการ:

 func Multiply(a, b int) int {
    return a * b
}

การใช้ฟังก์ชันเพื่อทำการคูณสามารถแสดงได้ดังนี้:

 func ExampleMultiply() {
    fmt.Println(Multiply(4, 5))
    // Output: 2
}

ในการสร้างฟังก์ชันตัวอย่าง เป็นเรื่องปกติที่จะต้องเพิ่มชื่อฟังก์ชันต่อท้าย"Example"เช่นเดียวกับในอินสแตนซ์ของ"ExampleMultiply.

พิจารณาฟังก์ชั่นตัวอย่างให้ละเอียดยิ่งขึ้น

โค้ดที่กล่าวมาข้างต้นแสดงให้เห็นถึงเค้าโครงพื้นฐานของฟังก์ชันอินสแตนซ์ ซึ่งประกอบด้วยชื่อ เนื้อหาการทำงาน และตัวเลือกในการต่อท้ายคำอธิบายเชิงพรรณนาเป็นข้อความสรุปภายในขอบเขตของฟังก์ชัน

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

อาจจัดให้มีตัวอย่างแพ็คเกจ ฟังก์ชัน ชนิดข้อมูล และวิธีการที่เกี่ยวข้องกับโครงสร้างข้อมูลเฉพาะ

เอนทิตีประเภทต่างๆ จำเป็นต้องมีกลยุทธ์ที่แตกต่างกันเมื่อต้องจัดเตรียมตัวอย่างที่แสดงให้เห็น

⭐ หากต้องการกำหนดตัวอย่างสำหรับแพ็คเกจ เพียงเรียกใช้ฟังก์ชัน Example() โดยไม่มีส่วนต่อท้ายใดๆ ตัวอย่างเช่น นี่คือตัวอย่างระดับแพ็คเกจ:

 func Example() {
    fmt.Println("Hello, world!")
    // Output:
    // Hello, world!
} 

⭐ หากต้องการกำหนดตัวอย่างสำหรับฟังก์ชัน คุณเพียงเพิ่มชื่อฟังก์ชันเป็นส่วนต่อท้ายตามที่คุณได้เรียนรู้ก่อนหน้านี้

 func ExampleMultiply() {
    fmt.Println(Multiply(4,5))
    // Output: 2
}

⭐ หากต้องการกำหนดตัวอย่างสำหรับประเภท ให้เพิ่มชื่อเป็นส่วนต่อท้ายให้กับ Example นี่คือตัวอย่าง:

 type MyStruct struct {
    // ...
}

func ExampleMyStruct() {
    // ...
}

⭐ และสุดท้าย สำหรับวิธีการประเภทใดประเภทหนึ่ง คุณจะต้องเพิ่มชื่อประเภท ขีดล่าง และชื่อวิธีการ นี่คือการสาธิต:

 func (m *MyStruct) MyMethod() {
    // ...
}

func ExampleMyStruct_MyMethod() {
    // ...
}

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

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

ตัวอย่างไฟล์ทั้งหมดคือไฟล์ที่ลงท้ายด้วย _test.go และมีฟังก์ชันตัวอย่างเพียงฟังก์ชันเดียว ไม่มีฟังก์ชันการทดสอบหรือเบนช์มาร์ก และการประกาศระดับแพ็กเกจอื่นๆ อย่างน้อยหนึ่งรายการ เมื่อแสดงตัวอย่างดังกล่าว godoc จะแสดงทั้งไฟล์-บล็อก go dev

ฟังก์ชันการทำงานของเอ็นจิ้น Go ขึ้นอยู่กับลักษณะที่คุณได้อธิบายฟังก์ชันตัวอย่างของคุณ

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

จัดทำเอกสารโค้ดของคุณด้วยฟังก์ชันตัวอย่าง

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

ในทำนองเดียวกัน เช่นเดียวกับเครื่องมือเอกสารประกอบ Javadoc หรือ Go ของ Java ที่รู้จักกันในชื่อ godoc มันค่อนข้างง่ายที่จะสร้างเอกสารที่ครอบคลุมสำหรับโค้ดเบสโดยใช้เครื่องมือเหล่านี้ อย่างไรก็ตาม เมื่อพยายามที่จะจัดเตรียมมุมมองที่ครอบคลุมของไลบรารีและฟังก์ชันต่างๆ ที่ทำงานร่วมกันภายในแพ็คเกจเฉพาะ ตัวอย่างอาจจำเป็นเพื่อแสดงให้เห็นถึงการพึ่งพาซึ่งกันและกันและการโต้ตอบกัน

เครื่องมือ Godoc มีฟีเจอร์ที่ช่วยให้ผู้ใช้สามารถเชื่อมโยงตัวอย่างกับองค์ประกอบต่างๆ เช่น ฟังก์ชัน ประเภท และแพ็คเกจได้ตามความต้องการ นอกจากนี้ยังมีแพลตฟอร์มแบบโต้ตอบสำหรับดำเนินการทดลองโดยตรงผ่านอินเทอร์เฟซเอกสารประกอบ

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

ข้อมูลโค้ดที่ให้มาสาธิตการใช้งานฟังก์ชัน json.Valid ภายในแพ็คเกจ encoding/json ในภาษาโปรแกรม Go ฟังก์ชันจะตรวจสอบว่าออบเจ็กต์ JSON ที่ระบุนั้นถูกต้องหรือไม่โดยการวนซ้ำผ่านคีย์และค่าต่างๆ เพื่อตรวจสอบว่าค่าทั้งหมดเป็นประเภทที่เหมาะสมตามที่ระบุไว้ในสคีมา

/th/images/testable_example_function_in_go.jpg

การใช้ฟังก์ชันตัวอย่างเพื่อทดสอบหน่วย

การรันคำสั่ง “go test” จะเริ่มต้นกระบวนการดำเนินการโดยที่กลไกดำเนินการแต่ละฟังก์ชันตัวอย่างพร้อมกับหมายเหตุเอาต์พุตสรุป จากนั้นตรวจสอบว่าผลลัพธ์ที่แท้จริงสอดคล้องกับความคาดหวังที่ระบุไว้ในความคิดเห็นหรือไม่

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

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

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

ฟังก์ชันตัวอย่างสร้างโค้ดและเอกสารที่เชื่อถือได้

เอกสารมีบทบาทสำคัญในขอบเขตของการพัฒนาซอฟต์แวร์ แต่มีภาษาการเขียนโปรแกรมเพียงไม่กี่ภาษาเท่านั้นที่ให้นักพัฒนามีพื้นฐานที่แข็งแกร่งสำหรับทั้งเอกสารประกอบและการทดสอบโค้ดของพวกเขา

การใช้ตัวอย่างเป็นส่วนสำคัญในการสร้างเอกสารที่ครอบคลุมสำหรับซอฟต์แวร์ของตน เนื่องจากช่วยอำนวยความสะดวกให้ทั้งผู้ใช้และผู้ทำงานร่วมกันในการนำไปใช้และทำความเข้าใจเกี่ยวกับโค้ดเบสที่มีอยู่ ด้วยการรวมอินสแตนซ์ดังกล่าวไว้ในกระบวนการจัดทำเอกสารของคุณ คุณสามารถรับประกันขั้นตอนการทำงานที่คล่องตัวและส่งเสริมการทำงานร่วมกันที่มีประสิทธิภาพมากขึ้นระหว่างสมาชิกในทีม