การเขียนโปรแกรมด้วยภาษา Elixir
คู่มือที่ครอบคลุมเกี่ยวกับการเขียนโปรแกรมเชิงฟังก์ชันและแบบขนานด้วยภาษา Elixir โดยครอบคลุมการเปลี่ยนจากแนวคิดเชิงวัตถุไปสู่การคิดในเชิงฟังก์ชัน การจับรูปแบบ การไม่เปลี่ยนแปลงข้อมูล โมเดลผู้กระทำสำหรับการประมวลผลพร้อมกัน และการสร้างระบบกระจายที่มีความทนทานด้วย OTP
ภาพรวมคอร์สเรียน
สรุปเนื้อหา
คู่มือที่ครอบคลุมเกี่ยวกับการเขียนโปรแกรมแบบฟังก์ชันและพร้อมใช้งาน (concurrent programming) โดยใช้ภาษา Elixir ครอบคลุมการเปลี่ยนจากแนวคิดเชิงวัตถุ (object-oriented) มาเป็นแนวคิดเชิงฟังก์ชัน การจับคู่รูปแบบ (pattern matching) ความไม่สามารถเปลี่ยนแปลงได้ (immutability) โมเดลผู้กระทำ (actor model) สำหรับการประมวลผลขนาน และการสร้างระบบกระจายที่มั่นคงด้วย OTP
เชี่ยวชาญศิลปะในการสร้างระบบที่ทนทานและทำงานพร้อมกันผ่านความงามของโปรแกรมเชิงฟังก์ชัน
ผู้เขียน: เดวิด โทมัส
คำขอบคุณ: โจเซ่ วาลิม, คอรี แฮนส์, บรูซ เทต, เจนนิเฟอร์ เคอร์ร์, แอนโธนี อีเดน, เชด ฟาวเลอร์, คิม ชไรม์, แคแนซ คันนิงแฮม และ พอโตมาค อินเด็กซ์
เป้าหมายการเรียนรู้
- เปรียบเทียบแนวทางการเปลี่ยนแปลงข้อมูลของภาษา Elixir กับการเขียนโปรแกรมแบบพึ่งพาสถานะ (state-based) ทั่วไป
- ตั้งค่าชัลล์อินเตอร์แอคทีฟของภาษา Elixir (IEx) และรันโค้ด Elixir ผ่านสคริปต์และคอมไพเลอร์
- ใช้ตัวดำเนินการจับคู่ (
=), ตัวดำเนินการแนบ (pin operator^), และตัวแทนที่ไม่สนใจ (_) เพื่อแยกโครงสร้างข้อมูลและตรวจสอบข้อมูล - อธิบายผลกระทบทางทฤษฎีและปฏิบัติของการไม่สามารถเปลี่ยนแปลงข้อมูลต่อประสิทธิภาพและจัดการหน่วยความจำ
- ระบุและใช้ประเภทข้อมูลที่มีอยู่ในตัวของภาษา Elixir รวมถึงประเภทค่า (Value), ระบบ (System), และประเภทคอลเลกชัน (Collection)
- ใช้กฎการจำกัดขอบเขตตัวแปร (variable scoping) และการใช้คำสั่ง
withเพื่อจัดการการเปลี่ยนแปลงข้อมูลที่ซับซ้อน - สร้างและเรียกใช้ฟังก์ชันที่ไม่มีชื่อ (anonymous functions) ทั้งแบบปกติและแบบแคปเจอร์ (
&) - ใช้การจับคู่รูปแบบ (pattern matching) และการเรียกซ้ำ (recursion) ภายในโมดูลเพื่อจัดการตรรกะที่ซับซ้อนโดยใช้ฟังก์ชันที่มีชื่อ
- ใช้เงื่อนไขควบคุม (guard clauses) และพารามิเตอร์เริ่มต้น (default parameters) เพื่อควบคุมลำดับการทำงานของฟังก์ชัน
- แยกโครงสร้างและสร้างรายการ: ใช้การจับคู่หัว/ก้อย (head/tail pattern matching) เพื่อสำรวจและสร้างโครงสร้างรายการแบบเรียกซ้ำ