Angular 2’de Bizi Neler Bekliyor?
Son yılların en çok kullanılan JavaScript kütüphanelerinden biri olan Angular.js’in yeni sürümünün yakın bir zamanda çıkmasını bekliyoruz. “Angular.js” olarak adlandırılan bu kütüphanenin günün ihtiyaçlarına göre daha çok geliştirilmesine ve rakip kütüphanelere göre eksiklerinin kapatılmasına ihtiyaç duyuldu. Google bu kütüphanenin yeni sürümü için radikal değişiklikler yapma yoluna gitti ve ilk sürümden tamamen bağımsız yeni bir sürüm çıkaracağını duyurdu: Angular 2
Henüz beta sürümünde olmasına rağmen çoğu yazılım geliştiricinin yakından takip ettiği, hatta kullanmaya başladığı Angular 2 ile ilgili nasıl gelişmeler var, Angular 2 ne gibi yenilikler getirecek, yazılımcılar arasında doğru anlaşılanlar, yanlış bilinenler nelermiş… bu gibi konuları size aktarmaya çalışacağım.
Angular 2 Nedir?
Angular 2 için sıfırdan Typescript ile yazılmış full-stack bir framework diyebiliriz. Yeni bir mimari, yeni bir konsept, baştan yazılan bir kütüphane ve Angular.js’den çok farklı bir yapıya sahip. Dolayısıyla “Angular 1 biliyorum, kolayca Angular 2’ye geçerim ve hızlıca alışırım” diye düşünenler biraz hayal kırıklığına uğrayabilir. Bunun yerine Angular 2’ye sıfırdan öğreniyormuş gibi bakmak işinizi kolaylaştıracak ve size büyük zaman kazandıracaktır. Diğer türlü sürekli gözleriniz $scope, controller gibi yapıları arayabilir(bu yapılar Angular 2’de yok).
Angular 2 ile İlgili Yanlış Bilinenler ve İşin Doğrusu
- Angular 1’in devamı değildir. Angular 1’de yazılmış bir projeyi Angular 2’ye upgrade etmek pek mümkün değil.
- React gibi bir kütüphane değildir. Angular 2 full-stack bir framework’tür.
- Angular 2’nin içinde Controller, $scope, DDO, angular.module, JQlite yoktur.
- Angular 2 ile SPA(Single Page Application) yapmak için TypeScript kullanmanız zorunlu değildir.
- Mobil tarayıcılar için en iyi şekilde optimize edilmiştir. Angular.js 1 gibi mobil tarayıcılarda sorun çıkarmamayı vaad eder.
Controller, $scope, DDO, angular.module ve JQlite Artık Neden Yok?
- Angular 2’de kafa karıştıran ve gereksiz olduğu düşünülen çoğu yapı kaldırılmış ve yazılımcının daha özgür çalışması sağlanmış gibi gözüküyor.
- Controller ve DDO artık yok, zira artık hayatımızda TypeScript var, dolayısıyla sınıflar var.
- $scope artık yok, çünkü büyük projelerde karışıklıklara ve kodun şişmesine sebebiyet veriyordu.
- angular.module artık yok, çünkü artık herkes kendi istediği dinamik modül yükleyiciyi(dynamic module loader) kullanıyor. (Ben bu yazı serisinde system.js tercih ettim. İlerleyen konularda fırsat olursa detaya ineceğiz)
- Projelerde jQuery bağımlılığı yaratan jqLite Angular 2 ile birlikte yok
Neden TypeScript Kullanmalıyız?
Angular 2 neden TypeScript ile yazıldı veya ben Angular 2 uygulaması geliştirirken TypeScript kullanmalı mıyım çoğu yazılımcının aklına gelen sorulardan biri. Sorunun cevabı çok basit aslında, EcmaScript standartlarına bağımlı kalmamak için. “Benim için mühim değil, ES5 göre de yazarım, ES6’ya göre de yazarım” diyorsanız bu konuyu çok irdelemenize gerek yok.
TypeScript güvenli, pratik ve masrafsız JavaScript kodu üretmenizi sağlayan bir dil yapısı sunuyor bize. .ts uzantılı dosyaları derlediğinizde zaten size .js uzantılı dosyalar ve JavaScript kodları üretir. Bu derlenen kod o an güncel ES standartına göre üretilir. Bugün ES5, yarın ES6 olursa ona göre, gelecekte ES7 çıkarda ona göre derletebilirsiniz kodu. Evet gerçekten büyük kolaylık.
TypeScript her zaman ES’nin yeni çıkan versiyonunu kapsayacağını taahhüt ediyor. İçiniz rahat olsun.
Ben Angular.js Kullanıyorum. Angular 2 Beni Nasıl Etkiler?
Sorunun cevabı çok kısa: baya etkiler! Angular.js’den yani Angular 1’den Angular 2’ye geçişin normal bir sürüm geçişi gibi kolay olmayacağını yazının başlarında belirtmiştik. Çünkü Angular 2 baştan yazılıyor ve Angular 1’deki çoğu özellik ve kullanım artık burada yok. Google yine de Angular 1’den Angular 2’ye geçmek isteyenleri düşünmüş ve bunun için bir kitapçık bile yayınlamış. https://docs.google.com/document/d/1xvBZoFuNq9hsgRhPPZOJC-Z48AHEbIBPlOCBTSD8m0Y/edit Buraki adımları takip ederek geçişi yapabilirsiniz.
Şahsi fikrim Typescript gibi bir nimet ile 10.000 satırlık kodu 1000 satıra düşürmeniz mümkün. OOP teknikleri, interface, generic tiplerin sağladıkları imkânlar tartışılamaz bile. Bu şartlar altında uygulamanızı Angular 1’den 2’ye geçirmek yerine sıfırdan yazmak daha verimli olur. Google bile böyle düşünmüşki, Angular’ı baştan yazmaya karar vermiş.
Angular 1 ile 2 arasındaki fark bir GIF ile anlatılmış. Başlangıçta Angular 1’in yapısı gösteriliyor, sonrasında değişimle Angular 2’deki component yapısına nasıl gelindiği anlatılıyor. Bakmanız iyi olabilir: http://teropa.info/images/component_refac.gif
Angular 2 Şu An Ne Aşamada?
Angular 2’nin beta sürümü geçtiğimiz Aralık ayında duyurulmuştu, şu an hala beta aşamasında. Release olacağı tarihe dair net bir zaman söylenmiyor. Bugün itibariyle Angular’ın Github adresinde Release Candidate sürümünün %22’si bitmiş olarak görünüyor.
Tabii Angular 2’yi beta iken kullanmak doğru mudur, sorun yaşar mıyız… gibi sorular akla gelebilir. Beta sürümünden sonra Angular’ın genel yapısının çok değişeceğini ve geliştirilen projeleri çok etkileyeceğini sanmıyorum, o nedenle şimdiden Angular 2’yi beta sürümü olarak kullanabiliriz. Yapılan değişikler için https://github.com/angular/angular/blob/master/CHANGELOG.md linkini takip etmekte fayda var. Daha çok Github’da açılan sorun bildirimleri düzeltiliyor(Bug Fix). Bu nedenle değişiklikler yapılsa dahi kullandığınız projelerde yapısal bir soruna yol açma ihtimali zayıf görünüyor. Yine de siz bilirsiniz.
1 Comment
Serdar
21 Nisan 2016 at 04:541’e daha yeni ısınmıştık 2 geldi iyi mi
typescript’in namini çok duyup fazla ilgilenememiştim ama bir göz atmayi hak ediyor anlaşılan.
Makale için teşekkürler