วิธีเขียนโค้ดที่จัดการได้ด้วยฟังก์ชั่นการเขียนโปรแกรม?


14

ฉันเพิ่งเริ่มต้นด้วยฟังก์ชั่นการเขียนโปรแกรม (กับ JavaScript และ Node.js) และจากลักษณะของสิ่งที่ดูเหมือนว่ารหัสที่ฉันเขียนจะกลายเป็นนรกหนึ่งของรหัสฐานในการจัดการเมื่อเทียบกับภาษาโปรแกรมที่มี ประเภทของกระบวนทัศน์เชิงวัตถุ

ด้วย OOP ฉันคุ้นเคยกับแนวทางปฏิบัติที่จะช่วยให้มั่นใจว่าโค้ดของคุณได้รับการจัดการและขยายได้อย่างง่ายดาย แต่ฉันไม่แน่ใจว่าของการประชุมที่คล้ายกันกับการเขียนโปรแกรมการทำงาน


4
JavaScript เป็นภาษาเชิงวัตถุดังนั้นคุณสามารถใช้ทักษะ OOP ของคุณต่อไปได้โดยใช้ Node.js
Jonas

5
ลองฟังก์ชั่น สิ่งเหล่านี้จะแก้ปัญหาได้เกือบทุกปัญหา
tp1

4
ต่อไปนี้เป็นแหล่งข้อมูลที่ดีในการทำให้ซอร์สโค้ดของคุณเรียบร้อยและเป็นระเบียบและสามารถจัดการได้: nodeguide.com/style.html
Daniel Bradley

2
เท่าที่ฉันรู้คุณลักษณะการเขียนโปรแกรมฟังก์ชั่นเดียวที่ JavaScript มีคือ lambdas (ฟังก์ชั่นที่แม่นยำกว่า, นิรนาม) และการส่งผ่านฟังก์ชัน หากคุณต้องการที่จะเรียนรู้การเขียนโปรแกรมการใช้งานคุณอาจจะต้องมองไปที่ Haskell หรือ F # / OCaml หรือ Scala หรือ Lisp
Rei Miyasaka

คำตอบ:


8

ในทางปฏิบัติแล้วโค้ดเบสขนาดใหญ่ที่ใช้งานได้จะยังคงต้องถูกแบ่งออกในระบบโครงสร้างบางประเภท หากคุณสะดวกสบายใน OOP คลาสต่างๆจะยังคงเป็นองค์ประกอบโครงสร้างตามธรรมชาติ คุณมุ่งมั่นเพื่อ "วัตถุที่ใช้งานได้": ฟังก์ชั่นที่เกี่ยวข้องกับแนวคิดจะอยู่ในคลาส แน่นอนคุณหลีกเลี่ยงสถานะที่ไม่ใช่การสนทนาและการพึ่งพาตัวแปรอินสแตนซ์

นอกเหนือจากโครงสร้างแล้วยังมีเทคนิคบางอย่างเช่นการประยุกต์ใช้ฟังก์ชั่นบางส่วนซึ่งเป็นที่ต้องการในโลกการทำงานสำหรับการขยายการบำรุงรักษาและการวางนัยทั่วไป แม้ว่าการเรียนรู้ที่จะรับรู้โอกาสเหล่านี้อาจเป็นเรื่องยากเมื่อทำงานในโหมดการทำงาน / วัตถุแบบไฮบริด โดยส่วนตัวฉันคิดว่ามันเป็นความคิดที่ดีที่จะทำงานในโหมดไฮบริด แต่เพื่อศึกษาและเล่นในสภาพแวดล้อมที่บริสุทธิ์กว่าเช่นที่ Haskell จัดทำขึ้น


2

ภาษาโปรแกรมเชิงฟังก์ชั่นสนุกกับแนวคิดที่ทรงพลังมากมายในการสร้างรหัสที่มีคุณภาพสูงตัวอย่างเช่นฟังก์ชั่นที่นำมาใช้บางส่วนองค์ประกอบของฟังก์ชั่น (อันนี้ทรงพลังจริงๆ และอย่าลืมโครงสร้างข้อมูลที่เปลี่ยนแปลงไม่ได้


1

แทนที่จะละทิ้ง OOP สำหรับ FP ลองเพิ่มด้วยรูปแบบ FP บางอย่าง เมื่อใดก็ตามที่คุณต้องการประมวลผลคอลเลกชันจะเป็นตัวเลือกที่ดีและชี้ไปยังชุดวิธีการทั่วไปเช่นแผนที่พับและลด ดู underscore.js และกระดูกสันหลังซึ่งเป็นกรอบ MVC ที่ใช้กันอย่างแพร่หลายในอดีต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.