Sweet.js ile JavaScript Macrolar'a Giriş
03 Jul 2014Merhabalar,
Bildiğiniz gibi, JavaScript’te bir çok şeyi tekrar ederek aslında aynı kodu sürekli yazıyoruz ve bu çoğu zaman büyük zaman kaybı ve kod karmaşası olarak dönüyor.
Bu kod üzerinde tekrar ettiğimiz ve aslında daha kolay olabilecek bir çok şey var.
Biraz daha deklaratif ve daha okunabilir/düzenlenebilir bir kod.
Hatta biraz daha kısaltarak,
desek hiç de fena olmazdı. Bunun için kullanacağımız araç, Mozilla tarafından geliştirilen Sweet.js.
Sweet.js Macromuzu macro editor kullanarak düzenleyebiliriz.
Şimdi yukarıda öngördüğümüz makroyu yazalım, ama öncesinde bir makroyu nasıl yazdığımıza bakalım:
şeklinde bir yapı ile makromuzu tasarlıyoruz. Ve her değişkenimizin başına bir $
işareti koyuyoruz.
Çağırmak istediğimiz zaman ise
diyerek makromuzu çağırıyoruz.
Bu makroyu şu şekilde kullandığımızda:
aşağıdaki sonucu elde edeceğiz:
Makro Tasarımı
Tabii bu çok basit bir örnek, şimdi yukarıda kurguladığımız for
makrosunu deneyelim:
Yukarıdaki örneğin aşağıdaki tasarım şablonuna denk geldiğini hissedebilirsiniz:
Bu noktada $value
değeri 10
, $index
olarak index
ve $code
olarak { console.log(index); }
vermiş oluyoruz. O halde hemen makromuzu yazalım:
...
yazdığımız yere, bu makronun tam olarak neyi karşıladığını yazalım;
Artık bir makroya sahibiz:
dediğimizde
şeklinde bir çıktı sağlamış olacağız.
Şimdi bu makroyu biraz daha genişletelim ve yeni bir tasarım daha ekleyelim,
Bu kez tasarımda başlangıç değerini de verelim. Yani
yazdığımızda döngü 10
dan başlasın:
Şimdi to
makrosu iki farklı tasarıma farklı şekilde cevap verebiliyor hale geldi.
dediğimizde
çıktısı alacağız.
Makroların Birlikte Kullanımı
Sweet.js’in güzel bir tarafı da şu ki, bir makro diğer bir makroyu kullanabiliyor.
Şimdi hemen bunu yukarıdaki örneği geliştirerek yapalım:
to 30 start from 10 as i
gibi bir şablon daha da güzel hale getirilebilir:
dersek, daha okunabilir bir hale gelecek gibi görünüyor. O halde bir from
makrosu yazmamız gerekecek.
Bu makroyla yukarıdaki şablonu tanımlamış olduk, şimdi bu makro içerisinden to
makrosunu uyandıralım:
dediğimizde, from
makrosu, to
makrosunu da çağırmış olacak.
Bütün olarak aşağıdaki kodu deneyelim:
Bu şekilde yeni bir döngü sağlayan makro oluşturmuş olduk.
Sweet.js çok daha detaylı bir makro kütüphanesi ve bu anlamda detaylıca incelemeniz çok faydalı olacaktır. Makro kullanımlarında tekrarlar, şablonlar, ‘hijyen’, infix
gibi konuları detaylıca incelemek için http://sweetjs.org/doc/main/sweet.html adresine göz atmanız son derece faydalı olur :)
Vaktim olursa ikinci kısmını da yazmayı planlıyorum :)