Yazılımcılar İçin Hafta Sonu Okumaları - Sayı #74 / Sezon #4 (Kaliteli Kod, Tecrübeler, Vaka Çalışmaları, Blockchain Dünyası ve daha fazlası)
Merhaba aziz okuyucularım.
Bültenin 73. sayısıyla huzurlarınızdayım. Oku oku bitmeyen ama okuduğunuza değecek, seçmece yazılarla karşınızdayım.
Keyifli okumalar.
Kaliteli Kod
Kaliteli yazılım deyince aklıma ilk olarak temiz, rahatça düzenlenebilir, genişletilebilir, test edilebilir kod; tasarım prensipleri ve desenleri, dokümantasyon gibi kavramlar geliyor. Bu konularda güzel yazılara rast geldim.
Recep İnanç, Martin Fowler'ın Refactoring kitabından notlarını paylaştığı bir seri kaleme almış. Diğer bir yazısında ise teknik kitapları "efektif" okuma konusunda tavsiyelerini yazmış.(İng)
Cihat Solak, Dependency Inversion prensibi hakkında 3 yazılık bir seri kaleme almış.
Emre Tanriverdi, tasarım desenleri hakkında yazdığı ve gerçek hayat örnekleriyle bezediği yazıları toparlayıp tek yazı halinde paylaşmış. (İng)
Çağdaş Yılmaz, Clean Code kitabını özetlediği bir seriye başlamış.
Deniz TÜRKMEN, Docker ve Kubernetes ile statik kod(kalitesi) analiz aracı SonarQube kurulumunu ve kullanımını anlatmış.
Evren Tan, Java'da kodları daha okunur hale getirmeyi sağlayan JavaDoc özelliğini anlatmış. (İng)
Kalitenin Temini ve Muhafazası için Test
Kaliteli yazılımın bir özelliği olarak test edilebilir demiştim. Birim testi ve entegrasyon testi kodun kalitesi için önemli bir etken iken ortaya çıkan yazılımın kalitesini muhafaza etmek için de QA ekiplerince biraz daha üst seviye yapılan testler önem kazanıyor.
Evren Pehlivan, .NET 6'da mevcut bir veritabanı yerine SQLite kullanarak entegrasyon testleri oluşturmayı anlatmış. (İng)
Sevilay Ağıl, Trendyol'da "Sipariş Yönetim Sistemi"nin test mimarisini anlatmış. Yasin Onur Gürbüz ise bu test yapısını nasıl izlediklerini(monitoring) anlatmış. Feyza Dayan, Android International takımı olarak uyguladıkları test pratiklerini yazmış.(İng). Hazel Turan İnel ise bu global uygulamanın testlerinde karşılaştığı zorlukları anlatmış.
İlhan Sarı, iOS’te Unit Test yazma hakkında bir seriye başlamış.
Mustafa Büyüksoy, JMeter ve Grafana gibi araçları kullanarak RESTful Api'lar üzerinde performans testi yapmayı ve sonuçları göstermeyi anlatmış.
Kaan Türkmen, kendi uygulamanıza neden saldırmanız gerektiğinden ve kaos mühendisliğinden bahsetmiş. (İng)
Burak Ergören, Node.js ile geliştirdiği CRUD içeren Api uygulamasına test yazmayı, Swagger eklemeyi ve bu uygulamayı Dockerize etmeyi anlatmış. (İng)
Açık Kaynak Projeler
Alperen Keleş, açık kaynak olarak geliştirmeye başladığı CV üretici uygulamanın fikir aşamasından itibaren ürün gelişimini anlattığı bir seriye başlamış.
Özgür Adem IŞIKLI, açık kaynak olarak geliştirdiği ve Node.js'te REST Api projeleri üretmeyi sağlayan Axe aracını anlatmış. (İng)
Ömer SAVAŞ, açık kaynak olarak paylaştıkları bir kamu projesinin bir video ile detaylıca anlatmış.
Tecrübeler, Vaka Çalışmaları
Hüseyin Polat Yürük, büyüyen bir startup'ta VP of Engineering olarak geçirdiği bir yılı; yaptığı hataları, karşılaştığı problemleri, bunları nasıl aştığını ve bunlardan çıkardığı dersleri genişçe yazmış.
Erçin Akçay, Sahibinden.com'da oldukça yoğun kullandıkları Elasticsearch'ün versiyonunu 0.9'dan 7.x'e -hizmet kesintisi olmadan- nasıl upgrade ettiklerini anlatmış.
Abdullatif Topçu, monolitik bir uygulamayı mikroservis mimariye nasıl dönüştürdüklerini ve konteynerlaştırdıklarını anlatmış.
Blockchain Dünyası
Mithrandir, Blokzinciri teknolojisini, işleyişini, çözdüğü ve uğraştığı problemleri genişçe yazmış. Teknolojiyi tanımak isteyenler için rehber niteliğinde bir yazı.
Turan Sert, Blokzincirler hakkında hazırlanan bir geliştirici raporunu inceleyerek farklı blokzincirlerinin geliştirci ekosistemlerinin değişiminden bahsetmiş.
İsmail Emin Erdoğdu ve Alim Şahin, Blokzinciri ağlarında kullanılan konsensüs yöntemlerini anlatmış.
Elif Hilal Umucu, farklı blokzinciri ağlarının mesajlaşabilmesini ve birlikte çalışabilmelerini sağlamayı vaat eden CCIP protokolünü anlatmış.
Mehmet Ali Peker, Web sitelerine OAuth ile girişten bahsetmiş ve Ethereum ile login seçeneği eklenmesini anlatmış.
Uygulama Güvenliği
Ziyahan Albeniz, SOCRadar'ın Türkiye saldırı yüzeyleri(Attack Surface) hakkında hazırladığı rapordan dikkatini çeken noktaları paylaşmış.
Fatih İver, Java ile geliştirilern web uygulamalarında HTML injection'ın nasıl engelleneceğini anlatmış. (İng)
Berkay Şen, zafiyet içeren bir sisteme nasıl sızılabileceğini örnek bir saldırı üzerinden anlatmış.
Message Broker'ları Daha İyi Tanıyalım
Haydar Can Kubilay Gümüş, Kafka'yı anlattığı seride biraz daha detaylara dalarak Producer yapısını anlatmış. (İng)
Hakan Yalıtekin, RabbitMQ'ya oldukça geniş bir giriş yapmış ve örneklerle tüm Exchange türlerini anlatmış
Frontend Becerilerinizi Geliştirin(Sponsorlu)
Firmalara yazılımcı değil yazılımcılara firma bulan nevi şahsına münhasır startup TalentGrid(dilerseniz şuradan benim selamımla gidip profilinizi oluşturabilirsiniz), paylaştığı blog yazısında frontend becerileriniz geliştirebileceğiniz örnek projelerden bahsetmiş.
Etkinlik
AWS Community Day Türkiye etkinliği 26 Mart'ta hem fiziksel hem de online katılımla düzenleniyormuş. Online katılımın ücretsiz olduğu etkinlikte katılımcılara toplamda 2000 dolarlık AWS kredisi de hediye edilecekmiş.
Kısa Kısa
Burak Selim Şenyurt, son dönemdeki gözdesi Rust'ı detaylı yazılarla anlatmaya hız kesmeksizin devam ediyor.
Hamit Seyrek, "ileri seviye yazılım geliştirici" olmak için öğrenilmesi gerekenleri yazdığı güzel ve uzun bir seriye başlamış.
Ferhat Özkan, CAP(consistency, availability, partition tolerance) teoremini, dağıtık sistemleri ne kadar kapsadığını ve güncelenmiş versiyonu denilebilecek PACELC teoremini yazmış. (İng)
Ayşe Nur Bakırcı, iOS'te eşzamanlılık(concurrency) yönetimini anlatmış.
Mehmet Can Taş, eşzamanlılık(Concurrency) ve paralel çalışma(Paralellism)dan başlayarak Goroutine ve Go Scheduler'ı anlattığı bir seriye başlamış.
Fatih Küçükkarakurt, bir React projesinin planlanmasını, geliştirme aşamasını; yayımlama, test, performans stratejilerini ve bütün bu aşamalarda kullanılan araçları anlatmış. (İng)
Oguzhan Ergun, Go, React ve gRPC-Web ile pratik şekilde mikroservis mimarisinde Web uygulamaları oluşturmayı anlatmış. (İng)
Serkan SAKINMAZ, Kubernetes hakkında workshop uygulaması tarzında geniş bir yazı yazmış. (İng)
Salih Cantekin, Dapper ve Entity Framework arasında yaptığı detaylı kıyaslamaları paylaşmış.
Akif Safa Yıldız, frontendde atomik tasarım yaklaşımını(atomic design system) anlatmış. (İng)
Erman Terciyanlı, Redis'te milyonlarca key ile çalışmak için kullandıkları Hash Structure yapısından bahsetmiş. (İng)
Betül, Sticky Session'ları Redis ve load balancer kullanarak hibrit olarak nasıl yönettiklerini anlatmış.
Ali Elmalı, şirketlerde SRE(Site Reliabilty Engineering) kültürünü geliştirme hakkında 5 yazılık bir seri kaleme almış.
Oğuzhan Sezer, JavaScript'e ES6 ile gelen Map, Set, WeakMap ve WeakSet yapılarını anlatmış.
Onur Dayıbaşı, JavaScript'te ağaç(tree) yapısı oluşturmayı anlatmış.
Veli Bacık, Flutter'da özel ihtiyaçlara yönelik kullandıkları yerelleştirme(localization) yöntemleri anlatmış. (İng)
Gülşen Keskin, Flutter geliştirmede tavsiye edilen pratikleri yazmış.
Esra İnce, olay güdümlü yaklaşımı(event driven approach) bankacılık uygulamasında nasıl kullandıklarını anlatmış.
Göker Güner, gözetimsiz öğrenmeyi, kümelemeyi ve kümelemede kullanılan bazı algoritma ve yaklaşımları anlatmış.
Vahit Bayri, JWT Token kullanımı hakkında yaklaşımlardan bahsetmiş. (İng)
Burak Kutbay, Spring Security hakkında video anlatım eşliğinde bir seriye başlamış.
Mehmet Fırat KOMURCU, mikroservis mimaride cevap vermeyen servislerin birbirini engellememesi için kullanılan Bulkhead tasarım desenini anlatmış.
Gökhan Ayrancıoğlu, sunucudan istemciye mesaj gönderim yöntemlerinden Server-Sent Events(SSE)'i anlatmış. (İng)
Muhammed İkinci, hafta sonu projesi olarak Svelte, Tailwind CSS ve Socket.io kullanarak bir mesajlaşma uygulamasını nasıl yazdığını anlatmış. (İng)
Önder Bakırtaş, kuş bakışı Svelt'i anlatmış.
Sevcan Doğramacı, derleyicilerin(compiler) genel çalışma prensibini anlatmış. (İng)
Halit Hasbolat, RESTful API tasarımında tavsiye edilen pratikleri yazmış. (İng)
Ali Orhun Akkirman, sunucu işletim sistemi olarak hangi durumda hangi Linux dağıtımının tercih edilebileceğini anlatmış.
Berkay Şen, Django Rest framework'ü hakkında 5 yazılık bir seri kaleme almış.
Onur Elibol, frontend geliştiriciler özelinde iş başvurusu ve kariyer planı konusunda tavsiyelerini yazmış.
Mustafa Samed Yeyin, ASP.NET Core'da HTTP çağrıları yapmak için kullanılan HttpRequest yapısını anlattığı 3 yazılık bir seri kaleme almış.
Cihat Solak, .NET Core'da HTTPClientFactory'nin farklı kullanım yöntemlerini anlatmış.
Turan Kılıç, özellikle ürün geliştirmede kullanılabilecek SWOT analizi yöntemini anlatmış.
Teoman Yalçınöz, ağ yapılarının katmanlarını içeren OSI modelini anlatmış.
Bitirirken
Bu sayının da sonuna geldik. Beğendiyseniz paylaşmayı; eleştirileriniz, önerileriniz varsa iletmeyi unutmayın.
Faydalı olması ümidiyle. Sağlıklı günler dilerim.
Zâtınıza çook iyi davranın.
Çay, kahve ısmarlamak için: Patreon