Sunrabbit

ยังคงใช้ไลบรารีเชิงฟังก์ชันอยู่หรือไม่

สร้าง: 2024-07-30

สร้าง: 2024-07-30 10:40

ในช่วงไม่กี่ปีที่ผ่านมา การเขียนโปรแกรมเชิงฟังก์ชันได้รับความนิยมอย่างมาก


การเขียนโปรแกรมเชิงวัตถุช่วยสร้างโครงสร้าง

ส่วนการเขียนโปรแกรมเชิงฟังก์ชันช่วยสร้างความกระชับของโค้ดในส่วนย่อยๆ


แน่นอนว่ากระแสความนิยมของการเขียนโปรแกรมเชิงฟังก์ชันนั้นมีวงจรซ้ำๆ ทุกๆ ไม่กี่ปี

และจากกระแสความนิยมนี้เอง ทำให้มีไลบรารีต่างๆ เกิดขึ้นมากมาย


FxTs , fp-ts , lodash เป็นต้น


สำหรับผมแล้ว FxTs ดูเหมือนจะเป็นเพียงชุดเครื่องมือที่ใช้ generator ในการสร้างการประเมินแบบล่าช้า


lodash ก็คล้ายกัน คือให้ความรู้สึกเหมือนเป็นชุดเครื่องมือ



แน่นอนว่าชุดเครื่องมือเหล่านี้ช่วยในการเขียนโปรแกรมเชิงประกาศ


แต่สิ่งที่เราต้องการจากการเขียนโปรแกรมเชิงฟังก์ชันนั้นไม่ใช่แบบนั้น แต่เป็นเรื่องของการแมป การจับคู่ โมแนด และโมแนดอื่นๆ อีกมากมาย

fp-ts ตรงตามสิ่งที่เราต้องการ และผู้ดูแลรักษาก็จริงจังกับการเขียนโปรแกรมเชิงฟังก์ชันอย่างแท้จริง


แต่เมื่อไม่กี่เดือนก่อน ผมได้ยินข่าวว่าไลบรารีนี้Effect ได้ถูกผสานเข้าด้วยกันแล้ว


ดังนั้น ผมจึงลองดู Effect และพบว่ามันแตกต่างออกไป


ถ้า fp-ts เป็นเหมือนไลบรารี Effect นี้กลับเป็นเหมือนเฟรมเวิร์ก

การจะใช้ Effect นั้นจำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับ Effect ด้วย


NestJs และ NextJs ก็เหมือนกัน คือต้องมีความเข้าใจเกี่ยวกับมันก่อนที่จะใช้งานได้


ไลบรารีถ้ามี API ที่เปิดเผยอย่างดี ก็แค่เอามาใช้ได้เลย แต่เฟรมเวิร์กนั้นต้องมีความเข้าใจในแพ็คเกจนั้นๆ ด้วย


ลักษณะของ Effect นั้นคล้ายกับ RxJs ซึ่งแทนที่จะใช้ Observable ห่อหุ้ม ก็ใช้ Effect ห่อหุ้มวัตถุต่างๆ

เหมือนกับ async ที่แพร่กระจายไปทั่ว


ในการใช้วัตถุ Effect ฟังก์ชันที่ใช้กับวัตถุนั้นก็ต้องเป็น Effect ด้วย


เช่นเดียวกับ program ในโค้ดข้างต้น


แน่นอนว่ามีฟังก์ชันที่ใช้เป็นจุดเริ่มต้นอยู่บ้าง แต่ก็ไม่ค่อยน่าสนใจเท่าไหร่


อย่างไรก็ตาม รูปแบบและความเรียบง่ายของ Effect ในฐานะเฟรมเวิร์กนั้น อาจจะนำพาความเปลี่ยนแปลงและมาตรฐานใหม่ๆ มาสู่วงการ NodeJS ผมเองก็คาดหวังเช่นนั้น


ความคิดเห็น0

[สำหรับผู้ไม่ใช่ผู้เชี่ยวชาญ ด้านการพัฒนาซอฟต์แวร์ เพื่อความอยู่รอด] 14. สรุปเนื้อหาสัมภาษณ์ทางเทคนิคที่ผู้พัฒนาซอฟต์แวร์มือใหม่ถามบ่อยสรุปคำถามทางเทคนิคที่มักถามในการสัมภาษณ์งานผู้พัฒนาซอฟต์แวร์มือใหม่ (พื้นที่หน่วยความจำ โครงสร้างข้อมูล ฐานข้อมูล ฯลฯ) หวังว่าจะเป็นประโยชน์ในการเตรียมตัวสัมภาษณ์งานด้านการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

การเพิ่มประสิทธิภาพการเรียกซ้ำแบบหาง (Tail Call Optimization)การเพิ่มประสิทธิภาพการเรียกซ้ำแบบหาง (TCO) เป็นเทคนิคที่ช่วยป้องกันการล้นสแต็กของฟังก์ชันเรียกซ้ำและเพิ่มประสิทธิภาพการใช้หน่วยความจำ ใน JavaScript นั้นรองรับในโหมด strict ของ ES6 และสามารถใช้เทคนิค trampoline ในการใช้งานได้
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍의 생각들
뚠뚠멍의 생각들

October 12, 2024

[7 วัน] สร้างเกมสนุกๆ กับ AIนี่คือวันที่ 7 ของการพัฒนาเว็บเกมที่ใช้ AI ช่วยเหลือโดยอิงจาก D&D5e เราประสบความสำเร็จในการปรับปรุงประสิทธิภาพด้วยการแยกเลเยอร์ของแคนวาสและการเปลี่ยนวิธีการ ESM รวมถึงการใช้งานระบบปฏิสัมพันธ์กับสิ่งปลูกสร้างและเอฟเฟกต์การต่อสู้ ตรวจสอบได้ที่ ggoban.com/d2
꼬반
꼬반
꼬반
꼬반

November 13, 2024

[ออบเจกต์] บทที่ 1 วัตถุ การออกแบบอธิบายถึงความสำคัญและแนวคิดของการออกแบบเชิงวัตถุในงานพัฒนาซอฟต์แวร์ พร้อมยกตัวอย่างแอปพลิเคชันจำหน่ายตั๋วเพื่อเน้นย้ำถึงความจำเป็นของการออกแบบเชิงวัตถุ
제이온
제이온
제이온
제이온

April 28, 2024

พลังของเครื่องจักรที่ตีความภาษาของมนุษย์: ปัญญาประดิษฐ์และการประมวลผลภาษาธรรมชาติบทความวิเคราะห์เชิงลึกเกี่ยวกับหลักการ เทคนิคการใช้งาน ปัญหาทางจริยธรรม และการคาดการณ์ในอนาคตของเทคโนโลยีปัญญาประดิษฐ์และการประมวลผลภาษาธรรมชาติ รวมถึงตัวอย่างการประยุกต์ใช้งานที่หลากหลาย เช่น แชทบอท การแปลภาษา และคู่มือการใช้งานสำหรับนักพัฒนา
Cherry Bee
Cherry Bee
Cherry Bee
Cherry Bee

March 25, 2025