Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #2 / Sayı #59(Yazılımda Kalite ve Mimariler, Blockchain'de Konsensüs Protokolleri, Korona Günleri ve çok daha fazlası)
Merhabalar.
59. sayı ile karşınızdayım. Korona günlerine yaraşır uzun mu uzun bir sayı huzurlarınızda.
Hadi buyurun.
Yazılımda Kalite ve Mimariler
Onur Dayıbaşı, son zamanlarda -burada neredeyse her sayıda bahsettiğim gibi- bir konu belirleyip girişten derinlere ilerlediği seri yazılar yazıyor. Bu kez yazılım süreçleri hakkında bir seriye başlamış. Şimdiye kadar 4 yazı(yazılım geliştirme yaşam döngüsü, fazları, modelleri, prensipleri) yayımlamış.
Deniz Kılınç, yazılım geliştirirken yolun başında harika çözüm gibi gözükmesine rağmen ileride başımıza bela olan "antipatternler"den bahsetmiş. Diğer bir yazısında ise veri bilimi ve yapay zeka konusunda yazdığı yazıları toparlamış.
Yazılım kalitesinin vazgeçilmez parçalarından bir elbette testler.
Emre Hızlı, birim testlerle alakalı oldukça detaylı ve dolu dolu bir seriye başlamış. xUnit.NET kütüphanesi üzerinden birim testleri anlattığı seri şu anda 7 yazıya ulaşmış.
Hüseyin Kutluca, "Mimarinin Evrimi" serisinin 3. yazısında mimari seviyede yeniden düzenleme(refactoring) yapmaktan; hangi koşullarda, hangi yöntemlerle yapılabileceğinden bahsetmiş.
Caner Patır, DDD ve Mikroservis mimari yaklaşımlarının beraber kullanılmasını ve Bounded Context kavramını anlattığı 2 yazılık bir seri kaleme almış(1, 2).
Kotlin
Geçtiğimiz haftalarda Kotlin'e giriş konusunda ilgili yoğun içerik üretilmiş. Onlardan denk geldiklerimden bahsedeyim.
Halil Özel, Kotlin'le Android uygulaması geliştirirken kullanılabilecek video oynatma kütüphanesi ExoPlayer'dan bahsetmiş.
Uğur Ergun, object expression kullanımını anlatmış.
Onur Taşdemir, Kotlin ile sıralama algoritmalarını anlatmış.
Ecem Aleyna Süren, Kotlin'de fonksiyonları ve RecyclerView kullanımını anlatmış.
Muharrem Servet Ankaralı, Android'de activity yaşam döngüsünü ve Kotlin'le "activity"ler arası veri taşımayı anlatmış.
Yine Azat Sayan da Android'de activity yaşam döngüsünü ve "activity"ler arası veri taşımayı anlatmış.
React Native
Son ayların zinde bloggerlarından Zafer Ayan, React Native uygulamalarında TypeScript ve Redux kullanımını, React Native'de Coronavirüs verilerini bir siteden HTML olarak çekip JSON olarak yayımlamayı, React Native ile geliştirilen bir Android uygulamasını Wifi ile çalıştırmayı, yine React Native'de local notification ve Firebase marifetiyle push notification göndermeyi anlatmış.
Serkan Bektaş, React Native için başarılı UI bileşen kütüphanelerini derlemiş.
Emre Vatansever, React Native'de responsive uygulama geliştirmeden bahsetmiş.
React Native demişken Adem İlter'in an itibariyle 15 videoya ulaşan Youtube'daki video serisini de kaçırmayın diyeyim.
Biraz da Veritabanı
Emre Çabuk, ilişkisel veritabanlarının sorguları çalıştırma mekanizmalarından ve sorguyu optimize ederek oluşturdukları execution plan'dan, performansı iyileştirmek için bu planın nasıl incelenebileceğinden bahsettiği güzel bir seri kaleme almış.(1, 2)
Hüseyin Demir, DBA günlükleri serisinin 12. yazısında PostgreSQL ile açık kaynak CDC(change data capture-değişen verinin bir kaynaktan bir hedefe yansıtılması) hizmeti kullanımını anlatmış.
Korona Günleri
Son haftalarda malumunuz haysiyetsiz bir virüsle yatıp kalkıyoruz. Ve büyük çoğunluğumuz itibariyle evden çalışıyoruz(vâ esefa o imkan dahilinde olduğu halde çalışanlarını ofise gelmeye zorlayan şirketlere). Dolayısıyla yıllardır evden çalışmayı tecrübe eden arkadaşlara mikrofon uzatıyoruz.
Berkay Akçay, ekip olarak evden verimli çalışma hakkında edindiği tecrübeleri kaleme almış.
Bora Yılmaz, evden çalışmanın pek düşünülmeyen risklerini ve tehlikelerini yazmış. Başka bir yazısında ise salgınla beraber gelen ekonomik krizde startupların yaşayacağı muhtemel risklerden bahsetmiş.
Öğrencilere Tavsiyeler
Malum virüs nedeniyle fiziki toplanma gerektiren etkinlikler iptal edildi. Bunlardan biri de Burak Selim Şenyurt'un bir üniversitede öğrencilere yapacağı sunum imiş. Bunun üzerine üstad da durur mu? Yapıştırmış makaleyi. Özellikle öğrenciler ve kariyerinin başındaki gençler için tavsiyelerini paylaşmış.
Mert Eroğlu, bilgisayar mühendisliğine yeni başlayanlar için tavsiyelerini kaleme almış.
Mustafa Türköz de bilgisayar mühendisliğini tercih etmeyi düşünenler ve okuyanlar için tavsiyelerini yazmış.
Blockchain'de Konsensüs Protokolleri
Blockchain'in en önemli bileşenlerinden biri doğal olarak işlem doğruluğunu ve tutarlılığını sağlayan; hileli işlemleri engelleyen konsensüs protokolleri. Hakan Yalçınsoy, bu protokoller hakkında bir seri kaleme almış. Giriş yazısından sonra temel konsensüs protokollerinden 4 tanesini anlatmış: pBFT(Practical Byzantine Fault Tolerance), Paxos Konsensüs Protokolü, Nakamoto Konsensüs Protokolü, Avalanche Konsensüs Protokolü.
Yapay Zeka(dikkat çekici bir başlık bulamadım)
Ömer Özgür, "evrensel fonksiyon yakınsayıcıları" teoremi ile yapay sinir ağlarını anlamaktan bahsetmiş. Başka bir yazısında yapay zekaya koku almayı nasıl öğretebileceğimizi irdelemiş. Bir diğer yazısında ise derin öğrenme kullanarak Türkçe chatbot geliştirmeyi anlatmış.
Elif Nur Korkmaz, Nur Aslıhan Karaman ile birlikte "makine öğrenmesi ile EEG sinyallerinden epilepsi hastalığının tespiti" için geliştirdikleri projeyi anlatmış.
Eren Bozarık, sinir ağları ve derin öğrenme serisinin 11. yazısında Python'daki NumPy kütüphanesinden bahsetmiş.
Anıl Kaynar, az veriyle tahmin yapmayı sağlayan makine öğrenme algoritmaso one shot learning'i anlatmış.
Sümeyra Erol, YOLOv3'te eğiteceği veri seti için etiket oluştumayı anlatmış.
Ussal Şahbaz, Ulusal Yapay Zeka stratejisi için uluslararası işbirliğinin öneminden bahsetmiş.
Osman Hömek, "yapay zekayı makine öğrenmesinden ayıran fark" diye nitelediği "hedefi değiştirme" özelliğinden bahsetmiş.
Ümit Büyükyıldırım, Riziko'da insan yarışmacıları mağlup eden IBM Watson'ın algoritmasının geliştirilme sürecini anlatmış.
Göç Hikayeleri
Semih Şenvardar, desteğinin biteceği duyurulan .Net Core 2.2'den 3.1'e geçiş maceralarını ve yolda yaşadıkları zorlukları, çıkardıkları dersleri anlatmış. Aydın Çınar ise müşterileri/partnerleri için React ve Styled Component kullanarak oluşturdukları generic tema serüvenini anlatmış.
Atakan Demircioğlu, PHP 5'ten 7'ye geçiş tecrübelerini anlatmış.
Google ile Hassas Veri Toplama
Google'ın arama motoru, tam anlamıyla arama motoru. Sadece arama kutusuna bir şey yazıp arama yapma haricinde çok fazla yeteneği var. Ben mesela bunlardan sadece belli bir siteye özel arama ve belli dosya tipi bazında arama(filetype:pdf vb) gibi özelliklerini kullanıyordum. Öncelikle bu anahtar kelime ile aramalara "dork" deniyormuş. İkinci olarak bu yöntemle bir şekilde public erişim hakkına sahip çok fazla dosyaya ve hassas veriye ulaşılabiliyormuş. Ömer Savaş, çarpıcı örnekler eşliğinde bu yöntemi anlatmış.
Hassas veri demişken Ziyahan Albeniz, telefonlara genelde fiziki erişimi olanlarca kurulup verileri ele geçirmeyi sağlayan casus yazılımlardan; stalkerware'lerden bahsetmiş.
Haftanın Üretken Genci: Bilal Yaşar
Yoğun içerik üreten öğrenci arkadaşlara denk geldikçe aşırı mutlu oluyorum. Hele bir de 101'in ötesinde yazılar çıkarıyorsa künefe üstü kaymak oluyor. Bu sayıda köşemizin konuğu olan Bilal Yaşar da LinkedIn profilinden anladığım kadarıyla mezun olmak üzere olan bir arkadaşımız ve 2 yıldan fazla süredir blog yazıyor.
Geçtiğimiz hafta kaleme aldığı bir yazıda tüm yazılarını derlemiş.
Motivasyonun ve ekosisteme katkılarının devamını dileyelim.
Haber
Ülkemizden çıkıp Product Hunt'ta vitrine çıkan ürünleri paylaşmak ve desteklemek için bir Telegram kanalı kurulmuş.
Kısa Kısa
Enes Ergün, Linux'ta kütüphanenin ne olduğundan, statik ve dinamik kütüphanelerden; strace ve ltrace komutlarının çalışma prensibinden bahsetmiş.
C/C++ konusunda önemli uzmanlarımızdan Necati Ergin, Medium'da yazmaya başlamış. 1 ayda dolu dolu 13 yazı yayımlamış.
Altan Karaalp, meslek lisesi için hazırladığı ders notlarını paylaşarak bir Javascript serisine başlamış.
Mustafa Ermaya, Javascript'te kullanışlı dizi fonksiyonlarını yazmış.
Doğan Öztürk, Javascript hakkında bir seriye başlamış ve hoisting kavramını anlatmış.
Zahid Dişci, çalıştıkları uzun soluklu bir proje üzerinde edindikleri tecrübelerden yola çıkarak bir projeye nasıl başlanmayacağını yazmış.
Sevi Karaköse, bir sprintin nasıl planlanmayacağını anlatmış.
Yunus Ünver, C#'ta string ekleme işlemlerinde StringBuilder kullanmanın performansa etkisini canlı kanlı bir örnek üzerinden anlatmış.
Bora Kaşmer, Entity Framework Core'da işaretlenen bir kolonun şifreli olarak kaydedilmesini anlatmış.
İbrahim Kürce, Java'da bir iç içe döngüyü nasıl daha temiz yazabileceğimizi anlatmış.
Tahir Kardak, Java ile fonksiyonel programlamayı anlatmış.
Tarık Çayır, yazılımcıların kendilerini pazarlayabilmesi hakkında önerilerini yazmış.
Akın Ömeroğlu, akıllı ev sistemlerinde açık kaynağın öneminden ve etkisinden bahsetmiş.
Mert Çobanov, özellikle README.md dosyalarını yazarken kullanabileceğimiz Markdown hakkında bir rehber hazırlamış.
İbrahim Seçkin, Facebook'un mobil uygulama deploy ve test süreçlerini yazmış.
İsa Gül, kullanım örnekleriyle birlikte ücretsiz deployment araçlarından bahsetmiş. Bir diğer yazısında ise React uygulamalarda birim testi yazmaktan bahsetmiş.
Özgür Şahin, ülkemizden başarılı girişimler, üretken insanlar çıkarabilme, dolayısıyla toplu kalkınma için yapılabilecekler hakkında düşüncelerini kaleme almış.
Muhammet İkbal Yaşar, anlık konum tespitini sağlayan teknolojilerin çalışma mantığını anlatmış.
Emre Mert, IoT tecrübelerinin 2. yazısını yayımlamış.
Oğuzhan İnan, Kubernetes ağ yapısını anlatmış.
Ozan Eser, JMeter serisinde performans testi yapmayı anlatmış.
Erdem Köşk, Node JS'te API güvenliği için riskleri ve bu risklere karşı kullanılabilecek kütüphaneleri yazmış.
Bartu Gözet, Kubernetes'te kaynak yönetimini anlatmış.
Can Balkaya, Swift ile iOS için baştan sona bir haber uygulaması geliştirmeyi anlatmış.
Evren Özmen, yazılımcılar için vergi planlamasını anlatmış.
Yaşar K. Canpolat, API'ların söz sahibi olduğu açık bankacılık uygulamaları için yapılan mevzuat değişikliğinden bahsetmiş.
Zekeriya Koç, ilkini düzenledikleri "Functional Programming İstanbul" etkinliğinin serüveninden bahsetmiş.
Metin Akın, yazılımda analizin öneminden ve kötü analizin bedellerinden bahsetmiş.
Kurtuluş Ahmet Temel, Swift'le geliştirilen uygulamalarda Memory Leak oluşumundan, sebeplerinden ve çözümünden bahsettiği bir seriye başlamış.
Arda Aksoy, boş ekranların(404 vb) UX odaklı tasarımından bahsetmiş.
Berkcan Tezcaner, UI/UX(arayüz tasarımı/kullanıcı deneyimi tasarımı) temellerini anlatmış ve başlangıç için bir yol haritası vermiş.
htaccess, 2 faktörlü doğrulamanın çalışma prensibinden bahsetmiş.
Eyüp Yusup Altunbıçak, blog yazısı yazmak için bir başlangıç rehberi kaleme almış.
Emre Ekin, SCADA ve EKS sistemleri hakkında bir terimler sözlüğü kaleme almış.
Proje & Teknoloji & Kütüphane
Sıddık Açıl, Javacılar'ın favori kütüphanelerinden Lombok'un nasıl çalıştığını irdelemiş. Diğer bir yazısında ise nesne hiyerarşileri oluştururken kullanılan composite tasarım deseninden bahsetmiş.
Engincan Veske, React Hooks kullanarak bir Todo uygulaması yapmayı anlatmış.
Halis Ak, sürükle-bırak uygulama geliştirme ortamı MIT App Inventor 2 ve Firebase kullanarak Android uygulama geliştirmeyi anlatmış.
Bitirirken
Nihayet bitirdik. 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 ve evde kalın.
Bana ulaşmak için: Linkedin, Twitter, CuriousCat
Daha fazla motive etmek için: Patreon
Sosyal Medya
TED: Yapay zeka nasıl aklın bir uzantısı olabilir?
Arnav Kapur: How AI could become an extension of your mind | TED Talk — www.ted.com Try talking to yourself without opening your mouth, by simply saying words internally. What if you could search the internet like that -- and get an answer back? In the first live public demo of his new technology, TED Fellow Arnav Kapur introduces AlterEgo: a wearable AI device with the potential to let you silently talk to and get information from a computer system, like a voice inside your head. Learn more about how the device works and the far-reaching implications of this new kind of human-computer interaction.