คู่มือใหม่สำหรับคนเขียน Scala 3 ที่ช่วยให้การออกแบบโปรแกรมยาก ๆ กลายเป็นเรื่องง่าย
นักพัฒนาซอฟต์แวร์คนหนึ่งแชร์ว่าเขาชอบภาษา Scala (ภาษาโปรแกรมที่เน้นความสวยงามและเป็นระเบียบ) มากครับ เพราะมันช่วยให้เขาเก่งขึ้น แต่พอจะเริ่มทำโปรเจกต์จริง เขากลับเจออุปสรรคใหญ่คือชุดเครื่องมือที่เรียกว่า Typelevel (กลุ่มเครื่องมือเสริมที่ช่วยให้โค้ดทำงานได้แม่นยำและปลอดภัยขึ้น) นั้นเข้าใจยากเกินไป หนังสือเล่มใหม่ที่เขากำลังเขียนจึงจะเข้ามาช่วยแก้ปัญหานี้ให้ทุกคนครับ
ทำไมภาษา Scala ที่ดูดีถึงยังใช้ยากสำหรับหลายคน
คนเขียนหนังสือเล่มนี้บอกว่า ปกติแล้วภาษา Scala เป็นภาษาที่มีสไตล์และน่าเรียนรู้มากครับ แต่มักจะมีปัญหาเวลาที่เราต้องการขยับจากการเขียนพื้นฐานไปสู่ระดับที่สูงขึ้น โดยเฉพาะเมื่อต้องใช้ชุดเครื่องมือ Typelevel เพื่อสร้าง Server (เครื่องแม่ข่ายที่คอยให้บริการข้อมูล) หรือเขียนเส้นทางรับส่งข้อมูลในโปรแกรม คู่มือการใช้งานส่วนใหญ่มักจะเขียนด้วยศัพท์เทคนิคที่เข้าใจยาก จนบางครั้งทำให้คนอยากเลิกใช้ไปเสียก่อน
หนังสือคู่มือที่เน้นการใช้งานจริงแบบจับวาง
เขาจึงตัดสินใจเขียนหนังสือชื่อ Scala 3 Domain Design & Typelevel Stack Cookbook ขึ้นมาครับ หนังสือเล่มนี้จะสอนเรื่อง DDD หรือ Domain-Driven Design (วิธีการออกแบบโปรแกรมโดยยึดตามโจทย์ธุรกิจเป็นหลัก) โดยใช้ภาษา Scala เป็นตัวดำเนินเรื่อง ความเจ๋งคือเขาเขียนในรูปแบบ Cookbook (คู่มือที่รวมสูตรสำเร็จหรือวิธีแก้ปัญหาเป็นข้อ ๆ) เพื่อให้คนอ่านหยิบไปใช้ได้ทันที เนื้อหาจะครอบคลุมเครื่องมือสำคัญหลายตัว เช่น cats (เครื่องมือช่วยจัดการโครงสร้างข้อมูล), cats-effects (ตัวช่วยจัดการงานที่ต้องทำงานพร้อมกันหลายอย่าง), fs2 (ระบบจัดการข้อมูลที่ไหลมาต่อเนื่องเหมือนสายน้ำ) และ http4s (เครื่องมือสำหรับรับส่งข้อมูลผ่านอินเทอร์เน็ต) ครับ
ข้อเสนอแนะเพื่อเพิ่มความเทพให้กับการเขียนโค้ด
หลังจากที่เขาประกาศเรื่องหนังสือ ก็มีหัวหน้าทีมพัฒนาซอฟต์แวร์เข้ามาให้คำแนะนำที่น่าสนใจมากครับ เขาบอกว่าหนังสือเล่มนี้จะดีขึ้นไปอีกถ้าเน้นเรื่องการแบ่งงานแบบ Vertical slice (การแบ่งงานตามฟังก์ชันที่ผู้ใช้เห็นจริง) และการใช้สิ่งที่เรียกว่า Smart constructors (วิธีสร้างข้อมูลที่ช่วยเช็กความถูกต้องตั้งแต่ก้าวแรก) นอกจากนี้ยังแนะนำให้สอนเรื่อง ScalaCheck (เครื่องมือช่วยสุ่มทดสอบโค้ดโดยอัตโนมัติ) เพื่อให้โปรแกรมของเราไม่มีข้อผิดพลาดที่นึกไม่ถึงหลุดรอดไปได้
ความปลอดภัยของข้อมูลที่เช็กได้ตั้งแต่ตอนเขียน
จุดเด่นที่สำคัญของการใช้ DDD ร่วมกับภาษา Scala คือเราสามารถสร้างระบบที่ป้องกันความผิดพลาดได้ตั้งแต่ตอน Compile time (ช่วงเวลาที่โปรแกรมกำลังตรวจสอบโค้ดก่อนจะเริ่มทำงานจริง) หมายความว่าเราจะลดโอกาสเกิดบั๊กหรือข้อผิดพลาดตอนที่คนเอาโปรแกรมไปใช้งานจริงได้มหาศาล เพราะตัวภาษาและเครื่องมือจะช่วยบังคับให้เราเขียนโค้ดที่ถูกต้องตามกฎธุรกิจมาตั้งแต่ต้นนั่นเองครับ
สรุปสั้น ๆ
ข่าวนี้คือข่าวดีสำหรับคนที่อยากพัฒนาทักษะการเขียนโปรแกรมให้สูงขึ้นด้วยภาษา Scala 3 ครับ หนังสือเล่มนี้จะช่วยเปลี่ยนเรื่องยากอย่างการจัดการข้อมูลที่ซับซ้อนให้กลายเป็นเรื่องที่ทำตามได้ง่ายขึ้น แม้ตอนนี้หนังสือจะเพิ่งเขียนไปได้ประมาณ 40 เปอร์เซ็นต์ แต่ก็เป็นจุดเริ่มต้นที่ดีสำหรับใครที่อยากเขียนโปรแกรมให้มีประสิทธิภาพและมีข้อผิดพลาดน้อยลงครับ
เรียบเรียงจากข่าวของ DEV Community อ่านข่าวต้นฉบับ ↗