Kitap İncelemesi: Golang’da Olay Odaklı Mimari
Michael Pila
Golang’da olay odaklı mimari
Eşzamansız ve nihai tutarlılığa sahip karmaşık sistemler oluşturun
Packt, Kasım 2022
384 sayfa, 11,99 Euro’dan başlayan fiyatlarla (kağıt ve e-kitap)
ISBN: 9781803238012
Bazı muhafazakar yazılım geliştiricileri, Ted Faison’ın klasik “Olay Odaklı Programlama: Olayları Sınıra Taşımak” adlı eserinde olay odaklı programlama hakkında söylenebilecek her şeyi söylediği görüşündedir. Bu eser her ne kadar okumaya değer olsa da bahsettiği programlama dilleri güncelliğini yitirmiştir. Packt-Verlag, Michael Stack’in yazdığı “Golang’da Olay Odaklı Mimari” ile, Go ile olay odaklı bir sistemi bir araya getirmek isteyen herkesin ihtiyaçlarına hitap eden yeni bir İngilizce kitabını piyasaya sürüyor.
Stack, minimum sürüm olarak Go 1.17 gerektirir ve yürütme ortamı olarak Windows 10’u kullanır – ancak öncülde, örneklerin “çoğunun” hem Ubuntu Linux hem de Linux için Windows Alt Sistemi altında çalıştırılabilir kalacağını vaat eder.
Tasarım modellerinden uygulamaya
İlk bölüm, olay güdümlü tasarımın temellerini öğretmeye adanmıştır. İncelemeyi yapan kişi, Çözümler’deki olayların akışını iletmek için kullanılan – ve bu muhtemelen yazarın belirli bir özelliğidir – altıgen diyagramları ilginç buldu. Malzemenin kapsamı açısından, çalışmanın bu kısmı eleştiriye neden olmaz. Stack, okuyuculara ders kitabının geri kalanında rehberlik ederek kavramları pratik hale getiren bir tür web mağazası yönetim sistemi sunar. Yazar, neredeyse geçerken, olaya yönelik sistemlerin faydalarını açıklıyor ve geliştiricilerin kötü yapılandırılmış olaya yönelik sistemlerde karşılaşabilecekleri sorunları da kısaca ele alıyor.
(Fotoğraf: Packt)
Son yıllarda yazılım mimarisinin daha da geliştirilmesi, olay odaklı geliştirme ve tasarım süreçlerinin artık kenarda olmadığı anlamına geliyordu. Bunun yerine, etki alanına dayalı tasarım ve kötü şöhretli Komut Sorgusu Sorumluluk Ayrımı gibi diğer destekleyici teknolojileri de içeren az çok karmaşık bir geliştirme sürecine bağlıdırlar. Stack, olay odaklı mimarinin gerçek göreviyle ilişkili olarak bunları tanıtmak ve keşfetmek için bu konulara kısaca değinir. Ancak, yaklaşık 400 sayfalık bir ders kitabı bölümü, elbette tam bir giriş sağlayamaz.
Son olarak yazar, yazılım sisteminde uygulanacak olay mimarilerinin gerçek tasarımını kolaylaştırmak için yöntemler ve süreçler sunar. Etki alanına dayalı tasarım alanında aslında çok yaygın olan olay fırtınasına dayanır – Stack, süreçleri anlaşılır ve anlaşılır bir şekilde sunmayı başarır.
kod yönünde
Yazar, olay yönelimli mimarinin bir parçası olan tasarım kalıplarını tartıştıktan sonra, ilgili okuyucuların gerekirse bir Docker konteyneri olarak bilgisayarlarına yükleyebilecekleri web mağazası yönetim sistemini çalıştırmaya başlar. Bir sonraki adım, Go geliştiricileri ile olay yönelimli programlama ilkeleri arasındaki ilk teması temsil eden etki alanı olaylarının eklenmesidir.
Yazar daha sonra olay kaynağına hitap eder: bu şekilde, olayları salt eklenti veri akışına ekleyerek olayların işlenmesini anlar. Tüm akış analiz edilerek sistemin mevcut veya en son durumu her zaman geri yüklenir. İlk başta bilgi işlem gücü israfı gibi görünen şey, günlüğe kaydetme nedeniyle pratikte faydalı olur. Bu iki bölümde, Stack birçok manuel programlama yapar.
Eşzamansız bağlantıları ele alan altıncı bölümde, yazar olay sistemlerine geri dönüyor: NATS JetStream temel olarak hizmet ediyor. Sonraki deneyler, yekpare uygulama ile JetStream olay sistemi arasındaki entegrasyonu araştırır. Stack ayrıca PostgreSQL kullanarak ilk veri kalıcılığı deneylerini yürütüyor.
Yazar, çalışmasını ulusötesi mesajlar kavramıyla tamamlıyor ve aynı zamanda İngilizce konuşulan ülkelerde giderek popüler hale gelen destanın mimari konseptini de derinlemesine inceliyor.
Olay yönelimli sistemlerin işletilmesi
Çoğu zaman birçok ders kitabı belirli bir tasarım modelinin uygulanmasını basitçe sunar. Kullanıcıların ortaya çıkan sistemi değer yaratmak için nasıl kullanabilecekleri genellikle onlara bırakılmıştır.
Neyse ki Stack farklı bir yaklaşım benimsiyor: kitabının üçüncü ve son mantıksal bloğu, olay odaklı sistemlerin test edilmesiyle ilgili. Farklı test yöntemlerinden oluşan bir seçki sunar. Genel olarak yazılım testi ve özel olarak Go uygulama testi hakkında temel bilgiler, okuyucuların (kompakt) bölümden en fazla değeri elde etmek istemeleri durumunda yardımcı olur.
Öğreticilerini kullanmak için Stack, yürütme ortamı olarak Docker’ı kullanır, AWS Cloud’a devreye alır ve düzenleme için Terraform’u kullanır. İncelemeyi yapan kişinin bakış açısından, yazarın temel olarak AWS ile etkileşimi bir bütün olarak ele alması övgüye değer.
Son olarak Stack, olay odaklı kümeyi izlemek için faydalı bir grup yazılım sistemi sunar. Tartışmaları kısa ama pratikte faydalı.
Olay yönelimli programlama yoluyla uzun bir yolculuk
Eleştirmen gibi, bir zamanlar olaya yönelik programlamanın klasikleriyle büyümüş ve günümüzün olaya yönelik gelişimi hakkında daha fazla şey öğrenmek isteyenler, kitabı aldığına kesinlikle pişman olmayacaktır. Bu iş aynı zamanda, üyeleri olay odaklı geliştirme konusunda henüz herhangi bir deneyime sahip olmayan bir “gofers” ekibini yönetmek zorunda olan herkes için de geçerlidir.
Tam Hanna
2004 yılından beri PDA’lar ve elektronik ile uğraşmaktadır. Şu anki odak noktası, bilgi teknolojisinin disiplinler arası uygulamalarıdır.
(harita)
Haberin Sonu