Photo by Raphaël Biscaldi on Unsplash

JAVASCRIPT’IN TARIHÇESI

JS Meta Programming (Dinamik Kod)

Önce konuya Yazılım Geliştiricilerinin genelde yazdığı Statik Kodu tanıtarak başlayalım 😃

Statik Kod Nedir ?

Geliştirici kodunu yazar. Bu kod ilgili ortamda çalıştırılır.. Örneğin kişinin ismini ve yaşını verdiğimizde doğumu ekrana basan bir kod yazalım..

sayBirth Statik Kodu

Ama her zaman kodumuzu bir Geliştirici yazması yerine bir takım araçlar ile tasarlamasını bekleyebiliriz. Neden ?

Çünkü Domain/Alan uzmanı geliştiricilere statik bir takım kodlama gereksinimleri sağlayamıyordur, işin doğası gereği kurulan mekanizmalar ya ileride değişecek veya daha sonradan tasarlanması gerekecektir. Konuyu biraz daha açmak için örnekler vermek istiyorum.

Oyun Level Tasarımı : Normalda bir Oyun Motoru yazılır ve bu oyun motorunun kendisine verilen Level (Bölüm) içerisindeki Karakterleri, Boss’u ve oluşturmak için Oyun Editörleri bulunur. Bu oyun editörlerine bu eşyaları ve karakterleri koyduktan sonra bir senaryo koşulmasını ve bu karakterlerin davranışlarının tanımlanması gerekir. İşte burada bir Scripting yazılması gerekir. Bu Scripting dillerden faydalanır. Lua ve Python

Sigorta ve Bankacılık Skorlama ve Risk Sermaye Koşulları: Günümüz o kadar hızlı değişiyor ki Sigorta ve Bankacılık için Risk ve Sermaye koşulları sürekli Ekonomi, Afet, Deprem vs vs.. konulardan etkilenir. Bu değişikliklerin Skorlama ve Risk durumlarına Alan Uzmanları tarafından yansıtılması gerekiyor , İşte burada Skorlama araçları ve Kural Motorlarından oluşmuş altyapılar devreye giriyor. Bu sayede arka planda bu yapılara göre Dinamik Kod Mekanizmaları çalıştırılıyor..

AdHoc Araçları, Business Intelligence , Karar Destek Sistemleri : Şirket yöneticilerinin işletme hakkında sağlıklı kararlar alabilmesi için bu Raporları dinamik oluşturabilmeliler. Özelleşmiş Dinamik Dashboardlar oluşturabilmeliler. Bu da verinin doğru şekilde çekilmesinden , birleştirilmesinden ve doğru görsel ve çizelgeler ile Dashboard gösterilmesi ile yapılabilir. Bu tip mekanizmalar arka planda bir takım dinamik yapıların oluşturulmasını içeriyor.

Uygulama Geliştirmek için No-Code, Low-Code Araçları : Bu tip araçlar sizin uygulama bileşenleri ve bunlar arasındaki ilişki ve bağlantılarını tanımlayarak dinamik bir takım scriptler yazarak bir uygulama oluşturmanızı sağlar.

BDD için Test Araçları : Bazı uygulamaların End-to-End testlerini statik kodlamak sürekli kırılgan olmasına ve sürekli bakıma neden olabilir. Birde Testi ilgili İş alanının uzmanlarının bu testleri yazması daha doğru olacaktır. Bu tarz yapıların kurulması için Cucumber vb… test araçları bulunur ve bu araçlar arka planda dinamik olarak test kodlarının çalıştırılmasını sağlar..

Özetle burada bahsettiğim Dinamiklik.. Kodu bir takım araçlar ve scripting dilleri ile sonradan kod içerisinde çalıştırabilecek betikler şeklinde hazırlama, kaydetme ve daha sonra istenildiğinde kullanabilme (başkalarının kullanmasını sağlama) ve güncelleme yeteneklerinin olmasıdır.

Dinamik Kod Üretme ve Kullanma Süreci

Peki Javascript bu Dinamik kodları oluşturma ve çalıştırma nasıl olur ?

  • Komutlarınız Statik Tanımlanmış ise kullanıcının bunları belli sırada dizmesi ve çalıştırmasını sağlayacak iş akışlarını bir miktar if/else veya switch veya tanımlı bir Map içerisinden çağırarak yapabilirsiniz.
  • İkinci yöntemde tamamen Scripting bir kod yazdırıp bu kodun çalıştırılmasını sağlayabilirsiniz.

Biz 2nci yöntemin JS içinde nasıl yapıldığına bakacağız. İlki JS içerisindeki eval komutudur..

Eval komutu calıstırma

Diğer bir yöntemde new Function yöntemidir. new Function yöntemi scope ve bazı alanlarda JS koruma sağlar.

new Function

Üçüncü bir yöntemde Node.JS ile birlikte gelen. VM context’inde string kod betiklerini çalıştıracak hale getirmektir..

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store