ES Module Nedir ve Nasıl Kullanılır?

ES Module Nedir ve Nasıl Kullanılır?

ES Module Nedir ve Nasıl Kullanılır? konulu makalemiz sayesinde JavaScript tarafında kullanılan modüllerin işleyişi hakkında bilgi edinebilirsiniz Katmanlı programlamada önemli bir rolü olan bu modüllerin kullanımı için ipuçları ve örnekler de veriyoruz Hemen okumaya başlayın ve uzmanlaşın!

ES Module Nedir ve Nasıl Kullanılır?

ES Module, JavaScript dosyalarını modüler hale getirmek için kullanılan bir özelliktir. Modüler programlama, kodların daha organize ve yönetilebilir hale getirilmesini sağlar. Bu sayede değişiklik yapmak veya eklemek daha kolaydır. ES Module ile modüler programlama yapmak da oldukça kolaydır.

ES Module, export ve import işlemleri ile veri alışverişi yapar. Export edilen verilerin import eden dosyada kullanılması mümkündür. Export edilen verilerin hepsi kullanılmak yerine sadece belirli kısımları kullanılmak istenirse named export kullanılır. Export etmek istediğimiz tek bir veri varsa export default kullanılır.

ES Module kullanarak kodların modül halinde organize edilmesi, daha düzenli ve anlaşılır bir kod yapısına sahip olunmasını sağlar. Ayrıca, module fallback özelliği sayesinde hata durumunda daha önce belirlenen bir modül yüklenir ve hata önlenir.

ES Module kullanmak oldukça kolaydır. Bir modül oluşturmak için, export işlemi yapılması gereklidir. Export edilen modül import edildiğinde ise, kullanılabilir hale gelir. ES Module tanımlama işlemi, HTML sayfasında module script tag ile yapılır. Alternatif olarak, bir module loader kullanarak dinamik olarak import işlemi yapılabilir.

ES Module kullanımının performansı artırması, scope kontrolü sağlaması ve arama/yönetim kolaylığı sağlaması gibi faydaları vardır. Bu nedenle, web uygulamaları geliştirirken ES Module kullanmak oldukça önemlidir.


Modüler Programlama Nedir?

Modüler programlama, karmaşık kodlar oluştururken kodların işlevlerine göre parçalara ayrılması anlamına gelir. Bu şekilde her parça kendi başına çalışabilir ve birleştirilerek program oluşturulabilir. Bu yöntem, kodlar arasında gereksiz bağımlılıkları önler ve kodun daha temiz, daha anlaşılır ve daha düzenli olmasını sağlar. Ayrıca, hata ayıklama ve bakım daha kolaydır.

  • Parça parça programlama avantajları nelerdir?

Modüler programlama, birçok avantajı beraberinde getirir. Bunlar arasında en önemlileri;

  • Kodun daha kolay yönetilebilmesi: Modüler programlama ile kodumuz parçalara ayrıldığından her parça kendi başına çalışır. Yeniden kullanılabilen modüller kodu daha düzenli, bakımı ve güncellenmesi daha kolay hale getirir.
  • Daha Az Bağımlılık: Modüler programlama ile ayrılmış modüller arasındaki bağımlılık azaldığından, değişiklikler yapmak daha kolaydır. Bu şekilde, bir modülün değiştirilmesi, sistemin geri kalanını etkilemez.
  • Ölçeklenebilirlik: Modüler programlama özelliği, büyük sistemlerin geliştirdiği karmaşıklığı yönetebilir hale getirir. Bu sayede sisteme yeni fonksiyonları kolayca eklemek mümkün hale gelir.


ES Module Nedir?

ES Module, JavaScript dosyalarını modüler hale getirmek için kullanılan bir özelliktir. Bu sayede bir dosyada yazılan kod blokları, diğer dosyalardaki kodlarla birleştirilebilir ve bu şekilde daha okunaklı ve modüler bir kod yapısı elde edilir.

ES Module, kod işletildiği sırada belirli bir yüklemeye sahiptir ve kullanmak için öncelikle bir modülün nasıl tanımlandığına dair bilgi sahibi olunmalıdır. ES Module, export ve import işlemleri ile çalışır. Export, bir modülün dışarıya bilgi aktarmasını sağlar, import ise başka bir modülden bilgi alınmasını sağlar.

Export işlemi sırasında "default" ve "named" şekilde iki farklı yol kullanılabilir. Export default, her bir dosya için yalnızca bir tane kullanılabilen varsayılan öğeyi ifade ederken, named export, birden fazla öğenin aynı anda dışarı aktarılmasına izin verir.

Bununla birlikte, export ve import işlemleri kullanılarak sadece JavaScript kodları değil, diğer modüllerden de veri alışverişi çok daha kolay ve hazır hale getirilir. Bu sayede modüler programlama anlamında çok büyük bir adım atılmış olur.


Export ve Import İşlemleri

JavaScript programlama dilinde yapılan modüler programlama sayesinde kodların yeniden kullanılabilirliği ve bakımı çok daha kolay hale getiriliyor. ES Module ise JavaScript dosyalarının modüler hale getirilmesini sağlayan yeni bir özellik olarak karşımıza çıkıyor. Bu sayede kodların daha düzenli ve okunaklı hale gelmesi sağlanıyor. Peki, ES Module nedir ve nasıl kullanılır?

ES Module’da veri alışverişi yapmak için Export ve Import işlemleri yapılır. Bu işlemler sayesinde veriler farklı modüller arasında gönderilebilir. Export işlemi, bağlantılı modüller arasından herhangi bir veri göndermek isteyen modüller tarafından yapılırken, Import işlemi, veri almak isteyen modül tarafından yapılmaktadır.

Export işlemi Base ve Named Export olmak üzere ikiye ayrılmaktadır. Base Export işlemi tek bir veriyi ya da fonksiyonu eksiksiz bir şekilde göndermek için kullanılırken, Named Export işlemi birden fazla veriyi farklı isimler vererek göndermek için kullanılır.

Import işlemi de Base ve Named Import olarak ikiye ayrılır. Base Import işlemi tek bir veri ya da fonksiyon almak için kullanılırken, Named Import işlemi birden fazla veriyi farklı isimler altında almak için kullanılır.

Bu işlemler için birkaç örnek vermek gerekirse;

```//MyModule.js dosyasıexport const name = "John"export const age = 30const height = "175cm"

export function greeting(){return `My name is ${name} and I am ${age} years old.`}```

```//Main.js dosyasıimport { name, age, greeting } from './MyModule.js'

console.log(name) //Johnconsole.log(age) //30console.log(greeting()) //My name is John and I am 30 years old.```

Yukarıdaki örnekte MyModule dosyasında Export edilen name, age ve greeting verileri Main.js dosyasına Import edilerek kullanılmıştır. Bu sayede veriler farklı modüller arasında gönderilerek kullanımı kolaylaştırılmıştır.

ES Module kullanımı ile kodların daha düzenli ve modüler bir yapıya kavuşması hedeflenmektedir. Bu sayede kodların tekrar kullanılabilirliği ve bakımları da daha kolay hale gelmektedir.


Export Default Kullanımı

JavaScript modülleri oluştururken ES Module tarafından sağlanan bir diğer kullanışlı özellik ise "export default" özelliğidir. Bu özellik, bir modül için varsayılan ya da temel bir çıktı belirlemek için kullanılır. Özetle, bir modül birden fazla öğeyi (eşlemeler, fonksiyonlar, nesneler vb.) içerebilir ve export default bunlardan sadece birini tanımlamanızı sağlar. Export default tanımlamak oldukça kolaydır. İsimlendirilmiş bir öğe olmaksızın, tanımlandığı yerde doğrudan kullanılabilir. Örneğin, aşağıdaki kodda bir işlev tanımlanmış, ancak export default ile herhangi bir isim vermeden doğrudan kullanılabilecek hale getirilmiştir.

export default function() {    // işlevin içeriği} 

Export default genellikle tek öğeli modüller için kullanılır. Ancak birden çok öğeleri olan modüllerde de kullanılabilir. Böyle bir durumda, tüm öğelerin yanı sıra varsayılan olarak ihraç edilecek öğe de tanımlanmalıdır.

const islem1 = () => {     //ışlemin içeriği } const islem2 = () => {     //ışlemin içeriği } export default islem1;export {    islem1,    islem2}

Bu örnekte export default, tek bir öğe olan islem1'i belirtirken, diğer iki öğe islem1 ve islem2 de isimlendirilerek ayrı ayrı ihraç edilmiştir.Export default, bir modülde bir öğe için tanımlandığından, başka bir modül tarafından doğrudan dahil edilebilir. Örneğin:

import islem1 from './islem'; console.log(islem1());

Bu örnek, islem modülündeki varsayılan öğeyi doğrudan kullanarak konsola yazdırır. İşlevi export ederken isim atamak zorunda kalmadan doğrudan islem1()'i kullanmak mümkündür.Export default, modüler kod yazarken daha fazla esneklik sağlar. Ayrıca, modüller arasındaki bağımlılıkları azaltarak, yapının daha yönetilebilir hale gelmesine yardımcı olur.

Module Fallback

ES Module kullanırken kod yazarken, her zaman doğru import ve export işlemleri yapmak önemlidir. Ancak bazen, kodun bir bölümünde bir modül eksik olabilir veya başka bir nedenle hata oluşabilir. Bu durumda Module Fallback özelliği devreye girer ve hata önlenir.

Module Fallback, programın çalışma zamanında bir modül yüklenemediğinde, programın çalışmaya devam etmesini sağlamak için kullanılır. Modül yüklenemese bile, kod hata vermeden çalışmaya devam eder. Module Fallback, kodun sağlam ve güvenilir bir şekilde çalışmasını sağlar ve geliştirme sürecinde hataların önlenmesine yardımcı olur.

Module Fallback kullanımı için iki yöntem mevcuttur: Default export ve named export. Default export, modülün varsayılan olarak export ettiği bir bileşenin olmasıdır. Ayarlar veya yapılandırma gibi genellikle tek bir bileşen export edilir. Named export ise birkaç bileşenin export edilmesini sağlar. Bu yöntemde, eksik modülleri bulmak için önce doğru şekilde import edilmelidir, ancak modül bulunamazsa default export kullanılır. Bu sayede hata önlenir ve kod sorunsuz çalışabilir.

Fallback kullanmadan önce Fallback kullanarak kodun devam etmesi
import { myFunction } from './myModule'; import { myFunction } from './myModule.js';

Yukarıdaki örnekte, myModule modülü doğru şekilde import edildiğinde, myFunction fonksiyonu kullanılabilir. Ancak modül bulunamazsa, myModule.js fallback olarak kullanılır ve kodun çalışması devam eder.


ES Module Nasıl Kullanılır?

ES Module, modern JavaScript projesinde modüler kod yapısını sağlamak için kullanılan önemli özelliklerden biridir. Bu özellik sayesinde karmaşık projelerde değişken isim çakışmaları önlenir ve kodun yönetimi kolaylaşır. ES Module kullanarak bir JavaScript dosyasını birden fazla modüle ayırıp, her modülü tek tek yönetebilirsiniz.

ES Module kullanımı oldukça basittir. Bir dosyayı ES modülü olarak kullanmak için, dosyanın en üstünde "export" ifadesi ile modül olarak adlandırılacak değişken tanımlanmalıdır. Örneğin, aşağıdaki gibi bir modül tanımlanabilir:

export const islem = function(a,b){  return a+b}

Bu modüle "islem" adı verilmiştir ve "export" ifadesi kullanılarak modül olarak tanımlanmıştır. Daha sonra, bu modül başka bir JavaScript dosyasında import edilebilir.

Bir modül başka bir dosyada kullanılmak istenirse, modül "import" ifadesi ile başka bir dosyada tanımlanmak üzere çağırılabilir. Örneğin, aşağıdaki gibi bir kullanım gerçekleştirilebilir:

import { islem } from './moduller.js'; console.log(islem(3,4)); // 7

Bu kullanımda "islem" modülü, "./moduller.js" dosyasından import edilmiştir. Daha sonra, bu modülü içeren bir fonksiyon çağrısı gerçekleştirilmiştir.

ES Module kullanımında dikkat edilmesi gereken bir diğer nokta ise "export default" kullanımıdır. "export default" ifadesi ile tanımlanan modül, farklı bir kod yapısına sahip olan bir dosyada diğer modüllerden farklı olarak ve tek bir defa tanımlanabilir. Bu modül diğer dosyalarda farklı bir modül ismiyle kullanılabilir. Örneğin:

export default class Kisi {  constructor(ad, soyad) {    this.ad = ad;    this.soyad = soyad;  }}

Bu kullanımda bir "Kisi" sınıfı, "export default" ifadesi kullanılarak modül olarak tanımlanmıştır. Daha sonra, bu modül başka bir dosyada import edilebilir.

ES Module, modern JavaScript uygulamalarının ayrılmaz bir parçasıdır. Modüler kod yapısını sağlaması ve karmaşık projelerin yönetimini sağlaması nedeniyle birçok geliştirici tarafından tercih edilmektedir. ES Module kullanımı ile kod okunabilirliği arttırılabilir, değişken isim çakışmalarına son verilebilir ve kod yönetimi kolaylaştırılabilir.


Module Script Tag

ES Module kullanarak oluşturduğumuz modüllerin HTML sayfalarında nasıl kullanılabileceği konusuna gelelim. Bunun için module script tag ile ES Module import işlemi yapılabilir. Module script tag kullanımı sayesinde script dosyaları modül olarak yüklenerek, herhangi bir yüklenme gereksinimi olmadan çağırılabilirler.

Bu işlem için öncelikle HTML dosyası içerisinde script etiketi kullanarak module type şeklinde tanımlama yapılması gerekiyor. Aşağıdaki örnek kod bloğunda da görebileceğiniz gibi:

```html```

Bu etiket ile module.js isimli dosyamızı HTML sayfamıza ekleyerek, ES Module'ları yükleyebiliriz. Ayrıca, script etiketi içinde src yerine inline kodlar da yazabilirsiniz.

```html```

Burada './module.js' ile ilgili ES Module'ı import ederek, sayHello() fonksiyonunu çağırabiliyoruz. Böylelikle sayfamızda ES Module kullanımı gerçekleştirmiş oluyoruz.

Module Script Tag kullanımı ile ilgili olarak tablo olarak da şu şekilde özetleyebiliriz:

Etiket Açıklama
script type="module" ES Module kullanımını sağlar.
src Uzaktan ya da yerel'den bir dosya import etmek için kullanılır.
inline kod Scriptsiz modül yüklemeleri için kullanılır.

Module Script Tag kullanarak ES Module import etmek oldukça basittir ve ES6+ sürümlerinde hızlı bir şekilde kullanılabilir. Bu sayede, modüler yapılarımızı HTML sayfalarımıza kolaylıkla ekleyebiliriz.


Module Loader

ES Module kullanarak JavaScript dosyalarını modüler hale getirmenin bir yolu da Module Loader kullanarak dinamik import yapmaktır. Bu yöntem, sayfa yüklenirken bütün modüllerin yüklenmesini engeller ve sadece ihtiyaç duyulan modülü yükler. Bu performans artışına ve sayfa açılış hızının azalmasına yardımcı olur.

Dinamik import için "import()" fonksiyonu kullanılır. Bu fonksiyon, bir Promise nesnesi döndürür. Bu nedenle, await veya then() fonksiyonları ile sonuç almak gerekir. Örneğin, "import('./module.js')" şeklinde bir kullanım, module.js dosyasının yüklenmesini başlatır.

Ayrıca, bu yöntemle birden fazla modül de yüklenebilir. "Promise.all()" yöntemi kullanılarak birden fazla modül yüklenir ve Promise chain yapısı kullanılarak sıralama sağlanır.

Örneğin, "Promise.all([import('./module1.js'), import('./module2.js')]).then(([module1, module2]) => {...})" şeklinde bir kullanım, iki modülün yüklenmesini sağlar ve sonrasında yüklenen modüller üzerinde işlemler yapılabilir.

Bu yöntemle ilgili dikkat edilmesi gereken bir diğer nokta ise, "import()" fonksiyonunun tarayıcılar tarafından desteklenmiyor olmasıdır. Bu nedenle, webpack, Rollup veya SystemJS gibi modül yükleyicileri kullanılabilir. Bu modül yükleyicileri, kodumuzda "import()" fonksiyonu kullanırken, kodu tarayıcılar tarafından desteklenen ES5 koduna dönüştürür.

Sonuç olarak, Module Loader kullanarak dinamik import işlemleri yapmak, ES Module kullanımını daha verimli hale getirir. Bu sayede performans artışı sağlanır ve sayfa açılış hızı azaltılır. Ancak, tarayıcı uyumluluğu konusunda dikkatli olunması gerektiği unutulmamalıdır.


ES Module Avantajları

ES Module kullanmanın birçok avantajı vardır. Bunların en önemlileri şunlardır:

ES Module'in temel faydalarından biri performans artışıdır. ES Module, dosyaları modüler hale getirerek, yalnızca ihtiyaç duyulan kod bloklarını yükler. Bu sayede, gereksiz kodların yüklenmesi önlenir ve sayfa yükleme hızı artar. Böylece, kullanıcı deneyimi olumlu bir şekilde etkilenir.

ES Module kullanarak kodlarınızı modüler hale getirerek, değişken isim çakışmalarını önleyebilirsiniz. Modüler kodlama sayesinde her bir modül kendi özel bir kapsama sahip olur ve diğer modüller tarafından değiştirilmez. Böylece, kodunuzun daha güvenli ve sürdürülebilir olmasını sağlarsınız.

ES Module kullanarak kodlarınızı modüler hale getirerek, kodunuzu kolayca yönetebilir ve arayabilirsiniz. Modüler kodlama sayesinde, büyük uygulamaların her bir bölümü kendi modüllerinde yer alır. Böylece, kodunuzu kolayca yönetebilir ve arayabilirsiniz. Ayrıca, ES Module ile birlikte gelen araçlar sayesinde, modüller arası bağımlılıkların takibi de kolaylaşır.

ES Module kullanmanın birçok faydası vardır. Modüler kodlama sayesinde kodunuzu daha güvenilir hale getirebilir, sayfa yükleme hızını artırabilir ve kodunuzu kolayca yönetebilirsiniz.


Performance Artışı

ES Module kullanımı, JavaScript dosyalarının modüler hale getirilmesine yardımcı olmaktadır. Bu sayede büyük projelerin yönetimi daha kolay hale gelir ve kodların anlaşılması için ihtiyaç duyulan zamandan tasarruf edilir. Bunun yanı sıra ES Module kullanımının bir diğer önemli avantajı ise performans artışı sağlamasıdır.

ES Module kullanıcıları, yalnızca ihtiyaç duyulan modülleri yükleyebilirler. Bu sayede yükleme zamanı azalır ve sayfa açılış hızı artar. Ayrıca, ES Module kullanımı sayesinde tarayıcılar, yalnızca ihtiyaç duyulan modüllerin yeniden oluşturulmasını sağlayarak bellek kullanımını minimum seviyede tutarlar. Böylece sayfanın verimli çalışması sağlanır.

ES Module kullanımı ayrıca, geleneksel JavaScript uygulamanın aksine kaçınılmaz bir şekilde ortaya çıkan ve performans sorunlarına yol açan değişken isim çakışmalarını önler. Modüler programlama, her modülün kendi kapsamına sahip olmasını sağlar ve böylece değişkenler farklı modüllerde kullanılsa bile birbirleriyle çakışmazlar.

Son olarak, ES Module kullanımı sayesinde kodun aranabilirliği ve yönetimi de kolaylaşır. Her bir modülün ayrı ayrı bulundurulması, aranması ve değiştirilmesi daha kolaydır. Ayrıca, bir modülün değiştirilmesi diğer modülleri etkilemez ve yeniden yapılandırma gerektirmez.

Tüm bu avantajlarından dolayı, modern JavaScript programcıları artık ES Module kullanımını tercih etmektedirler. ES Module, JavaScript uygulamalarının performansını artırırken kod yönetimini kolaylaştırır ve büyük projelerin daha etkili şekilde yönetilmesini sağlar.


Scope Kontrolü

ES Module kullanarak modüler kod yazmak, değişken isim çakışmalarının önlenmesine yardımcı olur. Her bir modülün kendi scop'ı vardır, bu nedenle modüller içinde tanımlanan değişkenler, sadece o modül içerisinde kullanılabilir. Böylece, aynı değişken ismi diğer modüllerle karıştırılmaz ve değiştirilmez."

Ayrıca, ES Module'da export edilecek olan değişkenlerin isimleri de unique olmak zorundadır. Farklı modüllerde aynı isimde değişken export edilemez. Bu sayede, değişken isimleri karışıklığı önlenebilir ve kodun okunabilirliği artırılabilir.


Arama ve Yönetim Kolaylığı

ES Module ile birlikte, kodumuzun parçalarını modüller olarak düzenleyebiliyoruz. Bu sayede kodumuz daha organize hale geliyor ve çeşitli avantajlar sağlıyor. ES Module'un bir diğer avantajı ise kod arama ve yönetimini kolaylaştırmasıdır.

Modüler bir kod yapısıyla, kodumuzda yer alan farklı parçalar kolayca bulunabilir ve yönetilebilir. ES Module kullanarak bir modülün fonksiyonlarına veya değişkenlerine erişmek çok daha kolaydır. Ayrıca, farklı modüller arasında veri alışverişi yapılabilir ve bu nedenle kodumuzun işlevselliği artırılabilir.

ES Module ayrıca, kod dosyalarının isimlendirilmesi ve düzenlenmesi açısından da faydalar sağlar. Modüler kod yapısı, farklı modüller arasındaki isim çakışmalarını önler ve bu da kodun daha sürdürülebilir olmasını sağlar.

Bir proje büyüdükçe, kod dosyalarının sayısı da artar ve bu kodların yönetilmesi zorlaşır. Ancak ES Module kullanarak kodumuzu modüller halinde parçalara ayırabilir ve daha kolay yönetebiliriz. Aynı zamanda, karmaşık kodlarda hataların bulunması ve düzeltilmesi daha kolay hale gelir.

ES Module kullanarak kodumuzu birbirine bağımlı olmayan modüllere ayırabiliriz. Bu sayede, bir modülde yapılan değişikliklerin diğer modülleri etkilemesi engellenir ve her bir modülü tek başına test edebiliriz. Bu, kodumuzun daha verimli hale gelmesini sağlar ve kod kalitesini artırır.

Sonuç olarak, ES Module kullanarak kodumuzu modüller halinde düzenleyerek, kod arama ve yönetim kolaylığı sağlayabiliriz. Bu da, kodumuzu daha organize ve sürdürülebilir hale getirir.