ลองมาเขียน Functional Programming ด้วย Javascript [PART 1]

https://www.linkedin.com/pulse/slow-adoption-functional-programming-banks-abdul-muhit

เมื่อวานได้มีโอกาสนั่งเรียนการเขียน Functional Programming ที่ทำงาน Sellsuki (พี่อั๋น)โอเค เรามาเรียนรู้พร้อมกันเลย

Functional Programming with Javascript

ทำไม Functional Programming มันถึงดัเฉยเลยเเล้วมีการพูดถึงอยู่บ่อยครั้ง จนผมอดสงสัยว่ามันเกิดอะไรขึ้น เลยลองถามพี่ๆ ที่เคยลองเขียนดู ปราฏว่ามันเขียนยากเหมือนกันเเต่มันเขียนยากจริงหรือเปล่าก็ไม่มีใครรู้ฉะนั้นจะต้องลองเองล่ะครับ ถึงจะรู้ว่ายากไหม…..

“ เค้าว่ากันว่า functional programming นั้นจะทำให้เราสามารถลด code ได้ในระดับหนึ่ง ”

Functional Programming นั้นจริงๆเเล้วมันก็คือรากฐานของคณิตศาสตร์ชนิดนึ่งก็เเล้วกัน ซึ่งเอาตรงๆ ผมก็ไม่ค่อยรู้เท่าไร เพราะผมเริ่มจะหัดเขียนนั้นเอง ซึ่งก็แปลว่าถ้าเราเขียน Code จริงๆนั้น เราก็สามารถที่จะเขียนเป็น Functional ได้หมดเลยซึ่งมันก็ขึ้นกับ logic ของการเขียนของเเต่ละ่คน

“ เราสามารถใช้ functional programming มา implement algorithm ใดๆ ก็ได้ ”

ตัดภาพสลับมาก่อน ก่อนที่มันจะยากไป ToT

จากนั้นเราพี่อั๋นก็อธิบายว่า ทำไมเราถึงต้องเขียน functional programming แทน oop สะส่วนใหญ่ เเละจากพี่อั๋นก็เริ่มด้วยการให้อ่านเเละอธิบาย Function programming ผ่านทางเว็บนี้เลย

เริ่มบทเเรกกันเลยนะครับ

Chapter 1: What ever are we doing?

“ การที่เราเขียน OOP นั้นเหมือนเราใช้ขวานตัดต้นไม้ เเต่การเขียน Functional Programming เหมือนเราใช้เลื่อยตัดต้นไม้ มันจะยากหน่อยเเต่รับรองว่ามันง่ายกว่า ”

พี่อั๋นสรุปบทนี้ให้ฟังประมาณนี้ มันก็คือที่ผมเล่าไปด้านบทนั้นเเหละ โอเคคพี่อั๋นข้ามไป

Chapter 2: First Class Functions

พี่อั๋นได้กล่าว …. . ว่า First class Function มันเปรียบเหมือน Function นั้นเป็นตัวแปรหนึ่งนั้นเอง เเล้วใน Functionส่วนมากจะทำเเค่งานเดียวย่อยๆ นั้นเอง

ยกตัวเองกันสะหน่อย

ถ้า name = ‘tak’ เช่น

hi(‘tak’) // Hitak

greeting(‘tak’) // Hitak

ได้ผลลัทธิ์เหมือนกันเลย

ทำให้เราเห็นข้อดีของการเขียน Function แบบนี้ว่า เราสามารถเรียกใช้ซ้ำกันได้โดยไม่ต้องเขียนใหม่ มัน Reuse ได้นั้นเอง (เเต่วิธีการที่ว่านั้นจะเริ่มยากนิดหน่อยนะ เดี๋ยวจะพูดถึงต่อไปนั้นเอง)

Chapter 3: Pure Happiness with Pure Functions

สิ่งที่สำคัญที่สุดของ functional programming มันจะต้องไม่เกิด Side effect ใน Function หรือเปลี่ยนเเปลงค่าที่เราคาดเดาไม่ได้นั้นเอง…… อ้าวเเล้วพี่อั๋นก็หัวเราะ ฮ่าๆๆ อ้าววว ทั้งห้องเงียบกรี๋บ ….

โอเคต่อ จากนั้นพี่อั๋นยกตัวอย่างง่ายว่าอันไหนมัน Pure Function ให้ดูนะครับ

** ความหมายของ Array.slice()

รีเทิร์นค่าตามตำแหน่งที่เลือกใน array มาในรูปของ array ชุดใหม่ โดยไม่กระทบกับตัวแปรตั้งต้น

อะไร pure มั้งอะ

อย่างเเรกมันจะต้องไม่เปลี่ยนแปลงตัวแปรหลักเเละไม่ไปยุ่งกับ Function อื่นๆ นั้นเอง อย่างที่สองมันจะต้องเกิด side effect นั้นเอง ….


เดี๋ยวมาต่อกับการทำแบบฝึกหัดเกี่ยวกับ Functional Programming ว่าจะรอดไหม สำหรับวันนี้ง่วงเเล้ว นอนล่ะบายยย

LINK PART 2 :

เรื่องที่เขียนค้างไว้มีเรื่อง

  • Native script Vue
  • vue- router mode
  • javascript Shorthand
  • ค้างไวเยอะเหมือนกันนะเนี่ย …..

Kamonpob Pangwongtong

Written by

JUKE Master WTF! JUKE code

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade