ฉันเป็นนักพัฒนาเว็บมาระยะหนึ่งแล้วและเพิ่งเริ่มเรียนรู้การเขียนโปรแกรมเชิงฟังก์ชันบางอย่าง เช่นเดียวกับคนอื่น ๆ ฉันมีปัญหาสำคัญบางประการในการนำแนวคิดเหล่านี้ไปใช้กับงานวิชาชีพของฉัน สำหรับฉันเหตุผลหลักคือฉันเห็นความขัดแย้งระหว่างเป้าหมายของ FP ในเรื่องการไร้สัญชาติที่เหลืออยู่นั้นค่อนข้างขัดแย้งกับความจริงที่ว่างานพัฒนาเว็บส่วนใหญ่ที่ฉันทำนั้นมีความเชื่อมโยงกับฐานข้อมูลอย่างมากซึ่งมีข้อมูลเป็นศูนย์กลาง
สิ่งหนึ่งที่ทำให้ฉันเป็นนักพัฒนาที่มีประสิทธิผลมากขึ้นในด้าน OOP คือการค้นพบตัวทำแผนที่เชิงสัมพันธ์เชิงวัตถุเช่น MyGeneration d00dads สำหรับ. Net, Class :: DBI สำหรับ perl, ActiveRecord สำหรับทับทิม ฯลฯ สิ่งนี้ทำให้ฉันต้องอยู่ห่าง ๆ จากการเขียนแทรกและเลือกคำสั่งทั้งวันและมุ่งเน้นไปที่การทำงานกับข้อมูลได้อย่างง่ายดายเหมือนวัตถุ แน่นอนว่าฉันยังคงสามารถเขียนแบบสอบถาม SQL ได้เมื่อจำเป็นต้องใช้พลังงาน แต่อย่างอื่นมันก็เป็นนามธรรมเบื้องหลังอย่างดี
ตอนนี้เปลี่ยนไปใช้การเขียนโปรแกรมเชิงฟังก์ชันดูเหมือนว่าสำหรับเฟรมเวิร์กเว็บ FP จำนวนมากเช่นลิงค์ต้องการการเขียนโค้ด SQL แบบสำเร็จรูปจำนวนมากดังในตัวอย่างนี้ Weblocks ดูเหมือนจะดีกว่าเล็กน้อย แต่ดูเหมือนว่าจะใช้แบบจำลอง OOP สำหรับการทำงานกับข้อมูลและยังต้องใช้โค้ดในการเขียนด้วยตนเองสำหรับแต่ละตารางในฐานข้อมูลของคุณดังตัวอย่างนี้ ฉันคิดว่าคุณใช้การสร้างโค้ดบางอย่างเพื่อเขียนฟังก์ชันการทำแผนที่เหล่านี้ แต่ดูเหมือนจะไม่เหมือนเสียงกระเพื่อม
(หมายเหตุฉันไม่ได้ดู Weblocks หรือ Links อย่างใกล้ชิดมากนักฉันอาจเข้าใจผิดว่าใช้อย่างไร)
ดังนั้นคำถามคือสำหรับส่วนการเข้าถึงฐานข้อมูล (ซึ่งฉันเชื่อว่ามีขนาดใหญ่พอสมควร) ของเว็บแอปพลิเคชันหรือการพัฒนาอื่น ๆ ที่ต้องการส่วนต่อประสานกับฐานข้อมูล sql เราดูเหมือนจะถูกบังคับให้ใช้หนึ่งในเส้นทางต่อไปนี้:
- อย่าใช้การเขียนโปรแกรมเชิงฟังก์ชัน
- เข้าถึงข้อมูลด้วยวิธีที่น่ารำคาญและไม่เป็นนามธรรมซึ่งเกี่ยวข้องกับการเขียนลิงก์ SQL หรือโค้ดที่มีลักษณะคล้าย SQL ด้วยตนเอง
- บังคับให้ภาษาที่ใช้งานได้ของเราเป็นกระบวนทัศน์หลอก OOP ดังนั้นจึงลบความสง่างามและความเสถียรของการเขียนโปรแกรมเชิงฟังก์ชันที่แท้จริงออกไป
เห็นได้ชัดว่าไม่มีตัวเลือกใดที่เหมาะ ได้พบวิธีหลีกเลี่ยงปัญหาเหล่านี้หรือไม่? มีปัญหาจริงๆหรือไม่?
หมายเหตุ: โดยส่วนตัวแล้วฉันคุ้นเคยกับ LISP มากที่สุดในส่วนหน้า FP ดังนั้นหากคุณต้องการยกตัวอย่างและรู้จักภาษา FP หลายภาษาเสียงกระเพื่อมน่าจะเป็นภาษาที่คุณต้องการ
ป.ล. : สำหรับปัญหาเฉพาะด้านอื่น ๆ ของการพัฒนาเว็บโปรดดูคำถามนี้