Nesne yönelimli tasarım hakkında düşünürken SOLID ilkelerini oldukça faydalı buldum .
İşlevsel programlama için uyarlanmış benzer / eşdeğer bir dil-agnostik ilke seti var mı?
Nesne yönelimli tasarım hakkında düşünürken SOLID ilkelerini oldukça faydalı buldum .
İşlevsel programlama için uyarlanmış benzer / eşdeğer bir dil-agnostik ilke seti var mı?
Yanıtlar:
Eşdeğerleri bulmak biraz zor ama deneyebilirim:
SOLID, işlevsel / zorunlu bölgeler için de iyi bir fikir olarak ortaya çıkıyor.
SRP - 'Sadece bir şeyi yap', ilk önce zorunlu programlamadan alınmıştır. Küçük, odaklanmış işlevlere sahip olmak iyidir.
OCP - Kodları değiştirmeden davranışları değiştirmenize izin vermek iyidir. Fonksiyonel programlama, kalıtımdan çok daha yüksek dereceli fonksiyonlar kullanır, ancak prensibi tutar.
LSP - Bazı arayüz sözleşmelerine uymak, işlevsel programlamada nesne yönelimi kadar iyidir. Eğer bir sıralama işlevi karşılaştırıcıya sahipse, '0'ın, negatif sonuçlardan daha az, pozitif sonuçlardan daha büyük' davranışına eşit olmasını beklersiniz.
ISS - Çoğu işlevsel dilde hala yapılar var. Bir fonksiyon için gereken en küçük veri setini belirlemek hala iyi bir uygulamadır. Verilere en az belirli bir arayüze gereksinim duyma (neden T Numaralandırmaları da iyi çalışıyorsa, neden Listesi Listelerini kullan)?
DIP - Bir fonksiyona parametreler belirlemek (veya bunları almak için daha yüksek dereceli bir fonksiyon), fonksiyona bir değer elde etmek için zor kodlama yapmak yerine, fonksiyon programlamada nesne yönelimli olduğu kadar iyidir.
Nesneye yönelik programlama yaparken bile, bu ilkelerin çoğu nesnelerdeki yöntemlerin tasarımı için de geçerlidir.