Yazılımcılar İçin Hafta Sonu Okumaları — Sayı #81 / Sezon #5 (JavaScript Uygulamalarında Performans, ChatGPT, HTTP’yi Anlamak ve daha fazlası)
Merhaba aziz okuyucum.
Uzun bir aranın ardından nihayet 5. sezona başlayabildik. Geçen hafta gönderdiğim bilgilendirme emailinde belirttiğim gibi Revue kapandı ve bu vesileyle -sizlerin de oylarıyla- Substack’e taşındık.
Yine sizler için özenle seçilmiş, elle toplanmış doğal-organik birçok yazı derledik.
Evet derledik. Bu sayıda sevgili Ömer SAVAŞ -baktı ki tek başıma sayıyı çıkaramıyorum- bu sayıyı hazırlamamda yardımcı oldu. Ayrıca uzun süredir yer veremediğim Boca(aşağıda göreceğiniz gibi, belli bir konuda farklı zamanlarda yazılmış yazıların boca edildiği) bölümüne konuk yazarlarla artık her sayıda yer vermeyi planlıyorum. Bu sayıda sevgili Tuğsan Ünlü, HTTP’yi anlamak için tavsiye ettiği yazıları bizler için derledi. Siz de konuk yazar olarak katkı vermek isterseniz lütfen bana ulaşın.
Her neyse lafı daha fazla uzatmadan sadede gelelim.
JavaScript Uygulamalarında Performans
Oğuz Kılıç, daha önce JavaScript uygulamalarının performansı üzerine süper akıcı bir yazı yazmıştı ve bu bültende yayımlamıştık. Ben bu tür low level içeriklerin direkt mühendislik kasına gittiğini düşünüyorum. Şimdi serinin devamı olan ikinci yazıyı yazmış ve üçüncüsünü yazmayı vaadetmiş. Özellikle frontend tarafında çalışan arkadaşlar için şiddetle tavsiye ediyorum.
Tasarım Desenlerini Anlamak
Tasarım desenleri çoğunlukla önemi ve kullanma gerekliliği konusunda hemfikir olduğumuz ama rahatlıkla unuttuğumuz ve kullanamadığımız yöntemler olabiliyor.
Murat Çabuk, bu konuya kafa yorarak tasarım desenlerini neden aklımızda tutamadığımızı irdeleyip bunu nasıl aşabileceğimizi anlattığı 3 yazılık ama geniş bir seri kaleme almış.
Test ve Otomasyon
Emre Savcı, Go ile geliştirdikleri projelerde HTTP sunucularının test performansını nasıl artırdıklarını dilin derinlerine girerek anlatmış.
İsmail Eğilmez, bir test otomasyon strajesi oluşturma hakkında güzel bir seriye başlamış.(İng)
Okan Yenigün, bir örnek üzerinden Python’da Test Driven Development uygulamayı anlatmış.(İng)
Onur Baskirt, mikroservis yaklaşımıyla geliştirilen uygulamalar için test stratejilerini anlattığı bir seri kaleme almış.(1, 2, 3)(İng)
Yapay Zeka
Merve Günak, zaman serilerine göre tahminleme yapmayı işlediği bir yazı serisine başlamış. İlk iki yazıda teorik konulardan bahsedip bu yazıda “elektrik tüketimi tahmini” ile pratikte nasıl yapılacağını Python üzerinde göstermiş. Derin öğrenme algoritmalarına güzel bir alternatif içerik olmuş.
Ömer SAVAŞ, teknolojide multidisiplinel yaklaşımın öneminden bahsedip BTK ve Huawei’nin birlikte düzenlediği bir yapay zeka yarışmasından bahsetmiş ve geliştirdiği çözümü paylaşmış.
ChatGPT
Geçtiğimiz haftalarda yapay zeka chat botu ChatGPT beta bir servis olarak yayımlandı ve Twitter’daki yazılımcı tartışmalarını bile gölgede bıraktı.
Jonas Degrave, chat botu manipule ederek bazı komutları GPT’nin kendi paralel evreninde çalıştırmasını sağlamış. Yeni soyut bir dünyanın kapısı gibi. Ürperdim yemin ederim :)
Sonrasında biraz benzer komutlar çalıştırmayı denedim ama başarılı olmadım. Zihnim yukarıdaki yazının bir miktar kurgu olduğuna inanmak istiyor.
Ayrıca Codefiction podcastinin son bölümünde konuda uzman Yasir Ekinci ile ChatGPT’nin nasıl çalıştığı konuşulmuş.
Mülakatlar İçin Algoritma Soruları
Hilmi Yıldırım, yazılım mülakatlarında çokça sorulan algoritma sorularını çzödüğü bir video serisine başlamış. An itibariyle Leetcode vb kaynaklardan 34 adet sorunun çözümü yer alıyor.
Boca: HTTP’yi Anlamak(Derleyen: Tuğsan Ünlü)
HTTP, platform fark etmeksizin her yazılım geliştiricinin bilmesi gereken, bildiği takdirde geliştirdiği yazılımın tüm yaşam döngüsüne hâkim olacağı temel bir protokol.
Gökhan Şengün’ün Medium hesabında yazdığı HTTP konulu yazılar ve Mehmet İnce’nin Twitch kanalında yaptığı(sonradan Youtube’a da eklediği) Web Security 101 yayınları bu sayı için çok kıymetli içerikler oluşturdu. Yazı ve videolar geçmiş tarihli olsa da içerikleri hâlâ güncelliklerini koruyor.
HTTPS nasıl çalışır?: Gökhan Şengün, SSL/TLS protokolünün nasıl çalıştığını olabilen en yalın hâliyle anlatmış.
HTTPS güvenliğini artırma yöntemleri: Gökhan Şengün, HTTPS nasıl çalışır? yazısının devamı mahiyetinde olan bu yazıda HTTP Strict Transport Security ve HTTP Public Key Pinning yöntemleriyle HTTPS güvenliğinin nasıl arttırılabileceğini anlatmış.
HTTP cookie nedir, hangi amaçlarla ve nasıl kullanılır?: Gökhan Şengün, bu yazısında HTTP cookie’lerinin türlerinden ve gerçek hayattaki kullanım senaryolarından bahsetmiş.
Session’ı ve CSRF Zafiyetini Anlamak & SameSite Cookie Önlemi: Mehmet İnce, Web Security 101 eğitimlerinin üçüncüsünde session, Cross-Site Request Forgery ve SameSite cookie konularını örnek vakalarla birlikte derinlemesine anlatmış.
HTTP cache yöntemleri nelerdir?: Gökhan Şengün, HTTP önbellekleme yöntemlerini ve önbellekleme için kullanılabilecek HTTP header’larını anlatmış.
HTTP Redirect ve URL Rewrite nedir ve ne işe yarar?: Gökhan Şengün, bu yazısında HTTP yönlendirme metotlarından bahsetmiş.
Komut satırı HTTP araçları — cURL: Gökhan Şengün, bu yazısında komut satırı üzerinden HTTP istekleri yapılmasını sağlayan curl aracının yeteneklerinden bahsetmiş.
HTTP doğrulama metodları nelerdir?: Gökhan Şengün, HTTP kimlik doğrulama yöntemlerinden Basic ve Digest doğrulamayı anlatmış.
HTTP ile İlgili Bilmemiz Gerekenler: Gökhan Şengün, İstanbul Coders topluluğunun bir etkinliğinde sıfırdan başlayarak HTTP’nin temel konseptleri hakkında iki saatlik harikulade bir sunum yapmış.
Bir Hacker’ın Gözünden Modern Web Nasıl Çalışır?: Mehmet İnce, Web Security 101 eğitimlerinin dördüncüsünde modern web’in nasıl çalıştığını ve temel prensiplerini uçtan uca detaylıca anlatmış.
Kısa Kısa
Adem Catamak, önbellekleme(caching) kavramını, farklı kullanım senaryolarını ve konudaki terminolojiyi anlatmış.
Sabri Ünal, kıdemli yazılımcı olma olgusunu ve bu konudaki fikirleri referans verip PHP özelinde “nasıl bir yol izlenmeli?” sorusuna çok zengin bir cevap oluşturmuş. Ayrıca yazının sonunda tüm geliştiricilere yönelik bazı tavsiyelerde bulunmuş.
ipek, Basecamp tarafından geliştirilen ve JSON yerine HTML ile veri göndererek JavaScript kullanımını azaltmayı öneren Hotwire yaklaşımını kullandığı bir ASPNET Core Web uygulaması geliştirmeyi anlattığı bir seriye başlamış.(İng)
Aslı Küçükakarsu, temel fonksiyonlarıyla RxJs‘i anlatmış.(İng)
Bora Kaşmer, Entity Framework’ün zayıf kaldığı noktalarda uyguladığı özgün çözümleri anlatmış.(İng)
Eser Ozvataf, mentorluk kavramını aslında -çoğu zaman- yanlış kullandığımızdan ve bunun koçluk olarak değiştirmemiz gerektiğini dayanaklarıyla birlikte yazmış.
Anil Ozturk, hem yazılımsal hem de fiziksel siber saldırı türlerini anlattığı bir seriye başlamış.
Deniz İrgin, Aktör Model mimarisini anlatmış ve C# dili için bir kütüphane ile (akka.net) implementasyonunu yapmış.
Yusuf Yılmaz, Aspect Oriented Programlamanın ve Cross-Cutting’in çözdüğü problemi anlatmış ve örneklemiş.
Gencay Yıldız, Event Sourcing nedir, ne değildir anlatmış.
Ayyüce Kızrak, Ph.D., dijtal ikiz kavramını anlatmış. Ayrıca Çevre ve Şehircilik Bakanlığı, şehirlerin dijital ikizlerini oluşturmak için bir çalışma başlatmış.
Yasin Bulgan, yazılımcılar için faydalı olabilecek bazı Chrome eklentilerinden bahsetmiş.(İng)
Beren Ceylan, Pair Programming hakkında bazı ipuçları paylaşmış.(İng)
Burak Kirazli, yazılım geliştirme metodları ve “agile olmak” hakkında akıcı bir yazı kaleme almış.
Mehmed Emre AKDİN, C# 9 ve 10 versiyonlarından itibaren kullanabileceğimiz record ve record struct’ı yapılarını derinlemesine anlatmış.
Ertuğrul KOMUT, bilgi yönetimi ve veri sözlüğü kavramlarını anlattığı bir makale yazmış.
Muhammed Erdinç, DOM ve tarayıcılarda HTML kodunun render edilmesi hakkında açıklayıcı bir yazı yazmış.
Mehmet Cem YÜCEL, ELK(ElasticSearch-Logstash-Kibana) stack’in dezavantajlarından ve yerine kullanabileceğiniz bir alternatiften bahsetmiş.
Şuayb Şimşek, React, Spring Boot ve GraphQL kullanarak geliştirdiği ve Kubernetes üzerinde çalıştırdığı bir mikroservis uygulama geliştirmeyi anlatmış.(İng)
Miktad Öztürk, kalite, yönetim ve üretim hakkında bazı kavramları açıklamış.
Hatice Surumlu, JavaScript’te kalıtım kullanmadan obje özelliklerini değiştirmemize izin veren “mixin” hakkında bir çeviri yapmış. Hadi burda PHP’cilere bir kıyak geçelim. Mixin JavaScript için yaklaşık olarak trait’in karşılığı.
Mustafa BİÇER, bazı Web API’ları anlatmış ve bunları kullanarak bir ekran paylaşımı uygulaması yapmış.
Abdulsamet İLERİ, pür Go kullanarak nasıl versiyon kontrol sistemi(VCS) yazdığını anlatmış.(İng)
Emre Yarlığan, PHP’nin en yaygın frameworklerinden olan Laravel’in dizin yapısını anlatırken aslında franework’ün eksistemini ve kabiliyetlerini de göstermiş.
Kadir Bekar, yazdığı bu sosyal içeriğinde, çok sevgili Cem Yılmaz ‘ın da şakaladığı gibi: çözüm içimizde demiş.
Kemal Can Kara, Open AI’ın ücretsiz sesten metne çevirme kütüphanesi Whisper’ı denemiş ve hızlıca güzel bir uygulama geliştirmiş.
Ender Ahmet Yurt, uzaktan çalışma sürecinde yaşadıklarını ve çıkardığı dersleri yazmış.(İng)
Can Berk OCALIR, boilerplate kavramını ve React’te nasıl boilerplate oluşturabileceğimizi anlatmış.(İng)
İsa Gül, bir web sayfasının tarayıcıda görüntülenmesi için ağ ve işletim sistemi seviyesinde olanları basitçe anlatmış. Bu klasik repoda da ehl-i merak için çok daha derin bilgiler var.
Engin UNAL, Solidity ile geliştirme yapmayı anlattığı önemli serisinde 10. yazıya ulaşmış.
Ibrahim Ates, yurt dışı firmalara uzaktan contractor olarak çalışma konusunu bürokratik taraflarıyla anlatmış.
Kadir Boylu, Vue.js uygulamalarının performansını artırmak için bazı ipuçları paylaşmış.(İng)
Beytullah Gurpinar, “hatasız kul olmaz” demiş. Her zaman var olan hata oluşma ihtimalini kabul edip neler yapılması gerektiğini örneklemiş.
Ugur Yagmur, yazılım dillerinin popülerlikleri meselesini ve bu konudaki indekslerin nasıl oluşturulduğunu yazmış.(İng)
Elif Hilal Umucu, Blockchain ağlarındaki ölçeklenme ve gizlilik sınırlamalarının üzerinden gelmek için kullanılabilen sıfır bilgi(zero-knowledge) yöntemini anlatmış.
Koray Guler, frontend uygulamalarında kullanılmayan kütüphaneleri, modülleri süzmeyi sağlayan Tree-Shaking yönteminden bahsetmiş.
Hande Ebrar Gunesdogdu, Go’da eşzamanlı(concurrent) programlama hakkında bir seriye başlamış.(1, 2)
İbrahim Samed Aker, katmanlı mimari ve soğan(onion) mimarisine karşın dikey blok mimarisini(Vertical Slice Architecture) kullanmaktan bahsetmiş.
Cihat Solak, C#’ta asenkron metodları temsil eden Task sınıfını ve belli başlı metodlarını anlatmış.
Mahmut gündoğdu, kendi hikayesi üzerinden “alaylı yazılımcı olma” sürecini anlatmış ve bu konudaki tavsiyelerini yazmış.
Hüseyin Mert, özellikle ürün geliştiren ve/ya yöneten yazılımcılar için tecrübelerini paylaşmış.
Engincan Veske, .NET 7 ile hayatımıza giren önemli yenilikleri yazmış.
Adem Olguner, RabbitMQ’daki federasyon yapısının konfigürasyonunu ve kuıllanımını anlatmış.
kurkoc, WebSocket yapısı hakkında bir seriye başlamış. İlk yazıda çalışma prensibini anlatmış.
Bitirirken
Bir sayının 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.
Bana ulaşmak için: Linkedin, Twitter, superpeer
Çay, kahve ısmarlamak için: Patreon