การเขียนโปรแกรมฟังก์ชั่นเป็นสัตว์ประหลาดสำหรับฉัน ฉันเรียนรู้ F # และ Haskell เขียนโปรแกรมง่าย ๆ สองสามข้อและรักที่จะใช้มัน แต่ไม่เคยมี "แฟลชแห่งการเปิดเผย" ที่บางคนพูดถึง แต่อย่างช้าๆฉันสังเกตเห็นว่าฉันกำลังเขียนโค้ดที่มีความหมายไม่เปลี่ยนรูปแบ่งงานออกเป็นหลาย ๆ หน้าที่เล็กลงและพยายามใช้ผู้ร่วมประชุมให้มากขึ้นเรื่อย ๆ มันเป็นสิ่งที่ถ้าคุณชอบมันจะคืบคลานเข้าไปในงานของคุณเพราะคุณค่าของเทคนิคเหล่านั้นชัดเจนในตัวเอง
ตอนนี้สำหรับการฝึกอบรมจริงมากขึ้น: ฉันพบว่าสองแนวคิดจริงๆคลิกฟังก์ชั่นการเขียนโปรแกรมเป็นสไตล์สำหรับฉัน
ก่อนสไตล์ FP จะขึ้นอยู่กับโครงสร้างของข้อมูลไม่ใช่องค์ประกอบเช่นเดียวกับใน OOP ฉันดูบางอย่างเช่น List in C # ว่าเป็นเคล็ดลับที่ชาญฉลาดในการสร้างรายการแบบปลอดภัยซึ่งเป็นสิ่งที่ประกอบประเภท (สตริง) เป็นประเภทอื่น (รายการ) หลังจากเรียนรู้ FP ฉันมองดูข้อมูลทั่วไปมากขึ้นเช่น Monads ตอนนี้ รายการเป็นรูปแบบที่มีโครงสร้างที่รหัสสามารถใช้และมันประดับสตริง
ข้อสองและอาจมีประโยชน์มากกว่าสำหรับโปรแกรมเมอร์ C # / ASP คือแนวคิดที่ว่า FP ทำงานในการเรียกซ้ำและทำซ้ำในขณะที่ OOP ทำงานกับความผันแปรและการวนซ้ำ ฉันมักจะคิดว่าวงจรชีวิตของหน้า ASP เป็นประเภทของ FP ในขณะนี้: แต่ละคำขอจะถูกประมวลผลตั้งแต่เริ่มต้นไปจนถึงวงจรชีวิตทั้งหมดดังนั้นทั้งหน้าจึงเป็นผลหนึ่งโปรแกรมที่ใหญ่ช้าซ้ำแล้วซ้ำอีก หากคุณสามารถทำให้ความคิดนั้นแคบลงคุณจะได้รับแนวคิดที่ดีขึ้นว่าโปรแกรมที่จำเป็นสามารถจัดโครงสร้างรอบฟังก์ชันที่ใช้ในข้อมูลดำเนินการกับมันและส่งคืนข้อมูลใหม่แทนที่จะแก้ไขแบบเก่า
สิ่งกีดขวางที่ยากที่สุดสำหรับฉันที่จะเอาชนะด้วยวิธีนี้ก็คือความรู้สึกที่กำลังจมซึ่งคุณกำลังสูญเสียทรัพยากรจำนวนมากเมื่อใช้วัตถุที่ไม่แน่นอนจะช่วยประหยัดหน่วยความจำได้มากมาย ใน GC เราเชื่อมั่นและฉันต้องเรียนรู้ที่จะปล่อยให้เรื่องกังวลเกี่ยวกับประสิทธิภาพจนกว่าฉันจะเห็นโปรแกรมทำงานจริงและตรวจสอบว่ามีแม้จะมีและถ้าเป็นเช่นนั้นเพื่อใช้ profiler เพื่อดูว่าปัญหาอยู่ที่ไหน