วิธีสร้าง method chaining ในภาษา golang แบบง่าย ๆ พร้อมตัวอย่าง code | easy create method chaining in golang


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

method chaining แปลตามตัวคือ method ชื่อ ฟังก์ชันหรือหน้าที่ทำงานอย่างใดอย่างหนึ่งหรือหลาย ๆ อย่างแล้วแต่การออกแบบ ส่วน chaining แปลตรงตัวคือ "โซ่" ในส่วนของการทำงานของ method จะทำงานเชื่อมโยงกันไปเหมือนโซ่นั้นเอง ตัวอย่างเช่น functionA()->functionB()->functionC().... ไปเรื่อย ๆ ข้อดีข้อมันคือมันทำให้ code กระซับขึ้นไม่ต้อง new object ขึ้นมาใหม่ทำให้ลดจำนวนบรรทัดไปได้เยอะเลยทีเดียว ส่วนข้อเสีย ในบางภาษาเช่น php มันไม่สามารถทำการ Jump to function ที่ไม่ใช่ลำดับแรกได้ ใน editor บางตัว อาจจะลำบากหน่อยในช่วงเวลา implement code
สำหรับ developer สายงาน nodejs คงคุ้นเคยกันดีอยู่แล้วในการใช้งานคุณสมบัติข้อนี้ของภาษาโปรแกรม ส่วนตัวผมคิดว่า javascript นี่เป็นภาษาที่สุดยอดของการใช้งาน method chaining เลยก็ว่าได้ สังเกตุจากหลาย ๆบทความที่ผมได้อ่านมามีการพูดถึงและมีตัวอย่างเป็นจำนวนมาก

เอาละเมื่อเข้าใจกันแล้วว่ามันคืออะไร เราลองมาทำกันดีกว่า ตัวอย่างที่ผมทำขึ้นมานี้ จะเป็นการสร้าง method chaining แบบง่าย ๆ โดยผมจะสร้างไพล์ขึ้น 1 ไฟล์ซึ่งประกอบไปด้วย 2 fuction ที่สามารถ chaining กันได้  คือ function setMessage และ function setCode โดย setMessage ทำหน้าที่ รับข้อมูลในรูปแบบสติงแล้วมาเก็บไว้ที่ config -> key -> message ส่วนของ setCode ทำหน้าที่รับข้อมูลในรูปแบบตัวเลขแล้วมาเก็บไว้ที่ config -> key->  code

ในส่วนของการใช้งานก็ง่ายมาก keyword ของกระบวนการนี้มีอยู่สองอย่างคือ
  1. การคือค่าจาก function ให้เป็น type เดิมที่รับเข้ามาสังเกตในวงเล็บแรกที่ implement struct ของ config มา และตรง repsonse ก็คืนค่า struct ของ config กลับไป 
  2. การเรียกใช้งาน มีความจำเป็นต้อง new struct ของ config นั้นขึ้นมาเสียก่อน แล้วเก็บไว้ในตัวแปรจากนั้นก็ สามารถเรียกใช้ method chaining ผ่านทางตัวแปรนั้นได้เลย 
ตัวอย่าง code มีดังต่อไปนี้

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

Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น