Generics เป็นหนึ่งในฟีเจอร์ที่นักพัฒนาเรียกร้องกันมา ตั้งแต่เปิดตัวภาษา และ เริ่มพัฒนาจริง ๆ ตอนปี 2019 ในที่สุดก็ปล่อยออกมาให้ใช้งานกันแล้วที่เวอร์ชัน 1.18 มาลองดูกันว่าสามารถทำอะไรได้บ้าง
บล็อกนี้เล่าถึงหลักการ Interface Segreagation Principle (ISP) หนึ่งในหลักการของ SOLID ที่กล่าวไว้โดย Robert C. Martin หรือ Uncle Bob ในบทความที่ตอบจดหมายเอาไว้ดังนี้
บล็อกนี้เล่าถึงหลักการ Single Responsibility Principle (SRP) หนึ่งในหลักการของ SOLID ที่กล่าวไว้โดย Robert C. Martin หรือ Uncle Bob ในหนังสือเรื่อง Agile Software Development, Principles, Patterns, and Practices สรุปใจความสั้น ๆ ได้ว่า "คลาสควรจะมีเพียงเหตุผลเดียวที่ทำให้ต้องแก้ไข"
บล็อกนี้เล่าถึงหลักการ Open-closed หนึ่งในหลักการของ SOLID ที่กล่าวไว้โดย Bertrand Meyer ในหนังสือเรื่อง Object Oriented Sofrware Construction แปลได้ใจความว่า "เอนทิตี้ใด ๆ ในซอฟต์แวร์เช่นคลาส, โมดูล, ฟังก์ชัน ควรเปิดเพื่อให้ต่อยอดได้ (extension) แต่ปิดเพื่อป้องกันไม่ให้แก้ไข (modification)"
ภาษากลุ่มที่เป็น Object-oriented Programming (OOP) จะพบรูปแบบการใช้งาน Repository Pattern เป็นปกติ ข้อดีของรูปแบบนี้คือการแยกส่วนของประมวลผล (Business Logic Layer: BLL) ออกจากส่วนของการติดต่อกับข้อมูล (Data Access Lager: DAL) ซึ่งสอดคล้องกับหลักการเขียนโปรแกรมที่ดีคือ Low Coupling, High Cohesion
Go มี built-in concurrency ที่เรียกว่า Goroutines การทำงานคล้ายกับ Thread ที่อยู่ใน Java แต่มีขนาดเล็กและเบากว่า ซึ่ง Go เคลมว่าสามารถรันได้ถึงหนึ่งแสน Goroutines
กลับมาพบกันอีกครั้งกับ TDD Kata โจทย์ในวันนี้คือ The Bowling Game Kata รายละเอียดของโจทย์จะอยู่ในสไลด์ที่อยู่ในบทความอีกที ถ้าพร้อมแล้วไปลุยกันดีกว่า
ในการเขียนโปรแกรมมีแนวคิดนึงที่ยึดหลักการเขียนเทสก่อนลงมืออิมพลิเมนต์ฟังก์ชันจริงหรือที่เรียกว่า Test-driven development (TDD) หลักการคือเริ่มต้นด้วยการเขียนเทส, รันแล้วพัง, แก้ไขโปรแกรม, รันแล้วผ่าน วนอยู่แบบนี้