Functional programming ใช้เมื่อไร?

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Eleanor Thomas

Senior Data Analytics Engineer

การประยุกต์ใช้ functional programming

  • Machine learning, deep learning, ปัญญาประดิษฐ์
  • การวิเคราะห์และประมวลผลชุดข้อมูลขนาดใหญ่
  • งานด้าน data engineering (เช่น Scala และ Clojure)

การประมวลผลข้อมูล

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่าง functional programming

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • ฟังก์ชันรับข้อมูลนำเข้าที่เก็บใน raw_data
  • ฟังก์ชันสร้างตัวแปรใหม่สำหรับข้อมูลผลลัพธ์ ชื่อ processed_data
  • ฟังก์ชันดำเนินขั้นตอนที่สม่ำเสมอเพื่อประมวลผลข้อมูลเพิ่มเติม
  • ฟังก์ชันส่งคืน processed_data
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ข้อดีและข้อเสียของ functional programming

PROS

  • อ่านและดีบัก pure function ได้ง่ายกว่า
  • ทดสอบ pure function ได้ง่ายกว่า
  • เกิดผลข้างเคียงที่ไม่คาดคิดในโค้ดน้อยลง
  • Pure function นำกลับมาใช้ซ้ำข้ามโปรเจกต์ได้สะดวก
  • รันฟังก์ชันต่าง ๆ แบบขนานได้ ทำให้โค้ดเร็วขึ้น

CONS

  • ต้องปรับวิธีคิดใหม่ซึ่งอาจรู้สึกจำกัด เพราะ "side effects" (เช่น การเขียนไฟล์) คือสิ่งที่เรามักต้องการทำในการเขียนโปรแกรม
  • ผู้เชี่ยวชาญ เครื่องมือ และเฟรมเวิร์กสำหรับ functional programming มีน้อยกว่า
  • เส้นการเรียนรู้ชันกว่าและมีแหล่งเรียนรู้น้อยกว่า
  • การใช้หน่วยความจำมากขึ้นจำกัดการนำไปใช้งาน
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Functional programming และ declarative programming

  • Functional programming เป็นรูปแบบหนึ่งของ declarative programming
  • Declarative programming: บอกคอมพิวเตอร์ว่าต้องการ อะไร ไม่ใช่ อย่างไร
  • Functional programming เป็นเพียง หนึ่งใน declarative programming
  • โปรแกรมเมอร์บอกว่าให้รันฟังก์ชันใด ไม่ใช่ระบุทุกขั้นตอน

Functional programming เป็น declarative

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

มาฝึกกันเถอะ!

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Preparing Video For Download...