Fonksiyonel programlama ile yönetilebilir kod nasıl yazılır?


14

Ben sadece işlevsel programlama ile başladı (JavaScript ve Node.js ile) ve ben yazıyorum kod gibi görünüyor şeylerin bakış açısından yönetmek için bir kod tabanı bir cehenneme büyüyecek gibi bir programlama dilleri ile karşılaştırıldığında bir çeşit nesne yönelimli paradigma.

OOP ile kodunuzun kolayca yönetilmesini ve genişletilmesini sağlayacak uygulamalara aşinayım. Ancak fonksiyonel programlama ile benzer bir sözleşmeden emin değilim.


4
JavaScript nesneye yönelik bir dildir, bu yüzden devam edin ve Node.js kullanarak OOP becerilerinizi kullanın
Jonas

5
fonksiyonları dene. Bunlar neredeyse her sorunu çözecek.
tp1

4
Düğüm kaynak kodunuzu düzenli ve düzenli ve dolayısıyla yönetilebilir tutmak için harika bir kaynak: nodeguide.com/style.html
Daniel Bradley

2
Bildiğim kadarıyla, JavaScript'in sahip olduğu tek işlevsel programlama özelliği lambdas (daha doğru, isimsiz işlevler) ve işlev geçişidir. Fonksiyonel programlamayı öğrenmek istiyorsanız, muhtemelen Haskell veya F # / OCaml veya Scala veya Lisp gibi bir şeye bakmalısınız.
Rei Miyasaka

Yanıtlar:


8

Uygulamada, büyük bir işlevsel kod tabanının bir tür yapısal sistemde bölünmesi gerekecektir. OOP'ta rahatsanız, sınıflar doğal yapılanma unsuru olarak kalır. "İşlevsel nesneler" için çabalarsınız: kavramsal olarak ilgili işlevler bir sınıfa yerleştirilir. Elbette, konuşma dışı durumdan ve örnek değişkenlere güvenmekten kaçınırsınız.

Yapının ötesine geçerek, fonksiyonel dünyada uzama, sürdürülebilirlik ve genelleme için tercih edilen kısmi fonksiyon uygulaması gibi bazı teknikler vardır. Bununla birlikte, hibrit bir işlev / nesne modunda çalışırken bu fırsatları tanımayı öğrenmek zor olabilir. Şahsen, hibrit modda çalışmak , Haskell tarafından sağlananlar gibi daha saf bir ortamda çalışmak ve oynamak iyi bir fikir olduğunu düşünüyorum .


2

Fonksiyonel programlama dilleri, yüksek kaliteli kod oluşturmak için birçok güçlü kavramdan yararlanır, örneğin: Kısmi uygulanan fonksiyonlar, fonksiyon kompozisyonları (bu gerçekten güçlü ve favorim), makrolar, yüksek dereceli fonksiyonlar. Ve değişmez veri yapılarını unutmamak için.


1

FP için OOP'den vazgeçmek yerine, bazı FP desenleriyle büyütmeyi deneyin. Bir koleksiyonu işlemek istediğiniz her zaman iyi bir adaydır ve harita, katlama ve azaltma gibi ortak bir FP yöntemlerine işaret eder. Birincisini geniş ölçüde kullanan bir MVC çerçevesi olan underscore.js ve omurgaya bir göz atın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.