Turning gears are the logo of co-scripts

 

Tam göbekten başlamış olacağım sanırım ama ancak böyle zevki çıkacak. Bildiğimi sandığım dili aslında bilmediğimi öğrenince keşfe karar verdim. Javascripti yeniden keşfediyorum ve bu maceramı sayfamda paylaşayım istedim. Başlamadan belirteyim, aceminin acemisi birisinin bu bilmiş cümlelerine lütfen çok takılmayın, ustaların gittiği yolda sadece 

Tüm modern dillerde bütün yazılan kodların içinde yaşadıkları bir alan yaratılmaya çalışılır. Değişkenlerle, metod ve özellikleriyle özgün ve öznel olan bu alan hem hareket serbestisi sağlar hem de gerçekten kapalı bir uzay alanı yaratır ki tüm tanımlar sadece burada bir anlam ifade etsin.

Javascript içinde de buna öykünmek için bir tasarım şeması var.

Javascript içinde herşey bir nesnedir (object), dilin kendisi bile...

Ve yine nesne yönelimli modern dillerin benzer dildüzenleri ile nesneleri ve özellikleri hiyerarşik olarak bağlamak için kullandıkları kendilerine has yöntemleri olduğundan, javascript içerisinde de benzer bir durum vardır.

Aslında bu anlattıklarımı "mış" "miş" ile anlatmalıyım zira yıllardır bu güzel dili bilmediğimi henüz farkediyorum.

Javascript'te ister inline (hmtl kodları arasında gömülü) ister dışarıdan dahil edilen harici dosya ile olsun elinizdeki tüm tanımlar eğer bir etki alanı içerisinde (scope) değilse her yerden ve doğrudan erişilen ortalık malı (global) değerlerdir. Masum gibi görünen bu globalizm karmaşaya ve elbette hatalara yol açabilir. Bu nedenle sadece tek bir iş için javascript satırı yazıyor bile olsak, elimizdeki her türlü iş malzemesini (değişkenler, fonksiyonlar, metodlar vb.) adı-sanı bilinen ve yaptığı iş ile ilgili bir ismi olan bir etki alanına koymakta fayda varmış. 

Eskiden ben dan-dun değişken ismi verir ve heryerde istediğim değişken ismini kullanırdım. Basit bir form kontrolünde sıkıntı çıkmasa bile, iş ve proje büyüdükçe tanımlanan değişkenler ve metodlar başa bela olmaya başlıyormuş.

En basitinden üzerinde çalışılan somut bir proje yoksa bile, js kodumuzu çalıştırdığımız sayfanın adını isim uzayı (namespace) olarak kullanabiliriz.

var uyeKaydi ={};

Yeni üye kaydı almak için hazırlanan uyekaydi.php (veya uyekaydi.aspx) sayfanın kontroller ve veri gönderimleri gibi işlerini yapan javascriptler için yaratılan isim uzayı yukarıdaki gibi olabilir.

Yukarıda bahsedildiği gibi nesnel hiyerarşileri ve özellikleri tanımlamak için javascript dilinin kullandığı dildizimi kuralı araya nokta (.) koymaktır.

İsim uzayımızın altındaki herşeyi bir nokta ile devam ettirebiliriz.

var uyeKaydi={};
uyeKaydi.herhangiBirsey=null;

gibi...

co-scripts tag image
ID:267 | Okunma:981