Fonksiyonel Programlama Nedir?

Bir programlama paradigması, birkaç tanımlayıcı ilkeye dayalı olarak yazılım inşası hakkında düşünmenin bir yoludur. Fonksiyonel programlama, saf fonksiyonlardan oluşan ve paylaşılan durum , değişken veriler ve yan etkilerden kaçınan böyle bir paradigmadır . Fonksiyonel programlama zorunlu olmaktan çok bildirimseldir ve nesne yönelimli programlamanın aksine, uygulama durumu saf fonksiyon aracılığıyla akar.

programming-evolution

İşlevsel kod, zorunlu koddan daha kısa, daha öngörülebilir ve test edilmesi daha basit olma eğilimindedir, ancak dik bir öğrenme eğrisine sahip olabilir, bu nedenle öğrenmesi göz korkutucu olabilir. Umarım bu makale sizin için bazı şeyleri açıklığa kavuşturur ve Fonksiyonel programlama ve faydaları hakkında temel bir anlayış sağlar. Fonksiyonel programlamanın ne olduğunu anlamaya başlamak için bazı temel kavramları anlamakla başlamalısınız.

1. Saf Fonksiyonlar

Öğrenilecek ilk temel kavram saf fonksiyonlardır. Saf Fonksiyonlar, güvenilir eşzamanlılık, React ve Redux uygulamaları ve Fonksiyonel programlama dahil olmak üzere çeşitli amaçlar için gereklidir. Bir işlevi “saf” yapan şeyin üzerinden geçelim:

  • Aynı girdileri verilen saf bir fonksiyon, her zaman aynı çıktıyı verir.
  • Saf bir fonksiyonun hiçbir yan etkisi yoktur (bununla ilgili daha fazla bilgi daha sonra)

Saf fonksiyonların dış durumdan tamamen bağımsızdır, bu nedenle paylaşılan, değişebilir durumla ilgili birçok hataya karşı bağışıktırlar. Bu bağımsızlık aynı zamanda saf fonksiyonların hareket ettirilmesini, yeniden düzenlenmesini ve kodda yeniden düzenlenmesini son derece kolay hale getirerek programlarınızı gelecekteki değişikliklere daha uyumlu hale getirir.

2. Paylaşılan Durumdan Kaçının

Paylaşılan durum, paylaşılan bir kapsamda veya kapsamlar arasında geçirilen bir nesnenin özelliği olarak var olan herhangi bir değişken, nesne veya bellek alanıdır. Paylaşılan durumla ilgili sorun, bir işlevin etkilerini anlamak için, Fonksiyonun kullandığı veya etkilediği her paylaşılan değişkenin tüm geçmişini bilmeniz gerektiğidir. Paylaşılan durumla ilgili ikinci bir sorun, Fonksiyonların çağrılma sırasını değiştirmenin bir dizi hataya neden olabilmesidir.
Fonksiyonel programlama, mevcut verilerden yeni veriler türetmek için değişmez veri yapılarına ve saf hesaplamalara güvenmek yerine paylaşılan durumu önler.

3. Değişmezlik

Bir hatırlatma olarak, değişmez bir nesne, oluşturulduktan sonra değiştirilemeyen bir nesnedir. Değişmez bir nesneyi değiştirmek istiyorsanız, sonraki en iyi şey yeni değerle yeni bir nesne oluşturmaktır. Değişmezlik, fonksiyonel programlamanın merkezi bir kavramıdır, çünkü onsuz durum geçmişi kaybolur ve hatalar yazılımınıza sızabilir.

4. Yan etkiler

Yan etki, çağrılan fonksiyonun dönüş değeri dışında gözlemlenebilen herhangi bir uygulama durumu değişikliğidir. Yan etkilere örnekler:

  • Herhangi bir harici değişkeni veya nesne özelliğini değiştirme
  • Konsolda oturum açma
  • Bir dosyaya yazma

Fonksiyonel programlama, yazılımınızın genişletilmesini, yeniden düzenlenmesini, hata ayıklamasını, test edilmesini ve bakımını kolaylaştıran yan etkileri önler.

5. Bildirimsel ve Zorunlu

Fonksiyonel programlama bildirimsel bir paradigmadır, yani program mantığı akış kontrolünü açıkça tanımlamadan ifade edilir. Zorunlu kodun genellikle ifadelere, bazı eylemleri gerçekleştiren kod parçalarına dayandığı durumlarda, bildirime dayalı kod, bazı fonksiyon çağrıları, değerler ve operatörlerin bir kombinasyonu yoluyla bir değeri değerlendiren kod olan ifadeleri kullanır. Başka bir deyişle, bildirim programları akış kontrol sürecini soyutlar ve veri akışına odaklanır: ne yapmalı; nasıl abstracted alır.

Çözüm

Fonksiyonel programlama, paylaşılan durum ve yan etkiler yerine saf işlevleri, değişken veriler yerine değişmezliği ve zorunlu akış denetimi yerine işlev bileşimini tercih eder. Fonksiyonel programlamanın anlaşılması genellikle daha kolaydır çünkü durumu değiştirmez ve yalnızca sağlanan girdiye bağlıdır. Benzer nedenlerle, bildirime dayalı bir programı test etmek ve hatalarını ayıklamak da daha kolaydır.

Yorumlar

Bu gönderi için yorum yapılmadı.