Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Beşiktaş'ta gerçekleşen bir teknoloji etkinliğinde Markföy'de front-end geliştiricisi olarak çalışan bir konuşmacının Angular.js ve Firebase entegrasyonu hakkında yaptığı kapsamlı bir eğitim sunumudur. Sunum, Bahattin adında bir konuşmacının ERP konusunda çalışma yaptığı bir soru-cevap oturumuyla sonlanmaktadır.
- Sunum, Angular.js'in temel özellikleri ve avantajları ile başlayıp, Firebase'in ne olduğu, özellikleri ve kullanım alanları hakkında detaylı bilgiler sunmaktadır. Ardından Angular ile Firebase'in entegrasyonu, AngularFire kütüphanesinin kullanımı, veritabanı işlemleri için kod örnekleri ve veri modellemesi anlatılmaktadır. Son bölümde ise katılımcıların soruları yanıtlanmakta ve Firebase'in ölçeklenebilirlik özellikleri, maliyet politikası ve farklı veritabanı sistemleriyle karşılaştırması yapılmaktadır.
- Sunumda ayrıca Firebase'in gerçek zamanlı veri aktarımı, platform bağımsızlığı, güvenli yapısı, hızlı performansı ve farklı dil desteği gibi avantajları vurgulanmakta, veri çekme, güncelleme, silme işlemleri ve asenkron işlemlerin yönetimi örneklerle gösterilmektedir.
- 00:03Giriş ve Konu Tanıtımı
- Konuşmacı, Front-end geliştiricisi olarak Markföy'de çalıştığını ve Beşiktaş'ta bir etkinliğe katıldığını belirtiyor.
- Konunun Angular CS ile Firebase'in entegrasyonu ve bunların birlikte interaktif bir şekilde kullanılması olduğunu açıklıyor.
- Web teknolojilerinden bahsedecek ve bunların içinde 1990'lara kadar giden eski teknolojileri de ele alacak.
- 01:41Sunumun İçeriği
- Sunumda gerçek zamanlı web, real-time web yaklaşımları, framework'ler, yazılım çatıları, veritabanları ve modern web araçları gibi konular ele alınacak.
- Google'un Angular CS'i satın aldığını ve kendi cloud platformlarını kullanmaya başlayacağını belirtiyor.
- Sunumun daha çok architectural tarafıyla ilgili olacağını, markap kısmına ise deklarasyonlar ve class bindingleri (data bağlamaları) değineceğini açıklıyor.
- 03:17Angular CS'in Özellikleri
- Angular CS, MVC (Model-View-Controller) paterninin class tarafında uygulanan hali olup, iki taraflı veri bağlamayı (two-way data binding) yapan bir class çatısıdır.
- Bağımlılık enjeksiyonu (dependency injection) özelliği sayesinde kullanmak isteyip istemediğimiz her şeyi kendimiz belirleyebildiğimiz bir ortam sağlar.
- Kendin yarat elementler (custom elementler, directiveler) ve dekoratif tarafına vurgu yapan bir yapıya sahiptir.
- 04:39Test Edilebilirlik ve Proje Yapısı
- Angular CS'in en önemli özelliklerinden biri kolay test edilebilir bir yapı sunmasıdır.
- Karma ve Protector gibi test development araçları sunmaktadır.
- Proje yapısı önererek, dependencyleri kendimiz toplamamızı, controller'larla bağlantı kurmamızı ve model ile view arasında köprü çekmemizi sağlar.
- 06:21Mimari ve Esneklik
- Angular CS, spaghetti code'a karşı katmanlı bir mimari önerir ve kendi deklarasyon sistemini dayatmaz.
- Asenkron modül definition kullanarak (require.js ile) genişletilebilir ve bakımı yapılabilir kod sunar.
- Bağımlılık enjeksiyonu sayesinde bulunduğunuz scope'a mümkün mertebe kullanmak istediklerinizi dahil edip işlem yapabilirsiniz.
- 08:36Kendin Yarat Elementler ve Test Edilebilirlik
- Kendin yarat elementler özelliği sayesinde kendi elementlerinizi yaratıp yazabilirsiniz.
- Kolay test edilebilirlik için Karma ve Protector gibi araçlar kullanılabilir.
- PhantomJS üzerinde test çalıştırarak fiziksel proje yapısı ve esneklik sağlanabilir.
- 09:53jQuery Bağımsızlığı ve Gelecek
- Angular CS jQuery bağımsızdır ve istediğiniz kütüphaneyi entegre edebilirsiniz.
- Google topluluğa destek veriyor ve dökümantasyonlarını yapıyor.
- Angular 20 versiyonunda scoop kavramının tarihe gömüldüğü ve önceki versiyonlarla yazılmış uygulamaların baştan yazılması gerektiği belirtiliyor.
- 10:58Web Teknolojileri ve Angular
- Web teknolojilerinde, browser temsilcileri, kod geliştiricileri ve community contributor'lar toplanarak standartlar belirliyor ve bu standartları browser yetkililerine iletiyorlar.
- Angular, web teknolojilerine dair bir cevap sunuyor ve uygulamaları tekrar yazmak zorunda kalabilirsiniz, ancak sadece zamanı yakalamayı amaçlıyor.
- Angular, ng.conf gibi büyük konferansları destekliyor ve web sitelerinden konuşmaları takip edebilirsiniz.
- 12:00Firebase Tanıtımı
- Firebase, JSON tabanlı NoSQL bir yapı üzerine kurulmuş bir veri servisidir ve gerçek zamanlı veri aktarımı sağlar.
- Firebase, üç taraflı data bağlamını destekler ve araya bir katman koyarak veri aktarımını hızlandırır.
- Firebase, platform bağımsız, güvenli, hızlı ve backend-frontend çatılarına destek veren bir sistemdir.
- 14:20Firebase'in Özellikleri
- Firebase, web tabanlı bir veritabanı olup, iyi bir kontrol paneli sunuyor ve dokümantasyon tabanlı JavaScript notasyonlu veri kullanabilirsiniz.
- Firebase, veri senkronizasyonu ve offline özellikleri sunuyor, web soketleri kullanarak veri aktarımını hızlandırıyor.
- Firebase, 2048 bit düzeyinde SSL şifrelemesi kullanıyor ve yetkilendirme panellerinden kullanıcı bazında erişim izinleri ayarlayabilirsiniz.
- 17:41Firebase ve Angular Entegrasyonu
- Angular ve Firebase entegrasyonu için AngularFire adında bir adaptör kullanılıyor, bu adaptör uzun kod yazmanızı önleyerek geliştirmenizi kolaylaştırıyor.
- AngularFire, Angular'a Firebase kütüphanesini entegre ederek, Firebase'in tüm metotlarını uygulamada kullanabilmenizi sağlıyor.
- Firebase ile entegrasyon için, Angular uygulamasında Firebase kütüphanesi eklenip, AngularFire adaptörü uygulamaya tanıtılır ve dependency injection yöntemiyle Firebase kütüphanesi eklenir.
- 20:57Firebase Verilerini Çekme
- Firebase'den verileri çekmek için "ez-object" kullanılır ve bu bir JavaScript podjo'su gibi çalışır.
- Ez-object, veriyi obje olarak çekerek obje içinde kullanılabilecek metotları sağlar.
- Ez-object'in "as object" ve "as array" metotları, üç katmanlı veriyi uygulamada sağlamamıza yarayan anahtar metotları taşır.
- 22:27Asenkron Veri İşlemleri
- Firebase'den gelen verileri ekrana yazdırmak için "loaded" metodu kullanılır, bu metot bir promist döndürür.
- Promistler asenkron işlemleri kolaylaştıran bir yapıdır ve jQuery de artık desteklenmektedir.
- Verileri aldıktan sonra view tarafında kullanmak için binding yapılabilir.
- 24:21Veri Çekme Yöntemleri
- Ez-object'li versiyonun yanında iterasyonlu bir versiyon olan "ezerre" de bulunmaktadır.
- Nesne yönetimi için constructor kullanılarak şehir referansı oluşturulabilir.
- Verileri çekmek için "as array" metodu kullanılır ve "add" metoduyla yeni veriler eklenebilir.
- 26:02Veri İşlemleri ve Hata Yönetimi
- Veri ekleme işlemi sonrası promistler son eklenen veriyi güncel halini döndürür.
- Hata durumunda hata mesajı döndürülür ve bu hata kullanıcıya gösterilebilir veya arka planda loglanabilir.
- Verileri ekrana basmak için "ng-repeat" deklarasyonu kullanılabilir.
- 28:18Veri Silme ve Güncelleme
- Veriyi silmek için "remove" metodu kullanılır ve bu metot bir obje veya obje referansı alır.
- Veriyi güncellemek için "save" metodu kullanılır ve bu metot da item veya indeks değeri alır.
- "Key" metodu ile belirli bir id ile veri getirilebilir.
- 28:57Firebase ile Veri Aktarımı
- Firebase, sunucu katmanının kendisinin Firebase olmasından bahsediyor ve bu tamamen size datayı sağlayan bir sistemdir.
- Backend sistemlerinin temel amacı, belli bir yerde tutulan değerli veriyi karşı tarafa (client side) ulaştırmaktır.
- Firebase, bu katmanı kaldırarak daha hızlı ve güncellenebilir veri sunmayı sağlar.
- 30:05Firebase'in Sunulan Özellikler
- Sunucu taraflı JSON, sadece uygulamalar için değil, dışarıya verilecek servis hizmetleri için de kullanılabilir.
- AngularFire, üç taraflı data modellemesi kısmında belirleyici olup, uygulama ile veri tabanı arasındaki bağlantıyı kurmamızı sağlar.
- İstemci taraflı MC çatısı olarak Angular kullanılır ve bu platform uygulama geliştirecek bir platform oluşturur.
- 31:13Referanslar ve Kaynaklar
- Firebase'in kendi sitesi, Crunchbase'de güncel çalışmalarına ve resmi bilgilerine ulaşılabilir.
- Angular'a dair library'leri bulabileceğiniz bir kısım ve Google'ın dokümantasyonu çok iyi.
- Tas Plus'ta basit bir uygulama ve Ege.io gibi kaynaklar da kullanılabilir.
- 32:30Soru-Cevap
- Firebase, cloud üzerinde çalışan bir sistem olmasına rağmen, yetkilendirme kısmında JSON üzerinden güvenli bağlantı kurma imkanı sunar.
- Firebase, Java'da yazılan uygulamalarda da kullanılabilir ve adaptör ile daha hızlı hale getirilebilir.
- Firebase'den veri export edilebilir ve import edilebilir, ayrıca yapılan değişikliklerin ardından da JSON üretilerek migration işlemleri için kullanılabilir.
- 36:47Customize Edilebilirlik ve Ölçeklenebilirlik
- Firebase tamamen JSON tabanlı bir customizeing sunar ve JavaScript notation'ı kullanır.
- Firebase, kullanıcı adı şifresi gibi otantikasyon yöntemlerini destekler ancak backend tarafında validasyon yapmaz.
- Firebase'de olan data değişiklikleri client'a otomatik push olarak gider ve Google, milyonlarca device'dan aynı anda bağlanıldığında cloud'a entegre olacak şekilde ölçeklenebilirlik sağlar.
- 39:43Firebase ve Veritabanı Kullanımı
- Firebase ve AngularJS kullanarak MySQL'e girmeden veritabanı oluşturup kayıt yapıp kullanıcıya gönderebilirsiniz.
- Firebase'de yapılan değişiklikler aynı zamanda diğer client'larda da görünür, ancak aradaki adaptör mantığını iyi oturtmak gerekir.
- Angular'daki servisler ve faktorlerle tanımlanan servisler Firebase'e entegre edilebilir ve benchmark yapılabilir.
- 42:17Firebase Tercihi ve Özellikleri
- Firebase'i tercih etmenin temel sebebi maliyet, ancak çok fazla veri olduğunda paralı hale geçirilebilir.
- Firebase performans açısından modern web teknolojilerine uygun, interaktif ve dinamik uygulamalar için önerilir.
- Firebase indekslemeyi otomatik olarak belirler ve JSON notasyonu standartları üzerinde çalışır.
- 44:42Firebase Veritabanı Yapısı
- Firebase'de tablolar ve ilişkiler yerine collection'lar ve raw'lar kullanılır, JSON notasyonu standardı geçerlidir.
- Collection'lar günümüzde kullandığımız tablolar, raw'lar ise kayıtlarımız olarak düşünülebilir.
- Her bir row'un içerisindeki değerlere key-value sistemi kullanılarak ulaşılabilir.
- 46:04Firebase ve Diğer Veritabanları Karşılaştırması
- PostgreSQL ve MySQL gibi veritabanları daha kullanışlı ve belli bir know-how gerektirir.
- Firebase, belli sorunlar yaşamaya başladığınızda göz atıp kullanabileceğiniz, uygulamanın belli yerlerine entegre edebileceğiniz bir yapı sunar.
- PostgreSQL vazgeçilmez bir araç olarak görülür ve Markfön tarafında sürekli kullanılır.
- 47:45Firebase'de Transaction Sorunları
- Firebase'de birden fazla kişi aynı anda düzenleyebilir veya silebilir, bu bir problem olarak görülebilir.
- Firebase, çekilen verinin karşı taraftaki karşılığını hashleme sistemiyle alır.
- En son kim yaparsa o kazanır, bu şekilde transaction sorunları çözülür.