MEAN ile Full Stack Development
Full stack developer, yazılımın hem back-end(arka yüz), hem front-end(ön yüz) hem de veritabanı programlama kısımlarında uzmanlığı olan ve geliştirilen projenin yazılımsal tüm süreçlerinde görev alan yazılımcılar için kullanılan mesleki tanım. Günümüzde bazı şirketlerde bu tarz yazılımcılara ihtiyaç duyuyor ve projeler full stack development usulüyle geliştiriliyor. Eskiden Linux, Apache, MySQL, PHP (LAMP) vb. stack kavramları yaygınken artık gelişen ön yüz teknolojileri ve birçok seçeneğin olmasıyla birlikte stack’lerde oldukça arttı. Bu stack’lerden birisi de MEAN, yani MongoDB, Express, Angular.js, Node.js. Yani bu 4 uygulama ve kütüphanenin web projelerinde oturmuş bir yapıyla kullanılması için bulunmuş ve yavaş yavaş çoğu yazılımcı için standart hale gelen bir stack.
MEAN açık kaynak kod projedir. www.mean.io adresinden dağıtımı yapılıyor ve detaylı dokümantasyonu bulunuyor. MEAN’de bulunan bileşenler, yani MongoDB, Express, Angular.js, Node.js bir web uygulamasının uçtan uca geliştirilmesi için bizlere yeterli olan herşeyi veriyor. MongoDB ile veritabanını, Angular.js ile ön yüz geliştirmeleri, Node.js arka yüz tarafı için gerekli altyapıyı ve bileşenleri elde ediyoruz, Express de kolayca web sitesi, web api, single-page uygulamalar yapmamızı sağlayan bir Node.js bileşeni. Ben de bu yazıda full stack yazılımcılar için kullanışlı olan bu MEAN’i sizlere kısaca tanıtacağım.
MEAN stack ile projeler geliştirmek istiyorsanız aşağıdaki konularda bilgi sahibi olmanız gerekiyor:
- Temel HTML ve CSS bilgisi
- Temel JavaScript bilgisi
- Temel programlama bilgisi (değişken, döngü, sınıf yapısı vb.)
- Temel veritabanı bilgisi (bilhassa NoSQL)
MEAN’deki bu 4 bileşeni inceleyelim:
MongoDB: Cross platformlarda “document oriented database” temelli uygulamalar geliştirmek için kullanılmaktadır. Document oriented database denmesindeki sebep ise MongoDB’de her kayıt bir döküman olarak veritabanında Binary JSON olarak dinamik şemalarda tutulmaktadır. Bu nedenle içerisinde saklanan veriler geleneksel SQL sorgularıyla değil, NoSQL terimleriyle sorgulanır. Bu sayede uygulamalar daha hızlı çalışmaktadır. MongoDB şu an dünyadaki birçok kurumsal ve çok kullanıcılı sistemler tarafından kullanılan bir veritabanıdır.
Express: Node.js ile hızlı ve düzenli proje gerçekleştirebilmemizi sağlayan bir kütüphanedir. Node.js dünyasının en popüler bileşenlerinden birisidir. Single-page application, web api servisleri ve web sitesi uygulamaları geliştirmek için hazır yapılar sunar ve bu tarz projelerin kolayca geliştirilmesini sağlar. Node packege manager(npm)’den ulaşılacağı gibi detaylı bilgiler ve kaynaklar için web sitesi http://expressjs.com/ adresi de incelenebilir.
Angular.js: Node.js’in client-side bileşenlerini saymazsak MEAN stack’inin istemci taraflı çalışan kısmıdır, yani MEAN ile geliştirilen projelerde istemci kısmında Angular.js kullanılır. Angular Google tarafından geliştirilen açık kaynaklı bir web application framework’üdür. İstemci tarafında döngü yapıları kurma, veri bağlama, veri dinleme, URL yönetimini yapma gibi birçok işlevi yerine getirir.
Node.js: Javascript ile server side web uygulaması geliştirmeye olanak sağlamaktadır. Google tarafından geliştirilen V8 üzerinde çalışmaktadır. Yazılan JavaScript kodunu makine diline çevirmektedir. Web uygulamasında asenkron çalışan eventler sayesinde eş zamanlı işler yapılmasını ve isteklerin daha hızlı yanıtlanmasını sağlar.
Mean.io Kurulumu ve Proje Oluşturma
Mean.io kurmak için bilgisayarımızda daha önceden Node.js’in kurulu olması gerekiyor. Node Package Manager(npm) ile MEAN’i hızlıca kurabilir ve ardından da projeler oluşturabiliriz. MEAN’i kurmak için Linux veya Windows komut satırından
npm install -g mean-cli
komutunu kullanıyoruz. Ben Windows’da basit bir örnek yaparak nasıl bir proje oluşturacağımızı anlatacağımz hızlıca. MEAN ile standart şablonda bir proje oluşturmak için aşağıdaki ekran görüntüsünde görebileceğiniz mean init ProjeAdi komutunu kullanıyoruz. Aşağıdaki ekran görüntüsü size referans olacaktır, çalıştıracağınız komutları sırasıyla aşağıda belirtiyorum:
mean init DevNotProject1
Do you want to set up an admin user? sorusuna N yanıtı verip ilerleyin
cd DevNotProject1 && npm install
cd DevNotProject1 && bower install
cd DevNotProject1
gulp
Not: Kurulum sonrasında proje oluştururken ben sorun yaşamadım ama Windows 8 ve üzeri işletim sistemlerinde kurulum esnasında hatalar alınabiliyor. Tavsiyem bu hataları almamak için yukarıda anlattığım kurulum adımlarını tamamlayıp, sonrasında da http://learn.mean.io adresindeki “Installation problems on Windows 8 / 8.1″ kısmında belirtildiği üzere Phyton 2.7.x sürümünü kurup, Node Package Manager(npm)’ı da güncellemeniz olacak. Detaylı bilgilere belirttiğim sayfadan bakabilirsiniz.
Sıra örneğimizi çalıştırmada. Angular.js’i içeren basit bir HTML sayfasına aşağıdaki gibi doldurup sayfayı test ediyoruz.
Sayfayı tarayıcıda çalıştırdığımızda aşağıdaki gibi bir sonuç alıyoruz. MEAN dünyasına hoşgeldiniz.
5 Comments
yazilimcianne
3 Kasım 2016 at 12:39Recep Duman, ellerinize sağlık…
İlhan Bahar
4 Kasım 2016 at 10:44Güzel yazı Recep, eline sağlık.
Enes
9 Şubat 2017 at 13:07elinize sağlık hocam
Gökmen Eskin
14 Temmuz 2017 at 23:27Arkadaşlar ben arkaplanını da biraz anlatmak istedim, aşağıdaki linkten videolarımı takip edebilirsiniz…
https://www.youtube.com/playlist?list=PLMgWFZYBWyGlnpwk4I0kNjt9GOafbu_pe
zon6u7daklı
7 Mart 2018 at 07:15çok güzel bir yazı olmuş elinize sağlık Recep Hocam