Blog.

JavascriptÔÇÖin Fonksiyonel Do─čas─▒ ile Tan─▒┼čma: Saf Fonksiyonlar, Fonksiyon Kompozisyonu ve Fonksiyonel K├╝t├╝phaneler

Cover Image for JavascriptÔÇÖin Fonksiyonel Do─čas─▒ ile Tan─▒┼čma: Saf Fonksiyonlar, Fonksiyon Kompozisyonu ve Fonksiyonel K├╝t├╝phaneler
Baris Guler
Baris Guler

Bu hafta, JavaScript Temelleri kursunun son derslerini tamamlad─▒k ve alt─▒ haftal─▒k bu harika ser├╝veni noktalad─▒k. Bu iki g├╝n boyunca, temel fonksiyonel programlama kavramlar─▒na derinlemesine dald─▒k. Kat─▒l─▒mc─▒larla birlikte ├Â─črendik ve ├Â─čretirken bir yandan kendimi de geli┼čtirme f─▒rsat─▒ buldum.

Saf Fonksiyonlar (Pure Functions): ─░┼če temiz ba┼člad─▒k. Saf fonksiyonlar, her zaman ayn─▒ girdilerle ayn─▒ ├ž─▒kt─▒y─▒ ├╝reten fonksiyonlar. Bu, kodumuzun daha tahmin edilebilir ve hata ay─▒klamas─▒n─▒n daha kolay hale gelmesini sa─čliyor. Bu a├ž─▒dan fonksiyonel programlamaya bakmak fayda sa─člad─▒─č─▒ndan bu konunun kat─▒l─▒mc─▒lar taraf─▒ndan do─čru anla┼č─▒lmas─▒na ├Âzen g├Âsterdim.

Fonksiyon Kompozisyonu (Function Composition): Hemen ard─▒ndan kodu daha okunabilir ve yeniden kullan─▒labilir hale getiren ve birden fazla fonksiyonu birle┼čtirerek daha b├╝y├╝k ve karma┼č─▒k i┼člemleri ger├žekle┼čtirme yetene─čini sa─člayan fonksiyon kompoze etme y├Ântemine de─čindik.

State Payla┼č─▒m─▒ndan Ka├ž─▒nma (Avoiding State Share) ve State G├╝ncellemesinden Ka├ž─▒nma (Avoiding State Update): State'in kontrol├╝n├╝ kaybetmemek i├žin bu 2 (iki) kavrama ├Ârneklerle g├Âzatt─▒k. Bu, uygulamalar─▒m─▒z─▒ daha g├╝venli ve s├╝rd├╝r├╝lebilir k─▒lmas─▒ a├ž─▒s─▒ndan global scope'taki payla┼č─▒lm─▒┼č state'i hi├ž mutate etmeden jenerik fonksiyonlarla yeni kopyalar─▒n─▒ yaratmaya odaklanmam─▒z─▒ sa─člad─▒.

Yan Etkiler (Side Effects): Yan etkileri anlad─▒k ve bunlar─▒ nas─▒l azaltabilece─čimizi ├Â─črendik. Bu, kodumuzun daha tutarl─▒ hale gelmesine yard─▒mc─▒ oldu─čundan b├Âylece s├╝rprizsiz yaz─▒l─▒m ak─▒┼člar─▒n─▒n nas─▒l yarat─▒labilece─čine de─činmi┼č olduk.

Dekleratif ve ─░mperatif Programlama (Declarative and Imperative Programming): ─░ki farkl─▒ programlama yakla┼č─▒m─▒n─▒ kar┼č─▒la┼čt─▒rd─▒k. Deklaratif programlama, daha a├ž─▒k ve anla┼č─▒l─▒r kod yazmam─▒za yard─▒mc─▒ oldu─čundan ve bir i┼č mant─▒─č─▒n─▒n o i┼či 'nas─▒l' de─čil 'ne' ile ├ž├Âzd├╝─č├╝ne olan vurgum oturumlar boyunca devam etti.

Y├╝ksek Seviye Fonksiyonlar (Higher Order Functions) ve Closure'lar: Bu g├╝├žl├╝ kavramlar─▒n hangi durumlarda i┼če yarayaca─č─▒ndan ve kodun 'ince ayar' seviyesindeyken bak─▒m─▒n─▒n nas─▒l yap─▒labilece─činden bahsettim.

Ayr─▒ca, Lodash ve Ramda gibi iki fonksiyonel k├╝t├╝phane ├╝zerinde ├žal─▒┼čmalar yapt─▒k. Bu k├╝t├╝phaneler, kodunuzu daha verimli ve h─▒zl─▒ hale getirdiklerinden ├Âzellikle spesifik baz─▒ durumlarda kodun daha okunabilir ve dekleratif hale getirmeye yard─▒mc─▒ olabileceklerinden de bahsettik.

Bu alt─▒ haftal─▒k ser├╝veni tamamlamaktan b├╝y├╝k keyif ald─▒m ve hem ├Â─črenme hem de ├Â─čretme a├ž─▒s─▒ndan b├╝y├╝k bir ilerleme kaydetti─čimi hissediyorum. Bu deneyim, daha fazla ├Â─črenme ve ├Â─čretme f─▒rsatlar─▒na a├ž─▒k oldu─čumun bir g├Âstergesi. ├ľ─črendiklerimizi payla┼čmaktan ve bu teknik konular─▒ ke┼čfetmekten de ayr─▒ca b├╝y├╝k mutluluk duyuyorum.

Bu harika yolculu─ča kat─▒lan herkese te┼čekk├╝r ederim. ─░lerleyen d├Ânemlerde ara┼čt─▒rd─▒─č─▒m ve y─▒llard─▒r bilgi sahibi oldu─čum / olaca─č─▒m konular hakk─▒nda daha fazlas─▒n─▒ ke┼čfetmek ├╝zere daha da derinle┼čmek i├žin sab─▒rs─▒zl─▒k duyuyorum. Okudu─čunuz i├žin te┼čekk├╝r ederim!

#JavaScript #FunctionalProgramming #ProgrammingConcepts #WebDevelopment