Haftalık Karıştırmalıklar #11 JavaScript Geliştirmek
Yazılımın farklı alanlarından içerik özetlerini derleyen e-bülten
Readware Dev ekibi olarak, kendimize bir çerçeve çizme gereği duyduk ve bundan sonraki yayınlarımızda JavaScript’e, kütüphanelerine ve web geliştirme pratiklerine odaklanmayı kararlaştırdık. Bu kararı alırken, web geliştirme alanında uzmanlaşmak isteyenlerin ihtiyaçlarını dikkate aldık ve JS alanında kendini geliştirmek isteyenler için faydalı olacak araştırmalar yaptık. Biz web geliştirme alanında ilerlemek isteyenler için faydalı bir kaynak olmayı hedefliyoruz, konseptleri ve yenilikleri takip ederek bunları bültenlerimizde sizinle buluşturmayı amaçlıyoruz.
Her JS Geliştiricinin Bilmesi Gereken 4 Konsept
JavaScript ile çalışırken bilmemiz gereken birkaç önemli kavram vardır, işte bunlardan dördü:
IIFE'ler, tanımlandıkları anda hemen çalıştırılan, kodun hemen çalıştırılması için bir yol sağlayan ve içlerinde bildirilen değişkenlere dışarıdan erişimi engelleyerek veri gizliliği sunan işlevlerdir.
Scope (Kapsam), değişkenlerin farklı bağlamlardaki erişilebilirliğini belirler. Yerel kapsam, bir işlevin sınırları içindeki her şeye erişime izin verir ve global kapsam ise bu sınırların dışındaki her şeyi ifade eder.
Closures (Kapatmalar), dış işlevde tanımlanan değişkenlere erişebilen ve değişkenleri, dizileri veya yöntemleri geçirerek davranışı genişletmek için kullanışlı olan diğer işlevlerin içindeki işlevlerdir.
Hoisting (Kaldırma işlemi), değişken ve işlev bildirimlerini yürütülmeden önce geçerli kapsamın en üstüne taşıma işlemidir ve bir işlevi tanımlanmadan önce çağırmanıza olanak tanır. Hoisting’i anlamak, JavaScript kodunda beklenmeyen sonuçlardan kaçınmaya yardımcı olur.
Kısacası, JavaScript'e yeni başlıyorsanız veya becerilerinizi tazelemek istiyorsanız, bu kavramlara aşina olmak çok önemli. Sonrasında bu konularda ustalaşarak daha verimli ve etkili kod yazabilir ayrıca daha etkileşimli ve dinamik web siteleri oluşturabilirsiniz.
Abdullah Karaman
Javascript Closures’i Anlamak
JavaScript, bir fonksiyon odaklı dil olarak bilinir. Bu dil, çok yüksek bir derecede bağımsızlık sağlar. Bir fonksiyon yaratıldıktan sonra, başka bir değişkene atanarak diğer bir fonksiyona argüman olarak gönderilebilir ve sonra tamamen farklı bir yerden çağrılabilir.
Fonksiyonlar, kendi dışındaki değişkenlere erişebilir ve bu özelliği sıklıkla kullanılır. Ancak, dışarıdaki değişkenler değiştirildiğinde ne olur? Fonksiyon, en son değerini mi alacak yoksa yaratıldığında var olan değeri mi?
Ayrıca, bir fonksiyon başka bir yere gönderildiğinde ve orada çağrıldığında, yeni yerinden dışarıdaki değişkenlere erişebilir mi? Bu sorular, farklı diller tarafından farklı şekillerde cevaplanır . Okumanızı önerdiğimiz ve öğrenim aşamasında oldukça sevdiğimiz bu yazıda, JavaScript’in bu sorulara nasıl cevap verdiğini öğreneceksiniz.
Uğur Akdoğan
JS’te Fonksiyon Yazarken Nelere Dikkat Etmeliyiz?
Temiz ve düzenli kod yazmak söz konusu olduğunda fonksiyonlar, en kritik konulardan biridir. Bu makalede, JavaScript'te fonksiyon yazmaya yönelik bazı uygulamalara (best practices) bakarak firmaların sizinle daha yakın çalışmak istemelerine yardımcı olacağız. Peki, JavaScript'te temiz ve düzenli fonksiyonlar yazmanın yolları nelerdir?
Akılda tutulması gereken ilk şey, her fonksiyonun yalnızca bir şey yapması gerektiğidir.
Argüman sayısını da az tutmak en iyisidir, ideal olarak ikiden fazla olmamalıdır.
Bir fonksiyonun kendi kapsamı dışındaki şeyleri değiştirmekten kaçınmak gerekir, çünkü bu kodun anlaşılmasını zorlaştırabilir.
Ya bir şeyi değiştirin ya da bir yanıt verin, ancak ikisini birden yapmayın ve hata işleme için ayrı bir fonksiyona sahip olun.
Son olarak, kodu tekrarlamaktan kaçının ve bunun yerine tekrarlanan mantığı ayrı işlevlere ayırın.
Basit ama etkili bu metotları takip ederek, bakımı daha kolay olan, temiz ve organize edilmiş kodlar yazabilirsiniz.
Daha Hızlı Öğrenebilir Miyiz?
Hiç kendinizi öğretici cehenneminde sıkışmış, fazla ilerleme kaydettiğinizi hissetmeden öğreticiden öğreticiye geçerken buldunuz mu? Ya da belki de yeni bir beceriyi kendi başınıza öğrenmeye çalıştınız, ancak hayal kırıklığına uğrayıp pes ettiniz? Bir yazılım geliştirici olarak, üretken olabilmek için yeni dilleri, frameworks (çerçeveleri) ve araçları hızlı bir şekilde öğrenebilmek çok önemlidir. Bu makalede Josh W. Comeau, etkili ve verimli bir şekilde öğrenmeye yönelik ipuçlarını paylaşıyor.
Comeau’ya göre etkili öğrenme, rehberli ve rehbersiz öğrenmenin dengesiyle mümkündür. Rehberli öğrenme, eğitimleri takip etmeyi, kurslara katılmayı ve video izlemeyi içerirken; rehbersiz öğrenme, kendi projelerinizi oluşturmayı, eğitimleri genişletmeyi ve belgelerde bilgi aramayı içerir. Bu ikisini harmanlamak, problem çözme becerilerini geliştirmeye yardımcı olabilir ve öğretici cehenneminde (tutorial hell) takılıp kalmayı veya tek başına rehbersiz öğrenmeyle mücadele etmeyi önleyebilir. Comeau ikisini karıştırarak: öğreticileri takip ederken kasıtlı hatalar yapmayı, kodla denemeler yapmayı ve ortaya çıkan hataları veya beklenmedik sonuçları araştırmayı, iyi bir formül olarak ortaya koyuyor. Bu durum, öğrenilen kavramlar için zihinsel bir model oluşturmaya yardımcı olurken aktif öğrenmeyi de teşvik eder.
Makalenin Türkçe çevirisini Gizem Korkmaz yapmış, ona da buradan ulaşabilirsiniz.
Abdullah Karaman
Tavsiyeler: Frontend Geliştirme Alanında Öne Çıkaracak Kaynaklar
Bu haftaki bültenimizde frontend geliştiriciler için binlerce lira harcamalarına gerek kalmadan kullanabilecekleri, oldukça faydalı olabilecek kaynakları sıralayacağız. Haydi başlayalım.
1. Scrimba
Scrimba, HTML, CSS, JavaScript ve React gibi web geliştirme teknolojileri hakkında eğitimler sunan çevrimiçi bir öğrenme platformudur. Bu kurslar, takip edilmesi kolay ve etkileşimli olacak şekilde tasarlanmıştır. Scrimba'nın göze çarpan özelliklerinden biri, kullanıcıların kurs materyali üzerinde çalışırken doğrudan tarayıcıda kodu düzenlemesine ve çalıştırmasına olanak tanıyan "canlı kod" özelliğidir.
2. JavaScript30
JavaScript30, web geliştiricisi Wes Bos tarafından oluşturulan ve öğrencilere yalnızca Vanilla JavaScript kullanarak 30 projeyi nasıl oluşturacaklarını öğreten ücretsiz bir kurstur. Kurs, her biri belirli bir proje veya konsepte odaklanan 30 öğretici videodan oluşur. JavaScript30'da kapsanan projeler, basit alıştırmalardan, web uygulamaları oluşturmayı içeren daha karmaşık projelere kadar uzanır.
Frontend Mentor'daki her görev, açıklamalar ve resimler gibi gerekli tüm içerikleri barındırır. Geliştiriciler projeyi tamamlamak için uğraşırlar. Proje tamamlandıktan sonra Front-end Mentor ekibi tarafından incelenir. Frontend Mentor, geliştiricilerin becerilerini geliştirmek ve projeleri hakkında kişiselleştirilmiş geri bildirim almanızı sağlar.
The Odin Project öğrencilerin öğrendiklerini uygulamalarına ve potansiyel işverenlere sergilemek üzere bir çalışma portföyü oluşturmalarına yardımcı olan dersler, etkileşimli alıştırmalar ve projeler içerir.
5. Codevolution
Codevolution kanalındaki öğreticiler, programlamaya yeni başlayanlar için bile takip etmelerini kolaylaştıracak şekilde sunulur. Kanal ayrıca, yeni bir beceri öğrenmek veya belirli bir konudaki anlayışlarını derinleştirmek isteyenler için yararlı bir kaynak olabilir.
JavaScript.info'nun göze çarpan özelliklerinden biri, programlamada yeni olanlar için kolay anlaşılan, açık ve öz yazım stilidir. Site, yazılım öğrencilerinin öğrenim süreçlerine, pratik yapmalarına ve pekiştirmelerine yardımcı olacak şekilde kurgulanmıştır.
Daha detaylı inceleyebilmeniz için kaynak makaleyi bırakıyoruz.
Hatice Nur Coşkun