Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen ve çeşitli katılımcıların (Agah Güler, Numan Can, Samet Aylak, Fatih, Emre gibi) katılımıyla gerçekleşen teknik bir eğitim ve topluluk toplantısı formatındadır.
- Video, Açık Kaynak web sitesi ve API projesinin geliştirilme sürecini kapsamlı şekilde ele almaktadır. İçerikte web sitesinin tasarım süreci, Figma üzerinde yapılan yeni tasarımın uygulandığı bölümler (haberler, eğitim, projeler, organizasyonlar, sponsorlar, istatistikler), serverless mimari, AWS Lambda fonksiyonları, React komponent türleri ve API projesinin teknik yapısı (Node.js, serverless framework, deployment süreçleri) detaylı olarak anlatılmaktadır.
- Videoda ayrıca GitHub API'si entegrasyonu, kullanıcı giriş mekanizması, SNS ve SQS gibi AWS hizmetlerinin kullanımı, profil oluşturma süreçleri ve sayfa performansı gibi teknik konular da ele alınmaktadır. Ayrıca, Türkiye Açık Kaynak Platformu'nun düzenleyeceği "Açık Ekte" adlı hackathon etkinliği hakkında bilgi verilmektedir.
- 00:01Açık Kaynak Projesinin Gelişimi
- Konuşmacı, açık kaynak projesinin nasıl geliştiğini ve projenin arka planındaki süreci anlatacağını belirtiyor.
- Açık kaynak.org adresinde daha önce bayağıdır bir sayfa vardı ve çok aktif değildi.
- Projenin hedeflerinden biri açık kaynak inisiyatifini oluşturmak ve canlandırmaktı.
- 01:10Tasarım ve Gelişim Süreci
- Tasarımcı Agah Güler, Figma üzerinde yeni bir tasarım hazırladı ve bu tasarım işleri hızlandırdı.
- Tasarım sonrası açık kaynak on yol haritası yayınladılar ve bir sprint süreci başlattılar.
- Proje içinde haberler, eğitim, projeler, organizasyonlar, sponsorlar ve istatistikler gibi bölümler oluşturuldu.
- 03:15Projenin Teknik Yapısı
- Proje Türkçe'ye çevrildi ve çalışma ortamı nasıl hazırlanacağı, git clone yapma, development ortamı açma gibi bilgiler eklendi.
- Proje içinde yapılacaklar listesi (to do, in progress, review) renkli ve madde madde görüntülenebiliyordu.
- Projeye Numan Can, Samet Aylak, Okan Davut, Mehmet Ali Peker, Erhan Namal, Kaan Gökdemir ve Berat Bozkurt gibi katkıda bulunanlar oldu.
- 04:47Projenin Mevcut Durumu
- Projenin en büyük eksikliği arka plana değen noktalar, haberler, eğitim, lisanslar ve rehber kısmı hala tamamlanmamış durumda.
- Rehber kısmı GitHub üzerinden geliyor ve sayfa kaynağına bakıldığında bu dinamik olarak GitHub'dan çekilen içerikler görülebiliyor.
- Projeler kısmı da GitHub'dan çekilen içeriklerle dolduruluyor, ancak organizasyonlar, sponsorlar ve istatistikler henüz yapılmamış.
- 09:11API Projesi ve Gelecek Planları
- Açık kaynak API projesi serverless ile oluşturulmuş ve şu an konuşmacı tarafından yönetiliyor.
- Konuşmacı, API projesinin tabanını anlatıp servisleri tanımlayıp, nelerin amaçlandığını konuşup, isru'lar yaratarak ilerleyebilirler diye düşünüyor.
- Projenin performansı konusunda konuşmacı, GitHub'ın hızlı servis verdiği ve sayfanın render edilirken içeriklerin paralel olarak çekildiğini belirtiyor.
- 16:29Fonksiyonel Programlama ve AWS/Azure Kullanımı
- Lambada çalışan kodlara odaklanırken, mimari ve bağlantı kısımlarını AWS veya Azure gibi hizmetlere devretmek mümkün.
- Basit bir fonksiyon örneği olarak "action" adında bir fonksiyon tanımlanmış, input parametresi alıyor ve "result" objesinde mesaj döndürüyor.
- Production ortamında değilse, fonksiyon input parametresi ve environment bilgilerini de döndürüyor.
- 18:43Serverless Framework Kullanımı
- Serverless framework kullanırken, fonksiyonların varlığını framework'e bildirmek için bir şablon kullanılıyor.
- Fonksiyonlar için key, handler ve HTTP event bilgileri tanımlanıyor.
- API çağrısı geldiğinde belirtilen fonksiyon çalıştırılıyor ve sonuç döndürülüyor.
- 20:48Lokal Geliştirme Ortamı
- Lokal geliştirme ortamında "serverless offline" komutu ile bir sunucu başlatılıyor.
- Sunucu başlatıldığında endpoint'ler gösteriliyor ve fonksiyonlar test edilebiliyor.
- Development ortamında, production değilse input ve environment detayları görüntülenebiliyor.
- 23:06Projeler Endpoint'i
- "list projects" adında bir endpoint var ve bu endpoint GitHub'tan bir JSON dosyası çekiyor.
- Production versiyonda bu veriler database'den alınacak, ancak şu an GitHub'tan çekiliyor.
- Bu yapı, arka planda içerik değiştiğinde front-end tarafının değişikliğe girmeden devam etmesini sağlıyor.
- 25:08Açık Kaynak Projesi Hakkında
- Açık kaynak projesinde insanlar kendi projelerini ekleyecek ve daha sonra bir kontrol mekanizması geçecek.
- Konuşmacı GDG İzmir'de bir sunum yapacak ve muhtemelen internetten de yayınlanacak.
- Konuşmacı açık kaynak konseptinden çok uzaklaşmak istemiyor, ancak server konusunda detaylı bilgi vermek istiyor.
- 26:55Python ve Django Hakkında Görüşler
- Konuşmacı Python'ı oldukça olumlu buluyor ancak çalışma alanlarında Python'ın güçlü olduğu noktalar olmadığı için çok kullanmıyor.
- Web ve yazma taraflarında çalıştığı için JavaScript ve Java'yı tercih ediyor, ancak AI gibi alanlarda Python'ın güçlü olduğunu belirtiyor.
- Django hakkında bilgisi sınırlı, ancak insanların işini kolaylaştıran süper bir yapı olduğunu biliyor.
- 28:37Kubernetes ve Alternatifler
- Kubernetes, ciddi firmalar ve cloud providerların destek verdiği, büyük bir olgunluğa sahip bir ürün olduğu için sahibinden.com gibi siteler için de uygun olabilir.
- Konuşmacı K3S kullanıyor ve bunu daha light ve çalışan bir hali olarak tanımlıyor.
- Lokalde MiniKube ve K3S denediğini, Kubernetes üzerinde deneyimleme şansı bulduğunu belirtiyor.
- 31:11Açık Kaynak Projesi'nin Gelişimi
- Açık Kaynak Projesi 2015'te başlamış ve GitHub'ın kendi kaynaklarıyla olmasını istiyorlardı.
- Proje başlangıcında 46 tane fork yaratılmış ve insanlar kendi projelerini eklemişler.
- Yeni yapı Travis'in yapısına benziyor: solda organizasyonlar, sağda kullanıcıların dahil etmek istediği ripoların listesi bulunuyor.
- 34:20Açık Kaynak Web Sitesi'ne Katkı
- Açık Kaynak Web Sitesi projesi React ağırlıklı olduğu için yeni katılımcılar için zor olabilir.
- React bilgisi olanlar için JavaScript bilgisi orta üstü olması gereken projelere katkıda bulunabilirler.
- Sitede tasarımda olup sitede olmayan yuvarlaklar veya API projesine katkıda bulunulabilir.
- 38:34React'te Functional ve Class Komponentler
- Functional component ve class komponent arasında temel fark, class komponentin React lifecycle event'leri ve render metodu gibi özellikleri sunmasıdır.
- React 16 ile birlikte Hux özelliği tanıtıldı ve artık functional komponentlerde state yönetimi yapılabilir hale geldi.
- React 16.8 update ile başlayan bu değişiklik, class komponentlerin kullanımına gerek kalmamasına neden oldu ve gelecekte React 19'da class komponentlerin desteklenmemesi muhtemeldir.
- 42:12Açık Kaynak API Yol Haritası
- Açık kaynak API için basit bir yol haritası oluşturuluyor ve ekran ikiye bölünerek plan yapma pratik uygulanıyor.
- Anasayfada GitHub ile giriş fonksiyonu temel bir işlev olarak tasarlanıyor.
- Haberlerin API üzerinden alınması ve tasarımı belirleniyor, ayrıca rehber kısmının da GitHub üzerinden gelmesi planlanıyor.
- 45:00Programlama ve Geliştirme Tavsiyeleri
- Bilgisayar mühendisliği öğrencisi için, zevk aldığınız alanlara yönelmeniz öneriliyor çünkü programlama sürecinde saatlerce çalışmak gerekebilir.
- Görsel çıktılar ortaya çıkması, geliştirme sürecini daha keyifli hale getirebilir, ancak bazı insanlar için büyük problemleri çözmek daha tatmin edici olabilir.
- API, database ve diğer detaylar yol haritasında belirtiliyor, ancak detaylar analiz dokümanı haline gelmemesi için minimum seviyede tutuluyor.
- 51:54Proje ve Organizasyon Verilerinin Veritabanından Alınması
- Projeler kısmındaki projelerin dinamik olarak veritabanı üzerinden alınıyor olması gerekiyor.
- Organizasyonlar da GitHub'dan alınabilir ve projelerle benzer bir yapıya sahip olabilir.
- Cloud mimarisi, AWS'deki SNS ve SQS sistemlerinden bahsedilecek.
- 55:48İstatistikler ve Kullanıcı Verileri
- İstatistikler bölümünde GitHub ile giriş yapan kullanıcıların repoları, kullanılan programlama dilleri, commit sayıları gibi basit istatistikler toplanacak.
- Kullanıcıları birbiriyle karşılaştırmak veya ranking'e sokmak yerine, Türkiye'deki PHP developerların yoğunluğu veya TypeScript ile oluşturulan proje sayısı gibi genel istatistikler gösterilecek.
- Kullanıcıların konumları gibi bilgiler de toplanacak.
- 59:25Anasayfa ve Giriş Akışı
- Anasayfada vitrine örnek açık kaynak projeler çıkacak ve projelerin seçilebilir olması gerekiyor.
- GitHub ile giriş akışı için bir diyagram çiziliyor.
- Kullanıcı GitHub'a yönlendirilip geri döndükten sonra notification mesajı gönderiliyor.
- 1:13:22AWS Lambda ve GitHub Entegrasyonu
- Bir kullanıcı açık kaynak orga ve GitHub'la giriş yaparak siteye erişiyor.
- GitHub'la girişe basıldığında, bir endpoint'te çalışan fonksiyon GitHub'a bağlanıyor ve kullanıcıyı "out github callback" adresine yönlendiriyor.
- Bu işlem sırasında, backend SNS üzerinden bir notification göndererek cloud'da bir mesaj oluşturuyor.
- 1:14:24Notification ve SQS İşlemi
- Oluşturulan mesajı dinlemek isteyen diğer cloud organları ve fonksiyonlar bu kanala abone olabiliyor.
- Kullanıcı login olur olmaz, SQS'e bir iş atılıyor ve "user crowler" fonksiyonu çalıştırılıyor.
- User crowler, GitHub'a bağlanarak kullanıcının repo listesini alıyor ve her repo için ayrı bir iş oluşturuyor.
- 1:17:00Veritabanı Güncelleme İşlemi
- User crowler, alınan repo bilgilerini veritabanına ekliyor veya mevcut repo bilgilerini güncelliyor.
- Bu sayede kullanıcı profilini ziyaret ettiğinde repolarını görebiliyor.
- Bu akış için gerekli altyapı ufak bir kodla oluşturulmuş.
- 1:18:18Serverless Framework Kullanımı
- Serverless framework ile sadece Lambda fonksiyonları değil, diğer kaynaklar da tanımlanabiliyor.
- Fonksiyonlar HTTP istekleriyle değil, SQS'de bir item atılması veya zamanlamalarla da tetiklenebiliyor.
- Örneğin, "github import user" fonksiyonu, SQS'de bir item atıldığında çalıştırılıyor.
- 1:21:16GitHub Import İşlemi
- GitHub import fonksiyonu, access token ile kullanıcının tüm repo'larını çekiyor.
- Anonim olarak GitHub API'sini kullanmak rate limitine sahipken, access token ile kullanıcı tarafından tetiklenen işlemler daha fazla erişim sağlıyor.
- Her repo için "process user repo" fonksiyonu çalıştırılıyor ve tamamlandığında işlem bitiriliyor.
- 1:23:50Gelecek Planlar
- Önümüzdeki günlerde yol haritası tanımlanacak ve detaylar eklenerek geliştirme yapmaya devam edilecek.
- Bir haftalık süreçte belirli maddeler tamamlanmaya çalışılacak.
- Ortam yeni kurulduğu için ufak tefek aksilikler yaşanabiliyor.
- 1:27:06Açık Kaynak Org ve Türkiye Açık Kaynak Platformu
- Açık kaynak org, 2015'ten beri topluluk ürünü olarak ilerleyen bir proje.
- Türkiye Açık Kaynak Platformu, Sanayi Bakanlığı çatısı altında oluşturulan çok katılımcılı bir platform.
- Açık Ek etkinliği, 30 Kasım'da Bilişim Vadisi'nde yapılacak ve Türkçede dil işleme konusunda 24 saatlik bir hackathon olacak.
- 1:30:21Anasayfa Vitrini İçin Proje Seçimi
- Anasayfa vitrini için projelerin seçimi konusunda, hangi kriterlerle vitrine çıkacak projelerin seçilmesi tartışılıyor.
- Açık kaynak bir uygulama olması, content management sistem olması ve dosyaların yer aldığı rap olabilmesi gibi kriterler öne çıkıyor.
- Projelerin kategorilere ayrılması öneriliyor: büyük uygulamalar, basit front-end development widget'ları ve kütüphaneler gibi.
- 1:34:33Performans Testi
- Rehber sayfasında rea markdown komponentinin render süresi test ediliyor.
- Komponent 23 milisaniyede render oluyor ve cash'ten geldiğinde 68 milisaniyeye kadar düşüyor.
- Sayfanın genel render süresi 1,20 saniye civarında ve GitHub'ın içerik çekme ve markdown formatını HTML'e çevirme işlemi hızlı bir şekilde gerçekleşiyor.
- 1:38:37Açık Kaynak Platformu
- Açık kaynak platformu için Telegram kanalı kullanılıyor ve kullanıcılar buradan haberleşebiliyor.
- Lisanslar kısmının nasıl yapılacağı tartışılıyor.
- Discord bağlantısı yapılması planlanıyordu ancak teknik sorunlar nedeniyle yarıda bırakıldı.