Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #4 / Sayı #73(Pull Request ve Code Review Adabı, Micro Frontends Tecrübeleri, Performans ve Ölçekleme ve daha fazlası)
Merhaba aziz okuyucularım.
Bültenin 73. sayısıyla huzurlarınızdayım. Yine tıka basa dolu bir sayıyla, okumaya doyamayacağınız yazılarla karşınızdayım.
Keyifli okumalar.
Yazılım Dünyasında 2022 Trendleri
Bu sene üçüncü sayıya ulaşan "Yazılım Trendleri" raporunun 2022 versiyonu geçtiğimiz çarşamba çıktı!
Ekosistemdeki uzmanlardan 22 kişiye 2022 yılı için yazılım dünyasında öngördükleri trendleri sordum, Tarık Çayır da bu çalışmayı pdf formatında e-kitap haline getirdi.
Pull Request ve Code Review Adabı
Açık kaynağa katkı yapmak isteyenlerin veya Git kullanan ve commitleri kontrol altında tutmak isteyen yazılım takımlarının önemli uğrak noktaları: pull request ve code review süreçleri.
Erhan Yakut, bu süreçlerde yaşadığı tecrübeler üzerinden code review ve (açık kaynak projelere) pull request açma hakkındaki tavsiyelerini paylaşmış.
M. Kerem Keskin, şirket içi PR süreçlerinde uyguladıkları pratikleri yazmış.
Mert Akkaya ise Code Review sürecinin nasıl yapılmaması gerektiğini yazmış.
Micro Frontends Tecrübeleri
Trendyol GO ekibi, monolitik React uygulaması olarak geliştirilen uygulamayı DDD yaklaşımına geçiş kapsamında Webpack Module Federation kullanarak Micro Frontends mimarisine dönüştürmüş. Sercan Eraslan, bu sürecin karar, Webpack Module Federation seçimi ve PoC aşamalarını; Doğan Öztürk ise bu sürecin canlıya geçiş deneyimini anlatmış.
Engin Üstün, micro frontends yaklaşımında farklı modüllerin CSS'lerinin birbirine ezmemesi için kullandıkları yöntemden bahsetmiş. (İng)
Hazal Mulgan, kuş bakışı micro frontends yaklaşımından bahsetmiş.(İng)
Mikroservisler
Mehmet Özkaya, mikroservis mimarisi hakkında bolca yazı yayımlamış. (İng)
Mesut Atasoy, mikroservis yaklaşımıyla geliştirdiği ArGe projesi Joker'in gelişimini anlattığı bir seri kaleme almış(Couchbase implementasyonu, real time notification, Factory tasarım deseni implementasyonu )
Malik Masis, ödev olarak başladığı ve sonra geliştirdiği açık kaynak mikroservis projesinin geliştirilme sürecini paylaşmış.
Baran Gayretli, contract testlerinin mikroservis mimariye geçişi kolaylaştırmasından bir Spring/Pact implementasyonu ile bahsetmiş.
Furkan Karaoğlu, mikroservislerde transaction bütünlüğünü salamak içik kullanılan Outbox Pattern'dan bahsetmiş.
Yüksel Özdemir, Dolap'ta teklif modülünü mikroservis mimariye dönüştürme ve ölçekleme serüvenlerini anlatmış. (İng)
Hasan Kadir Demircan, Spring Boot ile oluşturdukları mikroservisleri nasıl izlediklerini(monitoring) anlatmış. (İng)
Cem Doğan, mikroservisler gibi dağıtık uygulamaların izlenmesini(tracing), Jaeger aracını kullandığı bir örnek üzerinden anlatmış.
Taner Çakıroğlu, devasa bir monolitik uygulamayı mikroservislere dönüştürmeye başlarken karar kıldıkları araç ve kütüphanelerden bahsetmiş.
Yazılım Mülakatı Nasıl Yapılmaz
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)'den Özgür Adem Işıklı, yazılım mülakatı hazırlarken yapılan başlıca hataları yazmış.
Yapay Zeka Alemi
Ömer Savaş, bu aralar yapay zeka ve derin öğrenmeye merak salmış. Akabinde bu süreçte öğrendiklerini 6 yazılık geniş bir seri halinde bizlerle paylaşmış.
Umut Kocasarı, kimlik kartındaki gerekli metinleri nasıl tespit edip aldıklarını ve bunun için kullandıkları araçları yazmış.
Mehmet Aktürk, Ensemble Learning yöntemleri(Bagging & Boosting) hakkında 6 yazılık bir seri kaleme almış. (İng)
Ayyüce Kızrak, Veri(doğruluğunu artırma) Odaklı Yapay Zeka yaklaşımından bahsetmiş.
Cihan Ozhan, yapay zeka uygulamalarında güvenlikten bahsetmiş.
Faruk Çankaya, ekip halinde geliştirdikleri bir makine öğrenimi projesinden öğrendiklerini anlatmış.(İng)
Buse Solmaz, makine öğrenimi uygulamalarında QA süreçlerini anlatmış. (İng)
Biraz da UX Diyelim mi?
Demiş bulunduk.
Burak Çevik, kullanıcı deneyimi tasarımcısı olmak isteyenler için kariyer planı önerilerini yazmış. Diğer bir yazısında ise geliştirdiği bir uygulama üzerinden kullanabilirlik testi yapmayı anlatmış.
Gökalp Tüfekli, Formula 1 uygulamasını ele alıp UX analizini ve yeniden tasarımını yapmış.
Kafka(Yazar Olmayan)
Batuhan Kadıoğlu, Kafka'nın verimli kullanımı hakkında notlarını paylaşmış. (İng)
Haydar Can Kubilay Gümüş, kuş bakışı Kafka'yı anlatmış. (İng)
Sedef Tulum, Kafka'da kuyruk-tüketici dağılımı dengesini sağlamak için kullandıkları yöntemlerden bahsetmiş. (İng)
"Buluta Doğru"
Orhun ERDEM, Banabi uygulamasını AWS servislerini kullanarak buluta taşıma serüvenlerini anlatmış. (İng)
Yiğit Darçın, özellikle yazılımı yeni öğrenenler için küçük bir projeyi alıp pipeline kurarak buluta deploy etmeyi(geliştirme, ci/cd, test, deploy vs) içerecek şekilde yayına almayı ve bunun getirilerini anlatmış.
Ali İlteriş Keskin, AWS Lambda ile zamanlanmış işler oluşturmayı anlatmış.
Emre Ayberk Kaymaz, Go'da Dynamo DB kullanmak için kullandığı AWS SDK Go v2 ile ilgili bir seriye başlamış. (İng)
İren Saltalı, AWS API Gateway ve Elasticache kullanarak gelen isteğe özel rate limiting uygulamayı anlatmış.(İng)
Ufuk Aytaş, Azure'un pek çok derde(authentication, caching, monitoring, analytics...) deva olarak sunduğu API yönetim servisi Azure API Management hakkında bir seriye başlamış
Performans ve Ölçekleme
Abdullah KARATEKIN, dağıtık sistemlerde yük dengelemeye ve ölçeklemeye yardımcı olan Consistency Hashing kavramından bahsetmiş. (İng)
Bora Kaşmer, .NET 6'da generic liste, boyutlanmış generic liste ve dizi kullanımı arasında yaptığı kıyaslamaları(bechmark) yazmış.(İng) Başa bir yazısında ise Entity Framework 6'da Linq kullanımıyla alakalı tüyolar vermiş.
Furkan Topaloğlu, memoization kavramını ve çalışma mantığını anlatmış.
Mustafa Batuhan Bayoğlu, React'te memoization kullanımını anlatmış. (İng)
Yiğit At, Elasticsearch'te index performansını nasıl optimize ettiklerini anlatmış. (İng)
Hüseyin Demir, PostgreSQL versiyonunu neredeyse sıfır hizmet kesintisiyle nasıl upgrade ettiklerini anlatmış. (İng) Diğer bir yazısında ise PostgreSQL’de okuma hızını(SELECT sorgularını) etkileyen faktörleri yazmış.
Fatih Kahveci, hayata tutunmaya çalışan PHP'de(tamam tamam vurmayın :)) yüksek trafik alan uygulamaların optimizasyonu için kullanılan kütüphanelerden bahsetmiş. Diğer bir yazısında ise Redis'te Lua scripti çalıştırmayı anlatmış.
Orkhan Huseynli, kısaca Web uygulamaları ve mobil uygulamalar için ölçeklendirme yöntemlerinden bahsetmiş.(İng)
Taze Bültenler
Son zamanlarda newsletter'lar tekrar trend olmaya başladı. Ekosistemimizden 3 kişinin taze bültenlerine denk geldim.
Mert Susur, ürün geliştirme ve ürün geliştirme yöneticiliği hakkında tecrübelerini ve okuduğu kitapları paylaştığı bir bülten hazırlamaya başlamış.
Fatih Kadir Akın, yeni öğrendiği teknik konuları ve hobilerini paylaştığı Seyahatname isimli bir bülten hazırlamaya başlamış.
Umut Aydın ise teknoloji dünyasından haberleri derlediği Meseleler isimli bir bülten hazırlamaya başlamış.
Kısa Kısa
Betül İnce, Apache Solr kütüphanesine bir hatayı düzeltmek için yaptığı katkıyı ve süreci anlatmış. (İng)
Alper Güven, SOLID prensiplerini anlattığı oldukça keyifli bir seriye başlamış. İlk yazısında Single Responsibility prensibini anlatmış.
Emre Mert, yazılıma yeni başlayanlara/başlamaya çalışanlara önerilerini yazmış.
Furkan, bir lise öğrencisi olarak 16 yaşında ilk işinde nasıl çalışmaya başladığını anlatmış.
Onur Dayıbaşı, web uygulamalarında routing hakkında 5 yazılık bir seri kaleme almış.
Mehmet Akif Mağol, Kubernetes YAML dosyalarının veya Helm Charts'larının Kubernetes’in best practice’lerine uygun olup olmadığını kontrol eden KubeLinter aracını anlatmış.
Turgay Özgür, Çiçeksepeti'nde yazılım süreçlerini nasıl yönettiklerini, kullandıkları mimarileri/yaklaşımları anlatmış.
Ömer Korkmaz, mimari kararların tarihçesini ve gerekçelerini takip etmek için oluşturulan mimari karar kayıtlarından(Architecture Decision Records) ve iyi pratiklerinden bahsetmiş.
Mert Elifoğlu, başta şirkete yeni başlayanların oryantasyonunu kolaylaştırma olmak üzere yazılım ekiplerinin domain bilgisinin barındırıldığı, bilgi aktarımının sağlandığı ve Domain Book ismini verdiği dokümantasyon yaklaşımından bahsetmiş.
Abdullah Şahin, bir projenin fikir aşamasından yayına alınma aşamasına kadar olan süreci ürün geliştiricisinin ağzından aktardığı bir seri oluşturmuş.
Özgür Adem Işıklı, geçtiğimiz aylarda hayata geçirdikleri ikiciel.dev projesinin geliştirme ve yayına alma sürecini anlatmış.
Ömer Faruk, yoğun şekilde React Native geliştirdiği bir dönemin ardından edindiği tecrübeleri paylaşmış.
Mert Toptaş, hukuktan yazılıma geçiş serüvenini anlattığı bir yaz kaleme almış.
Halime Doğan, bir müşteri segmentasyon yöntemi olan RFM(Recency-Frequency-Monetary) analizini anlatmış.(İng)
Bekir Arslan, veri görselleştirme dünyasını ve öğrenmek isteyenler için tavsiyelerini yazmış.
Çağatay Yücelen, NoSQL veritabanı oluştururken dikkat edilmesi gereken konulardan bahsetmiş. (İng)
Hüseyin Mert, içerik üretirken gelir elde edilebilecek platformlardan bahsetmiş.
Ulas Can Cengiz, çoğumuzun zaman zaman, bir kısmımızın sürekli maruz kaldığı erteleme(procrastination) hastalığından nasıl kurtulduğunu anlatmış.
Vahit Bayri, multi-tenant uygulama oluşturmak için kullanılan yöntemlerden bahsetmiş.(İng)
İrem Çelikbilek, Kotlin'de test yazarken kod tekrarını önlemek ve test kodunu daha temiz hale getirmek için kullanılan yöntemlerden bahsetmiş. (İng)
Buğra Mert Ayar, birim testleri ile ilgili kavramlarından ve Angular için birim testi kütüphanelerinden bahsetmiş. (İng)
Arda Coşar, Go'da birim test yazmayı ve bağımlılık enjeksiyonu(dependency injection) yapmayı anlatmış.
Oğuzhan Erdem, Elasticsearch'te nasıl kaos testi yaptıklarından bahsetmiş.
Hazel Turan İnel, bir QA mühendisi olarak üstlendiği Scrum Master rolünden ve deneyimlerinden bahsetmiş. (İng)
Azmi Rutkay Biyik, Firebase ile zamanlanmış (scheduled) işler oluşturmayı anlatmış. (İng) Diğer bir yazısında da Dart dilinden kuş bakışı bahsetmiş.
Burak Kutbay, RabbitMQ hakkında bir seriye başlamış.
Altuğ Bilgin Altıntaş, Domain Driven Design'ın temel konseptlerinden bahsetmiş.(İng)
Emre Erkoca, CQRS yaklaşımından ve bir örnek üzerinden implementasyonundan bahsetmiş. (İng)
Sercan Çakır, Circuit Breaker Pattern'i anlatmış.
Burak Kirazlı, Xtreme Programming hakkında düşüncelerini yazmış. (İng)
Utku Kamacı, kuantum bilgisayımında kullanılan kavramlardan bahsetmiş. (İng)
Elif Hilal Umucu, son ayların gözde konusu çaya, çorbaya giden Metaverse kavramını genişçe anlatmış. Diğer bir yazısında ise Web3 kavramını irdelemiş.
Turan Sert, Web3'ün tarihçesini anlattığı bir seriye başlamış(1, 2, 3).
Safak Kayran ve Berkay Pekel, 2021'de Blockchain ve kripto para dünyasında öne çıkan olayları yazmış.
Umut Erol Kaçar, internet kısıtlarının olduğu ortamlarda konteynerlaştırılmış uygulamaların yüklenme yöntemini anlatmış. (İng)
Deniz AYDIN, Trendyol'da veri merkezini nasıl ölçeklediklerini anlatmış. (İng)
Gözde Uzun, takım olarak uzaktan çalışma pratiklerini ve uyguladıkları yöntemleri anlatmış. (İng)
Mertcan Arguç, Node.js yazarken çokça yapılan hatalardan bahsetmiş. (İng)
Emre Savcı, yazılım mülakatları hakkında masanın her iki tarafı için tavsiyelerini yazmış.
Görkem Arslan, Python'da çoklu koşul yazarken "or" yerine "in" tercih edilmesinin gerekçelerini yazmış. (İng)
Gökhan Ayrancıoğlu, reaktif programlama serisinde ilişkisel veritabanları için reactive API'lar sağlayan Spring R2DBC yapısını anlatmış.
Erkan Erol, yeni bir şirkette işe başladığınızda daha rahat adapte olmak tavsiyelerini yazmış. (İng)
Hadi Tok, kendini geliştirmek ve daha iyi bir yazılımcı olmak hakkında düşüncelerini yazmış. (İng)
Hasan Basri Bayat, gRPC ve REST API için kuş bakışı rehberler hazırlamış. (İng)
Yaşar K. Canpolat, TCMB'nin yeni yayımladığı ikincil düzenlemeleri ve Fintech'lere etkilerini anlatmış.
Evren Özmen, ihracatçıların belli oranda döviz bozdurma zorunluluğu karşısında yazılım ve tasarım hizmeti ihraç edenlerin durumunu yazmış.
Bitirirken
Bir sayının daha daha 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