JS ile Fonksiyonel Programlama
Son Güncellenme Tarihi: 26.11.2022
©Copyright: OnurDayibasi
JavaScript öğrenme sırasında ES6 (EcmaScript 6) ile gelen bir çok güncellemenin, yani JavaScript’deki büyük değişiklikler ile kendisine sevdiren JS programlama dilinin aslında temellerinde fonksiyonel programlama yapılarının olduğunu öğrenmem beni fonksiyonel programlamayı daha iyi anlamaya itti.
İlerleyen zaman içerisinde bir çok UI kütüphanesinin (React, vb..) yapısında da fonksiyonel programlama temelleri içerdiğini farkettim. Bu kitapçığın amacı Fonksiyonel Programlamanın neleri kapsadığı ve biz geliştiricilerin yazılım geliştirme paradigmalarımızı nasıl değiştebileceğini anlaması.
INDEKS
- Giriş Bölümü
- Imperative/Declarative Programlama
- Imperative ve Declarative Kavramları
- Imperative ve Declarative Örnek Kullanımları
- Fonksiyonel Programlamaya Örnek
- Fonksiyonel Programlamanın İlk Oluşumu
- Fonksiyonel Programlamanın Gelişimi
- Fonksiyonel Programlamanın İlk Dönemleri
- Fonksiyonel Programlamanın Arka Plana Atıldığı Dönemler. 1975–2005
- iPhone, iPad SDK ve Dağıtık Kodlamanın Yaygınlaşması (2005–2015)
- ES6 ile Birlikte (2015..)
- Pure Function (Saf Fonksiyon)
- High-Order Functions
- Döngü (Loop) İşlemlerinde Herkes Tarafından Çok Kullanılan Mantıkları Belli Fonksiyonlarda Toplama
- Sabit İşi Yapan Template Fonksiyon Oluşturma
- Currying Functions
- Birbirlerini Kapsayan Fonksiyonların Çağrılması
- Function Accepting Functions
- Partial Function Applications
- Point-Free Style
- Soyutlama ve Kapsama (Abstraction & Composition)
- Soyutlaştırmak Aslında Bir Basitleştirme İşlemidir.
- Fonksiyonel Programlama’da Soyutlama ve Kapsama
- Sonuç
- ADT (Abstract Data Types)
- Data Types (Veri Tipleri)
- ADT (Abstract Data Types) Nedir?
- Functors ve Categories
- Functor Nedir ?
- Functor Yasaları
- Functor Ne İçin Kullanabiliriz ?
- Yorum
- Monad Nedir?
- Monad Ne İşimize Yarıyor ?
- Monad Nedir?
- Object-Oriented Programlama ve Tarihçesi
- Büyük Fikir
- Object-Oriented Programlamanın Özü
- İyi Bir MOP(Monitoring-Oriented Programming) Nasıl Olmalı?
- Object Composition (Nesneleri Birleştirme)
- React Composition vs. Inheritance
- React Code Sharing Yöntemleri
- Abstraction (Soyutlama)
- Inheritance ile Soyutlama (Abstraction)
- Kalıtım Türleri (Inheritance Types)
- Functional inheritance (Fonksiyonel Kalıtım)
- Concatenative inheritance (Birleştirici Kalıtım)
- Prototype Delegation ( Delegasyon ile Kalıtım)
- Inheritance over Composition
- Factory Functions — Obje Üretim Fonksiyonları
- Obje Tanımlama
- Destructuring İşlemleri
- Default Parameters
- Rest Kullanmak
- Factory Functions - Functional Mixins
- Property Üzerinden Obj Oluşturma
- Factory Functions for Mixin Composition
- Sınıflar üzerinden Composition Neden Zor ?
- React Hooks Nedir?
- The Delegate Prototype
- The .constructor Property
- Sınıftan → Factory Büyük Değişim
- Sınıf ile Factory Fonksiyonun Kıyaslanması
- Performance and Memory
- Tip Kontrolü (Type Checking)
- Sınıflar Dikkatli ve Doğru Kullanmak.
- Fonksiyonlar ile Birleştirilebilir (Composable) Veri Türleri
- Bunu Herhangi Bir Veri Türüyle Uygulayabilirsiniz.
- Lenses
- Lensleri Farklı Şekillerde Tanımlama
- Lensler Functor özelliği ile Map Yapıları Üzerinde Çalışır.
- Özet
- Transducers
- JS’in Güçlü ve Doğru Kullanılması
- Make the function the unit of composition. One job for each function.
- Omit needless code.
- Use Active Voice
- Avoid a Succession of Loose Statements
- Keep related code together.
- Put statements and expressions in positive form.