MEAN Yığını Nedir ve Neden LAMP Yığınından Daha İyidir ?

MEAN Yığını Nedir ve Neden LAMP Yığınından Daha İyidir ?

Öncelikle, bu iki yığını(stack) kıyaslamaya başlamadan önce, açılımlarından bahsetmek sanırım daha doğru olur.

LAMP : Linux Apache MySQL PHP
LAMP yığını hakkında çeşitli varyasyonlar da mevcuttur tabii ki . Mesela, WAMP(Windows) ya da WIMP (Windows , IIS , MsSQL , ASP.net) gibi.

MEAN : MongoDB ExpressJS AngularJS NodeJS. Yine MEAN yığınına benzer farklı yığınlar da mevcut fakat bu yazımda bu iki yığını karşılaştırmak istiyorum.

LAMP yığınından MEAN yığınına geçerken her teknoloji yığınının rolünün iyi kavranması gerekir. JavaScript’in gücünden yararlanmak istiyorsanız MEAN yığını, web geliştiren organizasyonlar için daha esnek çözümler sunmaktadır.

İşletim Sistemi

Herhangi bir geliştirme yığını için şüphesiz ilk göz önüne alınacak şeylerden birisi işletim sistemidir. LAMP yığını Linux işletim sistemi üzerine kurulmuş olsa da MEAN yığınında böyle bir kısıtlama yoktur. Ancak, Linux yine de MEAN yığını kullanılarak geliştirme yapmak için ideal bir işletim sistemi diyebilirim fakat bu demek değil ki tek seçeneğimiz Linux işletim sistemidir. Hali hazırda Node.js ile çalışabilen bir çok işletim sistemi mevcuttur.

Web Server

LAMP yığınında web server tarafında Apache varken MEAN yığınında bizi Node.js karşılamaktadır. Buda bizi performans konusuna getirmektedir çünkü node.js engellemeden(non-blocking) ve olay tabanlı(event-based) çalışmaktadır. Yani, Node.js trafında eş zamanlılığın gerçekten sağlandığını söyleyebiliriz. Node.js hafiftir ve nispeten yenidir ancak günün sounda, standart olmayan uzantılar söz konusu olduğunda kuruluşunuz büyük ölçüde bu olaya sıcak bakmayacaktır.
Node.js için tak-çalıştır eklentiler bulunsa da, bu eklentilerin Apache kadar olgunlaştığı söylenemez. Bu da demek oluyor ki Node.js’in eksik kaldığı noktalarda kendi eklentilerinizi yazıp eksik işlevselliği kapatmanız gerekebilir. Ek olarak, Node.js’i seçmek bütün kodunuzun JavaScript tabanlı olacağı anlamına gelmektedir. Yeni bir proje için bu önemli bir endişe gibi gözükmez, ancak önemli bir karmaşık işlevin back-end tarafında kodlanması zaman alıcı olabilir.

Veri Saklama

MEAN yığınında veri saklama işlemi LAMP yığınındaki gibi MySQL’de(ilişkisel veritabanı) yapılmak yerine MongoDB’de(ilişkisel olmayan NoSQL veritabanı) yapılmaktadır. Bir çok web uygulaması için bu en önemli değişimlerdendir. Mevcut bir SQL veri tabanından, NoSQL veri tabanına geçiş yaparken çok büyük maliyetler söz konusudur. Ancak, bu kısım halledildiğinde artık veritabanı daha hızlı çalışacaktır.

Kod

MEAN yığınında, web sayfalarını kullanıcıya sunarken ve web sayfalarının akışını kontrol ederken Express.JS ve AngularJS kullanılır. Bu işlemler LAMP yığınında, PHP ya da Python kullanılarak yapılır. Express.js kontrol(controller) katmanını sunarken, uygulama akışını yani verilerin sunulması işini AngularJS kontrol eder. Bu iki script(Express.js , AngularJS), back-end tarafında kolay bir mimariye sahip olması MEAN yığınının yararlarından bir başkasıdır. Ayrıca, Node.js, AngularJS ve Express.js bir arada kullanmak demek, front-end geliştiricinin bir başka dil öğrenmesine ihtiyaç duymadan, en üstten en alta kadar tüm olayları kolayca takip edebileceği manasına gelmektedir.

Ek Hususlar

Verilerin saklanmasında, LAMP yığınından MEAN yığınına geçmek muhtemelen çok büyük bir kararla karşı karşıya gelmenize sebep olmaktadır. MEAN yığını, ilişkisel olmayan veritabanlarıyla çalışmayı desteklemesinin yanında Node.js tarafında bazı eklentiler sayesinde ilişkisel veritabanlarıyla da kolayca çalışmak mümkündür. Ancak, iki durumda da front-end kısmında veriler JSON formatı ile sunulur. Yani buradaki gerçek kıyas etkeni, verinin nasıl saklandığı değil nasıl alındığı konusudur ya da ilişkisel olan ve olmayan veritabanlarının farklarıdır.
İlişkisel veritabanları, oldukça karmaşık yapılandırılmış sorguları destekleyerek, verilerle karmaşık hesaplamalar yapma konusunda iyidirler. İlişkisel olmayan veritabanları, bir sistemdeki nesnelerin listesi gibi operasyonel verilerin yönetiminde üstünlük sağlar. Bir şema eksikliğinde, kapsamlı kod değişiklikleri gerektirmeyen nesne tanımlamalarına izin verir. Kapsamlı ve karmaşık sorgulara olan ihtiyacı ortadan kaldırarak sistem genellikle ilişkisel bir veritabanı ile benzer bir mimari oluşturmaya göre daha verimli çalışabilir.

SONUÇ

MEAN yığına geçiş yapmak, geliştirme ekibinize bir takım avantajlar sağlar; bunların en önemlileri, en üstten en alta kadar tek bir dil, dağıtım platformundaki esneklik ve veri alım hızının artmasıdır. Bununla birlikte, bu geçiş her zaman bir denge içermeyebilir. Mevcut herhangi bir kodun JavaScript’te yeniden yazılması veya bir şekilde yeni yığının içine entegre edilmesi gerekecektir.
Sonuç olarak LAMP yığınından MEAN yığınına geçme seçimi, kuruluşunuzdaki veya geliştirmekte olduğunuz projenizdeki önceliklerinize dayanacaktır.


Paylaş :

Full Stack Developer · Yazılım Tutkunu · Fikir, kod ve teknoloji Daha fazlası için hakkımda sayfasını ziyaret edebilirsiniz.



Bu yazı hakkındaki görüşünü benimle paylaşmaya ne dersin ?


Email adresiniz yayınlanmayacaktır.

Yorum yap butonuna
bastıktan sonra yorumunuz gönderilecektir. Yorumunuz incelenip onaylandıktan sonra diğer ziyaretçilerimiz tarafından da görünecektir. Lütfen, yorum yaparken saygı çerçevesinde ve hakaret etmeden yorum yapmaya özen gösteriniz.

Bu yorumu göndererek bu uyarıları okuduğumu ve kabul ettiğimi onaylıyorum.