GO YAZILIM DİLİ ATÖLYESİ
Eğitim Süresi: 8 Hafta
Eğitmen: Alamettin Çelik
Atölye Kontenjanı: 40
Atölye İzlencesi
1. Hafta: Veri Yapıları ve Pointer Kullanımı
İçerik: Golang programla dilindeki temel konuların sonuncusu ve ileri konuların başı sayılabilecek iki konu olan pointers, structs, interface mantıklarının öğrenilmesi ve Kuyruk (Queue) Veri Yapısı için gerekli örneğin çıkartılması.
2. Hafta: Multi-Threading Konuları
İçerik: Cache sistemi tasarımında çoklu dosya okuma için Multi-Threading ve In-Memory Caching’de Mutex ile Race Condition’ın engellenmesi üzerine örnek geliştirilmesi (2 Saat).
3. Hafta: Rest API tasarımı
İçerik: Http Kütüphanesinin kullanımı, Mux kütüphanesinin entegre edilmesi ve sunucu geliştirilmesi.
4. Hafta: Gorm.IO ile Model yapıları ve Database bağlantısı
İçerik: Docker üzerinde ayağa kaldıracağımız Postgresql ile oluşturacağımız model yapıları ile CRUD işlemlerinin gerçekleşmesi.
5. Hafta: Unit Test Geliştirmek ve Test edilebilir geliştiricilik
İçerik: “Test türleri nelerdir, nasıl kullanılır?” sorularının yanıtlanması, CI/CD işleminden bahsedilmesi ve InMemory Caching, Rest API ve Gorm Model yapılarının Unit testlerinin geliştirilmesi.
6. Hafta: Temiz Yazılım Mimarisi ve Hexagonal Mimari
İçerik: Hexagonal mimari ile önceki uygulamamızın benzerinin gerçekleştirilmesi.
7. Hafta: Mikro servis ve gRPC ile haberleşme
İçerik: “Mikroservis yapısı nedir? Nasıl kurgulanmalıdır? Neden kullanılır? Mikro servislerin iletişiminde Rest API yerine gRPC kullanımının avantajları nelerdir?” sorularının yanıtlarının incelenmesi ve basit bir geliştirme ile pekiştirilmesi.
8. Hafta: Workflow geliştirme
İçerik: Temporal IO kullanımı ve workflow geliştirilmesi üzerine detaylı incelemeler yapılması, Senkron ve Asenkron iletişim yöntemleri ile workflow adımlarının kurgulanması ve basit bir insansız işletme örneği tasarlanması.
Atölye Kazanımları
– Golang Programlama dili ile uygulama geliştirme süreçlerinde kullanılan tekniklerin ve teknolojilerin öğrenilmesi,
– Golang Programlama dilinde veri yapıları, Pointer kullanımlarının öğrenilmesi,
– MultiThreading, Mutex ve Channel mantıklarının detaylı incelenmesi,
– Rest API ile senkron bağlantı örneklerinin Golang’de geliştirilmesi,
– Gorm.io kullanımı ve PostgreSQL ile veri yönetiminin öğrenilmesi,
– Test edilebilir geliştirmeler ve Unit Test yazma tecrübeleri,
– Temiz Geliştirme Yöntemi, Hexagonal Mimari ile uygulama geliştirilmesi,
– gRPC protokolünün Golang üzerinde kullanılması,
– Temporal IO ile Workflow geliştirilmesi.
Atölye İçin Gerekli Uygulamalar
Golang yazmak için gerekli uygulamaların kurulu olması, Golang IDE’si (Tercihen Goland) kurulu olması, Docker (Docker’da kullanacağımız paketler bilgisayarların belleğine ihtiyaç duyduğu için en az 8 GB Ram’li cihazlar ders için elverişli olacaktır) kurulumunun düzgün şekilde tamamlanmış olması gerekmektedir.
Not: Windows cihazlarda Docker WSL2 seçilmesi tercihen tavsiyemizdir.
Katılımcılarda Aranan Nitelikler
– Genel programlama bilgisine hâkim olmak
– Golang temel eğitimini tamamlamış veya konulara ve syntax’a hâkim olmak
– Yazılım tekniklerini öğrenip, geliştirmek istemek ve ihtiyaç duymak