Tag: contango
-

Go Programming – Unit Test: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา
Go Programming – Unit Test การเขียนโปรแกรมด้วยภาษา Go นั้นมาพร้อมกับเครื่องมือที่ช่วยให้การพัฒนาซอฟต์แวร์มีประสิทธิภาพและน่าเชื่อถือมากยิ่งขึ้น หนึ่งในเครื่องมือสำคัญที่นักพัฒนา Go ทุกคนควรรู้จักคือ Unit Test บทความนี้จะพาคุณไปทำความเข้าใจอย่างลึกซึ้งเกี่ยวกับ Unit Test ใน Go Programming ตั้งแต่พื้นฐาน แนวคิด ไปจนถึงเทคนิคการใช้งานจริง เพื่อให้คุณสามารถสร้างโค้ดที่มีคุณภาพและง่ายต่อการบำรุงรักษา Unit Test คืออะไร Unit Test คือกระบวนการทดสอบโค้ดในระดับที่เล็กที่สุด หรือที่เรียกว่า “หน่วย” (Unit) ซึ่งโดยทั่วไปแล้วคือฟังก์ชันหรือเมธอด การทำ Unit Test มีวัตถุประสงค์หลักเพื่อตรวจสอบว่าแต่ละหน่วยของโค้ดทำงานตามที่คาดหวังไว้หรือไม่ การทดสอบเหล่านี้จะช่วยให้คุณมั่นใจได้ว่าโค้ดของคุณทำงานได้อย่างถูกต้อง และช่วยลดโอกาสที่จะเกิดข้อผิดพลาดเมื่อมีการเปลี่ยนแปลงโค้ดในอนาคต ประเภทของการทดสอบ การทดสอบซอฟต์แวร์มีหลายประเภท แต่ละประเภทมีวัตถุประสงค์และขอบเขตการทดสอบที่แตกต่างกันไป การทำความเข้าใจประเภทของการทดสอบต่างๆ จะช่วยให้คุณเลือกวิธีการทดสอบที่เหมาะสมกับสถานการณ์ได้ Unit Test: ทดสอบฟังก์ชันหรือเมธอดแต่ละหน่วย Integration Test: ทดสอบการทำงานร่วมกันระหว่างหน่วยต่างๆ End-to-End Test: ทดสอบการทำงานของระบบทั้งหมด ตั้งแต่ต้นจนจบ การทดสอบ…
-

Go Programming – GORM: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา
Go Programming – GORM GORM (Go Object-Relational Mapping) เป็นไลบรารี ORM ที่ทรงพลังและใช้งานง่ายสำหรับภาษา Go ซึ่งช่วยให้นักพัฒนาสามารถทำงานกับฐานข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น GORM ช่วยลดความซับซ้อนในการเขียนคำสั่ง SQL โดยตรง ทำให้โค้ดอ่านง่ายขึ้นและบำรุงรักษาง่ายขึ้น บทความนี้จะแนะนำคุณตลอดกระบวนการใช้ GORM ตั้งแต่การติดตั้งเบื้องต้นไปจนถึงการใช้งานฟังก์ชันขั้นสูง เช่น การสร้างความสัมพันธ์ระหว่างตาราง (Association) และการดึงข้อมูลล่วงหน้า (Preloading) ด้วย GORM คุณจะสามารถจัดการฐานข้อมูลได้อย่างมีประสิทธิภาพและรวดเร็ว การติดตั้ง GORM การเริ่มต้นใช้งาน GORM นั้นง่ายมาก คุณสามารถติดตั้ง GORM และไดรเวอร์ฐานข้อมูลที่คุณต้องการได้โดยใช้คำสั่ง `go get` การ Get Package GORM เริ่มต้นด้วยการติดตั้ง GORM โดยใช้คำสั่ง `go get gorm.io/gorm` ใน Terminal ของคุณ การ Copy Driver…
-

รู้จักภาษา Go, Go Module และ Go Package: GoAPI Essential – EP. 1
รู้จักภาษา Go / Go Module และ Go package กัน | GoAPI Essential – EP. 1 ยินดีต้อนรับสู่คอร์สเรียนรู้ Backend Development ผ่านภาษา Go! คอร์สนี้จะพาคุณไปปูพื้นฐานทั้งหมดของภาษา Go ตั้งแต่ Syntax พื้นฐาน การ Build โครงสร้างข้อมูล ไปจนถึงการสร้าง API ซึ่งเป็นหัวใจสำคัญของคอร์สนี้ ภายใต้หัวข้อ GoAPI Essential – EP. 1 เราจะมาทำความรู้จักกับภาษา Go, Go Module และ Go Package อย่างละเอียด เพื่อให้คุณสามารถนำไปประยุกต์ใช้ในการพัฒนา Backend ได้อย่างมีประสิทธิภาพ Backend Development และ Go Backend Development คือการพัฒนาส่วนที่เป็นระบบหลังบ้านของแอปพลิเคชัน…
-

Go Programming – database/sql: คู่มือฉบับสมบูรณ์
Go Programming – database/sql การเขียนโปรแกรมด้วยภาษา Go เพื่อจัดการกับฐานข้อมูล (database) เป็นทักษะสำคัญสำหรับนักพัฒนาซอฟต์แวร์ในยุคปัจจุบัน บทความนี้จะนำเสนอแนวทางในการใช้ Go Programming ร่วมกับ database/sql package เพื่อเชื่อมต่อและจัดการข้อมูลในฐานข้อมูลต่างๆ ไม่ว่าจะเป็น SQL Server หรือ MySQL พร้อมทั้งแนะนำการใช้ SQLx library และ Transaction เพื่อการจัดการข้อมูลที่มีประสิทธิภาพมากยิ่งขึ้น การเขียนโปรแกรม SQL database การเขียนโปรแกรม SQL database เป็นพื้นฐานสำคัญในการพัฒนาแอปพลิเคชันที่ต้องมีการจัดเก็บและจัดการข้อมูล การใช้ภาษา Go ร่วมกับ database/sql package ช่วยให้การเชื่อมต่อกับฐานข้อมูลเป็นเรื่องง่ายและมีประสิทธิภาพ การเชื่อมต่อกับ database การเชื่อมต่อกับ database เป็นขั้นตอนแรกที่สำคัญในการเข้าถึงข้อมูล การใช้ฟังก์ชัน Open จาก database/sql package ช่วยให้เราสามารถสร้าง connection กับฐานข้อมูลได้ การติดตั้ง Driver…
-

Go Programming – Fiber Web Framework: คู่มือฉบับสมบูรณ์
Go Programming – Fiber Web Framework ในโลกของการพัฒนาเว็บด้วย Go Programming, การเลือกใช้ Web Framework ที่เหมาะสมเป็นสิ่งสำคัญ Fiber Web Framework เป็นหนึ่งในตัวเลือกที่ได้รับความนิยม ด้วยความเร็ว, ประสิทธิภาพ และความง่ายในการใช้งาน บทความนี้จะพาคุณไปทำความรู้จักกับ Fiber อย่างละเอียด ตั้งแต่พื้นฐานการติดตั้ง, การสร้างโปรเจกต์ ไปจนถึงการสร้าง API และการทำ Authentication ด้วย JWT Fiber Web Framework คืออะไร Fiber เป็น Web Framework ที่สร้างขึ้นบน Go Programming โดยมีพื้นฐานมาจาก Fasthttp ซึ่งเป็น HTTP engine ที่รวดเร็ว Fiber ถูกออกแบบมาให้ใช้งานง่าย, มีประสิทธิภาพสูง และมีความยืดหยุ่นในการพัฒนาเว็บแอปพลิเคชัน การติดตั้ง Fiber การติดตั้ง…
-

Go Programming – Kafka: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา
Go Programming – Kafka การเรียนรู้ Go Programming ร่วมกับ Kafka เป็นทักษะสำคัญสำหรับนักพัฒนาที่ต้องการสร้างระบบที่ทำงานแบบ Real-time และสามารถจัดการข้อมูลจำนวนมหาศาลได้ บทความนี้จะพาคุณไปทำความรู้จักกับ Kafka อย่างละเอียด ตั้งแต่การติดตั้ง การตั้งค่า ไปจนถึงการเขียนโค้ด Go เพื่อใช้งาน Kafka อย่างมีประสิทธิภาพ ไม่ว่าคุณจะเป็นมือใหม่หรือมีประสบการณ์ในการพัฒนามาก่อน คุณจะได้รับความรู้และแนวทางในการนำ Kafka ไปประยุกต์ใช้ในโปรเจกต์ของคุณ การติดตั้งและใช้งาน Kafka ก่อนที่เราจะเริ่มต้นเขียนโปรแกรม Go กับ Kafka เราจำเป็นต้องติดตั้งและตั้งค่า Kafka เสียก่อน ขั้นตอนนี้เป็นพื้นฐานที่สำคัญเพื่อให้คุณสามารถทดลองและพัฒนาโปรแกรมได้อย่างราบรื่น การดาวน์โหลดและติดตั้ง Kafka เริ่มต้นด้วยการดาวน์โหลด Kafka จากเว็บไซต์ Apache Kafka คุณสามารถเลือกเวอร์ชันล่าสุดได้ หลังจากดาวน์โหลดเสร็จสิ้น ให้ทำการแตกไฟล์และติดตั้งตามคำแนะนำบนเว็บไซต์ การตั้งค่า Kafka Broker Kafka Broker คือหัวใจหลักของระบบ Kafka คุณต้องทำการตั้งค่า Broker…
-

Go Programming – gRPC: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา
Go Programming – gRPC gRPC (Remote Procedure Call) เป็น framework RPC แบบโอเพนซอร์สที่ได้รับความนิยมอย่างสูงในการพัฒนา microservices และระบบ distributed applications ด้วยความสามารถในการสื่อสารระหว่าง service ที่รวดเร็วและมีประสิทธิภาพ gRPC กลายเป็นเครื่องมือสำคัญสำหรับนักพัฒนาที่ต้องการสร้างระบบที่มีความยืดหยุ่นและปรับขนาดได้ ในบทความนี้ เราจะมาเจาะลึกเกี่ยวกับการใช้งาน gRPC ด้วยภาษา Go ตั้งแต่พื้นฐานจนถึงการประยุกต์ใช้งานจริง ภาพรวม gRPC gRPC คือ Remote Procedure Call (RPC) framework ที่พัฒนาโดย Google ซึ่งช่วยให้การสื่อสารระหว่าง service เป็นไปอย่างง่ายดายและมีประสิทธิภาพ gRPC ใช้ Protocol Buffers (Proto Buffer) เป็น Interface Definition Language (IDL) ในการกำหนดโครงสร้างข้อมูลและ service interfaces…
-

Go Programming – Hexagonal Architecture: คู่มือฉบับสมบูรณ์
Go Programming – Hexagonal Architecture Hexagonal Architecture หรือที่รู้จักกันในชื่อ Ports and Adapters Architecture เป็นแนวทางในการออกแบบซอฟต์แวร์ที่เน้นการแยกส่วนประกอบ (separation of concerns) เพื่อให้โค้ดมีความยืดหยุ่น ทดสอบง่าย และปรับเปลี่ยนได้ง่ายขึ้น ในบทความนี้ เราจะมาเจาะลึกถึงหลักการของ Hexagonal Architecture และวิธีการนำไปประยุกต์ใช้ในการเขียนโปรแกรมด้วยภาษา Go (Go Programming) พร้อมทั้งยกตัวอย่างการใช้งานจริง Introduction to Hexagonal Architecture Hexagonal Architecture คือสถาปัตยกรรมซอฟต์แวร์ที่ออกแบบมาเพื่อลดการพึ่งพากันระหว่างส่วนประกอบต่างๆ ของระบบ โดยมีเป้าหมายหลักคือการทำให้โค้ดมีความยืดหยุ่นต่อการเปลี่ยนแปลงของเทคโนโลยีภายนอก เช่น ฐานข้อมูล หรือ API ต่างๆ What is Hexagonal Architecture? Hexagonal Architecture มองว่าระบบซอฟต์แวร์ประกอบด้วย “core” หรือแกนหลัก ซึ่งเป็นที่อยู่ของ business logic และ…
-

Go Programming – Basic Syntax: เรียนรู้ไวยากรณ์พื้นฐานฉบับสมบูรณ์
Go Programming – Basic Syntax Go เป็นภาษาโปรแกรมมิ่งที่ได้รับความนิยมอย่างสูงในปัจจุบัน ด้วยความสามารถในการทำงานที่รวดเร็ว, ประสิทธิภาพสูง, และง่ายต่อการเรียนรู้ ทำให้ Go เป็นตัวเลือกที่น่าสนใจสำหรับนักพัฒนาหลายท่าน บทความนี้จะพาคุณไปทำความรู้จักกับ Go Programming – Basic Syntax ตั้งแต่พื้นฐานการติดตั้ง ไปจนถึงการใช้งานไวยากรณ์เบื้องต้น เพื่อให้คุณสามารถเริ่มต้นการเขียนโปรแกรมด้วย Go ได้อย่างมีประสิทธิภาพ การติดตั้ง Go การติดตั้ง Go เป็นขั้นตอนแรกที่สำคัญในการเริ่มต้นใช้งาน มีหลายวิธีให้เลือก ขึ้นอยู่กับระบบปฏิบัติการและความถนัดของผู้ใช้งาน วิธีติดตั้ง Go มีหลายวิธีในการติดตั้ง Go ไม่ว่าจะเป็นการติดตั้งผ่าน Build-in Store, การติดตั้งแบบ Tar หรือการเลือกเวอร์ชั่นที่เหมาะสมกับระบบปฏิบัติการของคุณ การติดตั้งผ่าน Build-in Store สำหรับผู้เริ่มต้น วิธีที่ง่ายที่สุดคือการติดตั้งผ่าน Build-in Store ของระบบปฏิบัติการที่คุณใช้งาน เช่น Windows, macOS หรือ Linux การติดตั้งแบบ…
-

ทำไม “ฟิวเจอร์” ถึงง่ายกว่าออปชั่น | Investแมท #03
ทำไม “ฟิวเจอร์” ถึงง่ายกว่าออปชั่น | Investแมท #03 ในโลกของการลงทุน มีเครื่องมือทางการเงินมากมายให้เลือกใช้ หนึ่งในนั้นคือ “ฟิวเจอร์” หรือสัญญาซื้อขายล่วงหน้า ซึ่งมักถูกนำไปเปรียบเทียบกับ “ออปชั่น” หรือสิทธิในการซื้อขาย อย่างไรก็ตาม ฟิวเจอร์กลับมีข้อได้เปรียบในแง่ของความเข้าใจง่าย โดยเฉพาะสำหรับนักลงทุนมือใหม่ บทความนี้จะพาไปสำรวจว่าทำไม “ฟิวเจอร์” ถึงเป็นตัวเลือกที่น่าสนใจกว่า “ออปชั่น” และเจาะลึกกลไกการทำงานของฟิวเจอร์อย่างละเอียด ฟิวเจอร์คืออะไร? ฟิวเจอร์ (Future) คือ สัญญาซื้อขายล่วงหน้าประเภทหนึ่ง เป็นข้อตกลงระหว่างผู้ซื้อและผู้ขายในการซื้อหรือขายสินทรัพย์อ้างอิงในอนาคต ณ ราคาและวันที่ที่กำหนดไว้ล่วงหน้า จุดประสงค์ดั้งเดิมของฟิวเจอร์ จุดประสงค์หลักของฟิวเจอร์คือการลดความเสี่ยงในอนาคต โดยเปิดโอกาสให้ผู้ประกอบการและผู้ผลิตสามารถวางแผนการซื้อขายสินค้าได้ล่วงหน้า ตัวอย่างเช่น ผู้ผลิตข้าวสารสามารถทำสัญญาฟิวเจอร์เพื่อขายข้าวสารในราคาที่แน่นอนในอนาคต ซึ่งช่วยลดความกังวลเกี่ยวกับความผันผวนของราคาข้าวสารในตลาด ฟิวเจอร์ vs. Option: ข้อแตกต่างที่สำคัญ ข้อแตกต่างที่สำคัญที่สุดระหว่างฟิวเจอร์และออปชั่นคือ ฟิวเจอร์เป็นสัญญาที่ “บังคับ” ให้ผู้ถือสัญญาต้องซื้อขายสินทรัพย์อ้างอิงตามเงื่อนไขที่ตกลงกันไว้ ในขณะที่ออปชั่นเป็นสัญญาที่ให้ “สิทธิ” แก่ผู้ถือสัญญาในการซื้อหรือขายสินทรัพย์อ้างอิง แต่ไม่ได้บังคับ กลไกของฟิวเจอร์ เพื่อให้การซื้อขายฟิวเจอร์เป็นไปอย่างยุติธรรมและมีประสิทธิภาพ มีกลไกสำคัญสองประการที่ควรทำความเข้าใจ ได้แก่ การวางเงินหลักประกันและการคิดกำไรขาดทุนแบบ Real-time การวางเงินหลักประกัน…