Yazılımcılar İçin Hafta Sonu Okumaları — Sayı #29 (2018 Derlemesi)

Bu gönderi, “Yazılımcılar İçin Haftasonu Okumaları” e-bülteninin 6 Ocak 2019’da yayımlanan sayısıdır. E-posta bültenine aşağıdaki bağlantıdan abone olabilirsiniz.

Merhabalar.

Ülke ve insanlık için iç karartıcı olaylarla dolu ama benim şahsi gelişimim açısından gayet verimli geçen bir yılı, 2018'i geride bıraktık. Millet sağda solda 2018 derlemeleri, almanakları paylaşırken “yahu elimde 28 sayılık bülten var. Ben niye böyle bir şey yapmıyorum?” dedim. Akabinde büyük bir özenle(kopyala-yapıştır marifetiyle) okumakta olduğunuz bu sayıyı hazırladım. Binâenaleyh bu sayı yeni bir sayı değil. Yani yeni bir sayı ama içeriği yeni değil(şu anda kafanıza şişiren bu giriş kısmı hariç). Bir nevi özel sayı(böyle daha havalı oldu sanki). Buradan da 2 sonuç çıkarmamız gerekiyor:

1- Aşağıda geçen “bu hafta”, “geçtiğimiz çarşamba” vb. ibareler güncel değil, ilgili sayının yayımlandığı tarihle ilişkili ifadeler.

2- Bu hafta ayrı bir sayı çıkmayacağı için muhtemelen önümüzdeki hafta da geçen hafta olduğu gibi bir “bitmeyen sayı” yapacağım.

Şunu da ifade edeyim: Bu derlemede yer alan içerikler tamamen subjektif bir değerlendirme neticesi, size “muhakkak okuyun” diyebileceğim yazılar. Mesela geçen hafta bunu yayımlasam “2019 girmeden okumanız gereken makaleler” diye iddialı bir başlık atabilirdim.

Buyursunlar…

Enine Boyuna Yazılım Testi Nedir, Ne Değildir

Süleyman Fazıl Yeşil, Medium’da fanı olduğum ama şu tweettebahsettiğim gibi hak ettiği ilgiye henüz mazhar olamamış bir yazar. Ne kadar teknik konulardan bahsederse etsin yazı akıp gidiyor.

Bu hafta tavsiye edeceğim yazısının okuma süresi 15 dakika olarak belirtilmesine rağmen nasıl okuyup bitirdiğinizi anlamıyorsunuz. Başlık Yazılım Testlerine Genel Bakış. Girişte “bir musibet bin nasihatten hayırlıdır” deyip, NASA’nın Mars’a gönderip irtibatı kaybettiği bir uydunun hikayesini anlatıyor ve yazılım testlerine geçiş yapıyor. Devamında da uzunca yazılım testlerinin tarihçesini anlatıyor. Teknik kısımları ise devam yazılarında anlatacağının sinyalini verip yazıyı bitiriyor.

Spotify’ın Yazılım Altyapısı

Başarılı firmalar nasıl bir yazılım altyapısı kullanıyor? Yaptıkları mimari değişikliklerinde neler yaşıyorlar? vb. konulu yazıları okumaktan büyük keyif alıyorum.

Geçen hafta da bu içerikte Baris Ceviz’e ait bir makaleyle karşılaştım: Meraklısına Spotify Müzik Önerme Algoritması Nasıl çalışıyor?

Başlıktan anlaşılacağı üzere yazıda detaylıca öneri algoritması anlatılıyor. Bu yazıdan bahsetmişken geçen sene Hakan Orcan’ın blogunda yayımlanan Spotify Altyapısına Teknik Bir Bakış yazılarına(1. bölüm, 2. bölüm) link vermeden geçmeyeyim. Gerçekten uzuun ve detaylı yazılar ve baya ufuk açıyor.

Yazılım Mimarisi

Geçtiğimiz aylarda okuduğum ve her yazılımcının okuması gerektiğini düşündüğüm bir makaleyle bu bahsi kapatayım: 10 Common Software Architectural Patterns in a nutshell.

Başlıktan görüleceği üzere ortak yazılım mimari desenlerini kısa kısa ve gayet anlaşılır şekilde anlatan bir makale.

Yazılım Emekçiliği

Celil Bozkurt‘un 1 Mayıs’ta yayınladığı, benim kenara atıp ancak okuyabildiğim güzel bir yazı var: Yazılım Emekçiliği. İçerikte anlatılanlar muhtemelen her yazılımcıya oldukça tanıdık gelecek. Ama bu konuların olabildiğince fazla dile getirilip sektör genelinde bir farkındalık oluşturulması gerektiğini düşünüyorum. Ancak yeterli farkındalık seviyede farkındalık oluşursa bir şeyler iyi yönde değiş(tiril)ebilir.

Trafik Kazalarının Tarihi ve Otonom Araçların Geleceği

Geçtiğimiz aylarda otonom araçlar ilk kez ölümlü bir kazaya karıştı ve Uber’in test aracı karşıdan karşıya geçmeye çalışan bir yayaya çarpıp, ölmesine yol açtı. Dolayısıyla otonom sistemlerin güvenliği ile ilgili süregelen tartışmalar daha da alevlendi.

Deep Learning Türkiye grubundan Meltem Atay, şuradaki yazısında bu kazayı detaylıca aktarmanın yanı sıra trafik kazaları tarihinden başlayarak otonom araçların güvenliğini irdelemiş.

Bir Devops Hikayesi: Devops Yaptık da N’oldu?

Uzun süredir okuma listemde olan ama ancak fırsat bulabildiğim bir yazı var sırada: Devops yaptık da n’oldu?

Orhun Begendi, Hesap Kurdu’nda hayat geçirmeye çalıştıkları DevOps sürecini; neden ve nasıl başladıklarını, karşılaştıkları zorlukları samimiyetle anlattığı, keyifle okunan bir yazıya dökmüş. DevOps’un ne olduğuyla alakalı yorumu özellikle önemli. DevOps yapsın veya yapmasın bence her yazılımcının okuması gereken bir yazı. Hatta şurada da devam yazısı var.

Frontend Teknolojileri Konferansı

Geçen hafta İstanbul’da Frontend Teknolojileri konferansı düzenlendi. Ben katılamadım. Ama Twitter’dan takip ettiğim kadarıyla oldukça güzel ve faydalı geçmiş.

Konferansın organizatörlerinden ve konuşmacılarından Oğuzhan Aslan, yazdığı blogda organizasyonu gerçekleştirme sürecini anlatıyor. Hem verilen emeği göstermesi hem de organizatörlere ve adaylarına fikir vermesi açısından güzel bir yazı.

Üstteki yazıda aynı zamanda konferansın videolarının gelecek aydan itibaren yayınlanacağı ifade ediliyor. Videolardan önce ise katılımcılardan birinin çıkardığı notları okumakta fayda var: Levent Arman Özak, tam bir amme hizmeti olarak bütün oturumlarda not tutmuş ve güzelce derleyip şurada paylaşmış. Kalemine sağlık.

Konferansla alakalı diğer bir yazı ise Fatih Kadir Akın‘dan. Konferanstaki sunumunu blog haline getirip (İngilizce olarak) Medium’da yayımladı: Managing Complex Waiting Experiences on Web UIs. Yazıda enine boyuna uygulamalarda kullanılan “waiting” olayını anlatıyor. Mevcut kullanımlardan örnek vererek nasıl yönetilmesi gerektiğinden bahsediyor.

Pointerları Anlamak

Pointerlar, üniversitede anlamakta en çok zorlandığımız konulardan biriydi muhtemelen. Burak Kirazlı anlamak için neler yapmamız gerektiğinden, neleri kavramamız gerektiğinden bahsetmiş. Açıkçası meslek hayatının başından beri yüksek seviye dillerle ve ERP uygulamalarıyla uğraştığım için pointerlara hiç yolum düşmedi. Ama yüksek seviye dilleri tam manasıyla anlamak için de bu temelleri hatırlamak/bilmek gerekiyor.

Özgür Web Mümkün mü?

“Özgür web”, terim olarak bol miktarda karşıma çıksa da biraz ütopik gördüğüm bir kavram(dı). Ama bu hafta konuyla alakalı gördüğüm en doyurucu yazıyı okudum: Uğur Arıcı’nın Ruber Verborgh’un yazısından çevirdiği Bağımsız Web İçin Bilindik Yöntemlerde Değişiklikler. Yazı hem çok ufuk açıyor, hem de somut, yapılabilir/yapılmış öneriler sunuyor.

Serverless Haftası

Geçtiğimiz çarşamba Software Craftsmanship Türkiye‘nin düzenlediği Serverless meetupında Serhat Can, güzel bir sunum yaptı. Serverless hakkında hazır bilgi sahibi olmuşken zamanında listeye aldığım birkaç serverless yazısını raftan indirmenin zamanının geldiğini düşündüm. Bu yazılar da Codefiction üzerinden yayımlanan iki yazıydı. (Burada Codefiction’a bir parantez açayım. Codefiction, podcastler, meetuplar ve blog yazıları başta olmak üzere inanılmaz nitelikli ve faydalı işler ortaya koyan bir topluluk. Henüz takip etmiyorsanız, hemen takip etmenizi ve halihazırdaki işlerinden faydalanmanızı tavsiye ederim.)

Bahsettiğim yazılardan ilki Deniz İrgin‘in “Sunucusuz Bir Dünya Mümkün mü?” yazısı. (Burada da Deniz İrgin’e bir parantez açayım. Bu yazı dahil blog yazılarını inceleyecek olursanız, uzun, anlattığı konuyu enine-boyuna, her yönüyle anlatan, büyük emek ürünü yazılar göreceksiniz.) Diğeri ise Codefiction internet sitesinin Serverless mimariye geçişini anlatan, Mert Susur’un şuradaki yazısı. (Mert Susur, Codefiction’ın haricinde blockchain konusunda da oldukça üretken. İlgililerin dikkatine). Serverless yapısını merak ediyorsanız durmayın okuyun efendim.

Yazılımda Kalite

mehmet baran, Medium’da “yazılımda kalite” meselesi üzerine bir seriye başladı. Henüz 3 yazı yayımladı(1, 2, 3). Teknik kısma geçmeden önce hazırlık yazıları diyebiliriz. Şu ana kadar gayet iyi gidiyor. Şahsen bu tip yazıların okunmasını çok faydalı buluyorum. Ayrıca yazılım kamuoyunca, yorumlar veya başka yazılar üzerinden bu tarz salt teknik-dışı konuların tartışılarak genele yayılması ve zihinlerde farklı kapılar açılması gerektiğini düşünüyorum.

Birkaç gün önce, bu konuyla ilişkili sayılabilecek bir yazı daha yayımlandı. Aylar önce Airbnb’ ye ait bir scriptin Linkedin’de paylaşılması üzerine dönen tartışmalar olmuştu. (O dönem ben de denk gelmiştim.) Bu tartışmaya dahil olanlardan f., orada kendi yazdıkları üzerinden, özeleştiri de içeren ilginç ve faydalı bir yazı yazmış. Bir nevi fikir teatisi sayılabilir.

İnternette Şifre Pardon Parola Güvenliği

İnternet güvenliği, şifre, parola, hash, parola kırma yöntemleri, “password manager”lar ve dahası. Bütün bunlar gayet teknik ve nisbeten sıkıcı konular. Ama bu tip konuları da zerre sıkmadan keyifle anlamanızı sağlayan insanlar var. Bunlardan biri olan ImmanuelTolstoyevski, yukarıdaki konuları 3 yazılık bir dizide anlatıyor(1, 2, 3). Özellikle parola kırma yöntemlerinde -ehline basit olan- pek çok şey öğrendim.

Kripto Paralar: Nereden Geldi, Nereye Gidiyor?

Geçtiğimiz senenin trend konularından olan ve sokaktaki insana kadar inen Bitcoin, üst üste yaşanan olumsuz gelişmelerden ötürü ciddi miktarda değer ve itibar kaybetti. Steemit’te yayınlanan bir yazıda @cosmos28sec kullanıcısı, kripto paraların doğuşundan, Bitcoin’in zirve yapışına; ICO’lar aracılığıyla yapılan dolandırıcılıklardan, günümüzdeki durumuna kadar uzun bir kripto para hayat hikayesi anlatıyor. Devamında da bu teknolojinin verimli kullanımı için neler yapılması gerektiği üzerine kafa yoruyor.

Bir Optimizasyon Masalı

Birol Kuyumcu, özellikle yapay zeka alanında oldukça üretken biri. Hatta yapay öğrenme hakkında bir de kitabı varmış. Üslubu da nev-i şahsına münhasır. Yapay öğrenmede optimizasyonu yazdığı bir Keloğlan masalıyla anlatıyor. Dahası bu yazı, “Yapay Zeka Hakkında Kıssalı Yazılar” ismini verdiği bir serinin 6. yazısıymış. Siz de buradan buyrun ve keyifle masalınızı okuyun.

“Neyi Arıyorsan O’sun Sen!”

Ziyahan ALBENiZ, özellikle Cambridge Analytica Skandalı sonrası çokça tartışılan verilerimizin şirketler tarafında kaydedilmesi, kullanılma şekilleri ve sonuçları gibi konuları, yayımladığı Medium(“Medium’a hoşgeldiniz” diyelim) gönderisinde arama motorları özelinde irdeliyor. (Yazının ilk yayın tarihi Eylül 2017 imiş. Yani skandalın ortaya çıkmasından aylar önce.)

Bu detaylı ve güzel makaleyi okurken, geçen sene okuduğum “Web 2014 yılından sonra ölmeye başladı” yazısını anımsadım. Okunmasını şiddetle tavsiye ettiğim uzun bir yazı.(Linkteki gönderi, yazının Candost Dağdeviren tarafından yapılan çevirisi. Aynı yazı, Arka Kapı Dergisi’nin ilk sayısında da -yanlış hatırlamıyorsam- Ziyahan Albeniz çevirisiyle yayımlanmıştı.)

Boca: Yazılımcılara Tavsiyeler

Aslında bu alt başlığı “yazılımcılara tavsiyeler: sıralı tam liste” olarak koymayı istedim ama bu konuda tam liste yapmak mümkün olmadığı için, click bait olmasın diye vazgeçtim(yazar burada okura karşı dürüstlüğünden dem vuruyor).

Evet sıralı, tam olmayan listemize geçelim. İşbu liste bu konuda benim karşılaştığım ve de paylaşmaya değer bulduğum makaleleri içerir. Dolayısıyla bu konuda, bunlar dışında daha pek çok değerli makalenin bulunabileceğini belirteyim(yazar burada bir kez daha okura karşı dürüstlüğünden dem vuruyor ve bu gevezelik üzerine okurların %13'ü sekmeyi kapatıyor).

İşte her yaştan yazılımcıyı ilgilendiren o liste:

Developer felan aranıyor mu?: Makalenin girişini okuyunca ben gibi maili atan elemanı sağlam gömecek deyip mısırınızı, çekirdeğinizi almaya davranabilirsiniz. Ama devamında gömme ameliyesi değil, altın değerinde tavsiyeler gelecek. Ve bunları nasihat dinleme edasıyla değil, samimi bir arkadaşınızla muhabbet ediyor gibi okuyacaksınız. Ben geçen sene okumuştum bu yazıyı. İçeriğini tam hatırlayamayınca bir göz gezdireyim diye açtım yine baştan sona okudum. Gene olsun, gene yaparım.

Ahmet AYGÜN‘ün eline sağlık.

Yazılımcı Olmak İsteyenlere ve Yeni Yazılımcılara Tavsiyeler: Bu klişe başlığın altında da keyifle okuyacağınız bir yazı sizi bekliyor. Ahmet Çığşar, bu yazıyı yazılımcılığı bıraktıktan sonra yazdığını ifade ediyor. Yazıda sadece teknik tavsiyeler değil iş dışı yaşamına dair de değerli tavsiyeler var.

Bir Yazılımcı Kendini Nasıl Geliştirmelidir?: Bu yazıda da Farid Movsumov’un önemli tavsiyeleri var.

Kaç Paralık Adamsınız?: Yusuf Çakal’ın, Yegor Bugayenko’nun makalesinden yaptığı çeviri. Bir yazılımcının değerini ortaya çıkaran parametrelerden bahsediliyor.

Bilgisayar Mühendisliği öğrencileri için 10 tavsiye: Erman Taylan, başlıktan anlaşılacağı üzere öğrencilere yönelik tavsiyelerini yazıyor. Ama başta junior yazılımcılar olmak üzere herkesin bir hisse alabileceğini düşünüyorum.

Yazılımcı Fanatikliğinin Anatomisi: Benim de Erkan Erol’a iştiraken, önemli bir problem olarak gördüğüm(yukarıda ve aşağıdaki yazıda da bahsettiğim gibi) yazılım dili/framework fanatikliği hakkında oldukça güzel bir yazı. Okuyalım, okutalım.

Yazılımcı Adayları ve Çiçeği Burnunda Yazılımcılara Tavsiyeler Vol. 3742: Bu yazı da bendenizin(kelime anlamı için) konu hakkında karaladığı bir şeyler. (Bu arada diğer 3741 yazıyı yazıp, yazmadığımı soran stajyer arkadaşıma sevgiler)

Devops Notları

Bir nesle .Net öğreten Burak Selim Şenyurt Hoca, ACM’den aldıkları Devops eğitiminde tuttuğu notları yayımlamış. Yine mütevazi ve her şeyi öğrenmeye meraklı bir çiçeği burnunda öğrenci modunda anlatıyor. Devops kültürünü ve sürecini genel çerçevede anlamak açısından oldukça faydalı bir yazı.

Kuantum Bilgisayarlar Hakkında Yanlış Bilinenler

Geçmiş sayılarda bahsettiğim gibi Zeki Seskir, favori yazarlarımdan biri. Farklı konularda okunası yazılar yazıyor. Bültenin kapsama alanını düşündüğümüzde ise kuantum bilgisayarlar konusunda oldukça doyurucu yazılar yazıyor.

Son olarak kuantum bilgisayarlar hakkındaki yaygın 5 yanlış kanıyıyazdı. Yazının sonunda kuantum bilgisayarlar konulu diğer yazılarına da ulaşabilirsiniz.

Yazılımcı ve Bağlaç Olan -de

Son zamanlarda sosyal medyada sıkça ortaya çıkan bir kitle var: “-de ayrı yazılacaktı” diyenler topluluğu. Ben de o takıntılılardan biriyim. Eskiden beri duyduğum, okuduğum bir cümlede yanlış bir şey varsa üzerinde düşünmediğim halde bir bozukluk olduğunu seziyorum. Hatta bu yüzden ömrümün yarış atı olarak geçen aşamasında, Türkçe derslerindeki en sevdiğim konu anlatım bozukluğuydu.

Sadede gelirsek, bir tweetteki imla hatası veya anlatım bozukluğu -okurken rahatsız etse de- çok önemsenmeyebilir. Ama blog yazılarındaki, makalelerdeki hatalar gerçekten okumayı zorlaştırıyor. Nice konusu itibariyle nitelikli ama imlanın kaşının gözünün yarıldığı blog yazısının altına “içerik çok iyi ama imla hataları okumayı zorlaştırıyor” diye yorum yazmışımdır. Yine bu bültende de bu şekilde içeriği dolu ama imlası sıkıntılı yazıları bağrıma taş basarak paylaşmışımdır. Dolayısıyla blog yazan herkesten şahsi talebim bu noktada biraz daha özenli olunmasıdır. Bu konuda Damla Tantekin‘in “De, Da’yı Ayıramayanla Olmaz” serisini(1, 2) şiddetle tavsiye ediyorum.

Not: Evet ben de mükemmel değilim. Hatalarımı iletebilirsiniz.

Kod Kalitesi ve Süreklilik

Birkaç haftadır listemde bekleyen bir yazıyı da nihayet okudum: Suat KÖSE‘nin kod kalitesi ve sürekliliği hakkındaki yazısı. Yazı içinde ifade edildiği şekliyle, Continuous Code Quality.

Kod kalitesi ölçüm araçları yardımıyla nasıl kalitenin yükseltilebileceğini ve CI/CD süreçlerine bir adım olarak nasıl eklenebileceğinden bahsediyor. Hatta yazının sonunda bu araçlardan SonarQube hakkında yazdığı yazının bağlantısı da var. Ben SonarQube’ü henüz incelemedim ama önceki işyerinde CAST isminde (ücretli)bir araç kullanmıştık. Oldukça detaylı bir analiz yapıyor ve ciddi katma değer sağlıyordu. Disposable nesnelerin kullanımından, boş catch kullanımına, döngü içinde instance oluşturmaya kadar kaliteyi ve performansı doğrudan etkileyebilecek pek çok yanlış kullanımı tespit edebiliyordu.

Kod kalitesi demişken parça parça dinleyip bu hafta bitirdiğim Emre Toptancı’ya ait bir sunumun videosunu da buraya bırakayım. Baştan sona izlemenizi şiddetle tavsiye ediyorum.

Hatayı Yakalamak ya da Yakalamamak ya da Elden Kaçırmak ya da..

Hatalar, buglar -maalesef — yazılımın doğasında var. Kod içinde hata yönetimi ise başlı başına bir maharet. Örneğin olabildiğince spesifik exception tipleriyle hatayı kontrol etmek, hatta kimi zaman hatayı yakalamamak.. Bu konuda Muhammed Cuma Tahiroğlu Üstad’ın şu yazısını(üslup yine enfes) okumanızı şiddetle öneriyorum.

Hata meselesinin diğer yönünde ise bir şekilde yolunu bulup canlı ortamlarda açığa çıkan hataların yönetimi var. Bu kapsamda, hata anında bilgilendirme/alarm yönetimi ve aksiyon alma gibi konular var. Erkan Özkan, (Hepsiburada’da “payment” takımı lideri imiş) Hata var, Panik yokyazısında hataların izlenmesi ve yönetimi için nerede hangi araçları kullandıklarını, nasıl aksiyon aldıklarını detaylıca anlatıyor.

Yazılımcı Lazım

B. N. 32 yaşında. Girişimci olacak. Mükemmel bir fikri var. Parası yok. Beleşe veya girişimden 3–5 hisseye yazılımcı arıyor. Fikri harika olduğu için de çalınma ihtimaline karşı henüz kimseye söylemiyor.

Sanırım bu profili yakından tanımayan bir yazılımcı yoktur. Giray Giriskende bu profilin hikayesini oldukça eğlenceli bir şekilde anlatıp, masanın diğer tarafındaki kişi olan bir yazılımcıların nasıl hareket etmesi gerektiğinden bahsediyor.

Algoritmalar Algoritmalar Algoritmalar Algoritmalar Alg…

Algoritmalar -bana göre- yazılımın mühendislik tarafını teşkil ediyor. Ve bence temelden öğrenmek, unuttukça hatırlamak gerekiyor. Bu aralar ben de Yaşar Safkan Hoca‘nın Youtube’daki Algoritmalar ve Veri Yapıları derslerini izlemeye başladım. Akın Kaldıroğlu Hoca da moderatör tadında iştirak ediyor. Her yazılımcının izlemesi şart. Kesin bilgi. Yayalım.

O esnada bazı temel algoritmalarla alakalı birkaç yazıya da denk geldim: Dijital imzaları, RSA ve DSA algoritmalarını anlatan şu yazı ile Diffie-Hellman anahtar değişimini anlatan şu yazı. Anlatıcı, adaşım Muhammed Karalar.

Diğer yandan bu hafta Baris Ceviz de yine bir algoritmayı anlatan ve tam sevdiğim tarzda bir yazı yayımladı: Shazam’ın müzik arama algoritması nasıl çalışır? Okuyalım, okutalım efendim.

DevOps Kültürü

Son zamanların popüler kavramlarından biri DevOps. Ama bizde bu tip trend olan her kavramda olduğu gibi bu konuda da kavramı içselleştirmek yerine dostlar alışverişte görsün nev’inden bir şeyler yapıp olayın özüne inemiyoruz. Mert Susur, bu noktada DevOps kültürünün ne olduğuna ve firmalarda nasıl oturtulabileceğine dair kafa yormuş ve geçtiğimiz günlerde yayımladığı yazısında fikirlerini aktarmış.

Detaylarıyla IOTA

IOTA, nesnelerin interneti(IoT) için tasarlanmış bir kripto para birimi. Ama temelinde blok zincir teknolojisi yerine Tangle adlı bir teknoloji yatıyor.

Mehmet BERBER ve Yusuf Dündar İstanbul Şehir Üniversitesi’nde bir yüksek lisans dersi için IOTA’yı enine boyuna(altyapısı, gelişimi, yol haritası, avantaj ve dezavantajları vd.) araştırmış ve akabinde blog olarak da yayımlamışlar.

IOTA demişken Mert Susur‘un geçen sene yazdığı iki yazıyı da(IOTA nedir, nasıl çalışır?, IOTA’ya neden güvenemiyorum?) tavsiye ederim.

Mikroservis Mimarisi

Burada sık sık hype olan konuların, teknolojilerin enine boyuna, getirileri ve götürüleriyle hesap edilerek uygulanması gerekliliğinden ve bu minvaldeki makalelerden bahsediyorum. Bu hafta da kısmetimize mikroservisler düştü.

Suat KÖSE, geçtiğimiz hafta içinde mikroservis mimarisinin hangi dertlere ilaç olduğunu, hazırlık safhasında neler yapmamız gerektiğini, bu yolda yapılan en sık hataları ve kendi tavsiyelerini yazmış. Bu arada söz konusu makale vesilesiyle DevOps Türkiye Medium yayınını öğrenmiş oldum. DevOps hakkında muazzam bir Türkçe makale havuzu oluşturulmuş.

Yine Arda Çetinkaya, bu konuda 2015'te yazdığı bir yazıyı geçen günlerde tekrar paylaştı. Bu iki yazıyı da birlikte ve üzerinde durarak okumanızı tavsiye ediyorum.

Modern Frontend Alemi

Yazılım dünyasının teknoloji ve araç sirkülasyonu en fazla olan alanı front-end geliştirme olsa gerek. Senede belki birkaç hype framework/kütüphaneye sahne oluyor. Benim gibi pek bulaşmamış olanlar da biraz html, biraz css, biraz da javascript diye tahayyül ediyor.

Lakin olaylar bambaşkaymış. Onur Kaplan, derli toplu şekilde bu alemde ne var ne yok anlatmış. Front-end frameworkleri, Javascript frameworkleri, CSS metadolojileri, Task Runnerlar, Bundlerlar, paket yöneticileri.. yazıdaki bazı başlıklar.

Bu arada üstteki kısmı yazdıktan sonra Oğuz Kılıç‘ın da yaklaşık 2 sene önce yazdığı benzer içerikli bir yazıya denk geldim. İkisini beraber okumak daha istifadeli olacaktır.

Her Daim Algoritmalar

Algoritmalar, yazılım şeyinin(bilim/sanat/zanaat… siz hangisini diyorsanız) temel yapıtaşlarından. Bu bültende de sık sık algoritmalar ilgili yazılardan bahsediyorum. Şimdi bahsini edeceğim Arda Arman imzalı yazı, daha çok algoritmanın ne olduğunu anlamaya dair okuması keyifli bir yazı. Özellikle yazılıma yeni başlayanlar ve öğrenciler için çok faydalı olacağını düşünüyorum. Evet artık bahsettim yazıdan.

Kullanıcı Deneyiminde Hız Algısı

Geçtiğimiz yıl bir kullanıcı deneyimi(UX) eğitimi almıştım. Belki de bilişim dünyasında yaşanmış örnekleri dinlemesi en zevkli olan alandır. Geçtiğimiz hafta da kullanıcı deneyimindeki hız algısıyla alakalı müthiş örneklerle bezeli bir yazıya denk geldim. Rıza Selçuk Saydam‘a ait yazı esasında 2015 tarihliymiş. Ama ben bahtsızlık eseri olarak ancak tesadüf edip, okudum.

Blok Zinciri ve Ölçeklenme Problemi

Blok zinciri teknoloji hayatımıza bir anda dahil olan ve çok hızlı bir şekilde hype seviyesine ulaşan bir teknoloji. Miladını Bitcoin sayarsak 10 yıllık bir süre içerisinde tüm sorunlarını beklemek zaten gerçekçi olmaz. Hakan Yalçınsoy, bu teknolojinin temel problemlerinden ölçeklenme problemi hakkında oldukça detaylı ve güzel bir makale yazmış. Girişte mevcut yöntem ve algoritmalarla gayrı merkeziliğinin korunması, güvenlik ve ölçeklenme maddelerinden aynı anda ancak ikisinin sağlanabileceğini ifade ediyor ve kullanılan ölçeklenme senaryoları üzerinden bu 3 kriterin sağlanıp sağlanmadığını inceliyor.

Kamuda Gerçek Bir Açık Kaynak Dönüşümü

Geçtiğimiz aylarda Pardus tartışmalarının tekrar alevlendiği(elbette saman alevi) dönemde Pendik Belediyesi’nin Pardus kullandığına dair bir bilgi duymuştum. Kahramanmaraş’taki harikulâde dönüşümden dolayı çok da üzerinde durmamıştım. Ama bu hafta okuduğum müthiş bir yazı beni hem heyecanlandırdı hem de mutlu etti. Belediyeyi gerçekten tamamıyla Pardus ve açık kaynağa dönüştürme çalışmalarına başlamış ve büyük bir ilerleme kaydetmişler. İlk etapta yazılım ekiplerini sağlam bir eğitim sürecinden geçirmişler. Akabinde güzel bir analiz ve planlama yapmışlar. Hemen Göç, Kolay Göç, Orta Göç, Zor Göç şeklinde fazlara ayırmışlar ve tek tek hangi uygulamayı hangi uygulamayla değiştirebiliriz ve belediye genelinde nasıl yaygınlaştırabiliriz biçiminde planlamışlar. Dahası bütün bu süreci Üstün Murat Yıldız‘ın yazdığı bu yazı aracılığıyla detaylıca anlatmışlar. Mesela hangi açık kaynak uygulama hangi gerekçelerle seçildi, geçiş aşamaları nelerdi ve nasıl sorunlar yaşandı, çözümler geliştirildi.

Vakit kaybetmeden okuyun. Siz de sevinin, heyecanlanın!

Mühendislikte Aşırılık

Her yazılımcının içinde gizli bir aşırı mühendis(over engineer) vardır. Kimi zaman “bakın ben ne patternler biliyorum” demek için bazen kendi kendimizi “ne güzel yaptım be!” diye tatmin etmek için bazen -ve genellikle- de basit düşünmeye kendimizi alıştırmadığımız için mühendislikte, tasarımda aşırılığa kaçıyoruz. Suat., kaleme aldığı güzel makaledeaşırı mühendislik ve yalın düşünme(lean thinking) meselelerini irdeliyor.

Antipatternler

Burak Selim Şenyurt, yıllar sonra bir kez daha Antipatternlerdemiş. Tanım olarak, çoğunlukla iyi bir çözüm diye uygulanıp uzun vadede başa bela olan yöntemler denilebilir. Yazıdaki müthiş tespitle: “Bir Pattern çözdüğünden daha fazla problem oluşturuyorsa AntiPattern’ dir.”

Tüm yazılımcılar için adeta bir başucu yazısı. Okuyun, okutun, broşür olarak bastırıp Mecidiyeköy’de, Levent’te, Maltepe’de metro/metrobüs duraklarında dağıtın.

Bir Başucu Listesi

Son dönemin bilgi paylaşım trendleri podcast ve e-posta bültenleri. Görkem Çetin, dev bir amme hizmetine imza atarak faydalı gördüğü podcast ve bültenleri derlemiş. Her ortamda desteklediği işbu bültene, söz konusu liste de yer vermiş. Sağ olsun, var olsun.

Bu arada bir teşekkür de Günün Özeti Bülteni‘nde bu bültenden bahseden Hasan Yasar‘a sunuyorum.

Blockchain Her Yerde

CBInsights, sadakat ve ödül programları konusunda öne çıkan 55 girişimi değerlendirdiği bir rapor hazırlanmış. Bu girişimlerden 6 tanesi Blockchain tabanlıymış. Enes Türk, bu girişimleri incelemiş.

Altuğ Öztürk, Blockchain’in bankacılık ve finans sistemine uygulanması ile ilgili bir akademik makaleden yola çıkarak, futbolda bu teknolojinin nasıl uygulanacağına kafa yormuş.

Zekayı Anlamak

Yapay zeka, adından anlaşılacağı üzere doğal zekanın yapayı. Dolayısıyla gelişimi doğal zekayı anlama seviyemizle yakından ilgili. Ama henüz doğal zekanın muhtevasına tamamiyle vakıf değiliz. Sarper Alkan, “Doğaldan Yapaya: Zeka” başlıklı bir yazı dizisine başlamış. İlk yazısında da doğal zekayı ve öğrenme şekillerini irdeliyor.

Değişmezlik

Yazılımın her paradigmasında anlaşılması gereken ama çok üzerinde duyulmayan bir kavram var: Değişmezlik(Immutability). Oğuz Kılıç, yine yoğun emek ve özen içeren bir makale ile JavaScript’te değişmezliği detaylıca anlatmış.

2019’da Dijital Pazarlama

icerikbulutu, oldukça kapsamlı ve önemli bir çalışmaya imza atmış. Dijital pazarlama alanında yetkin 31 isme 2019 yılı için öngörülerini sormuşlar.

Türkiye’de Girişimcilik

Fatih Coşkun, başlattığı 2 girişimin ardından bu süreçte yaşadığı olumsuzlukları kaleme almış. Spoiler vermem gerekirse (niye gereksin ki? İyice saçmalıyorum), yazının başında verilen istatistiğe göre Türkiye, iş yapma kolaylığı endeksine göre 60. sıradaymış. Yazının her satırı bu tespitin altını fazlasıyla dolduruyor. Sadece bürokrasiye bakan yönüyle değil kurumlar, sektör ve ekosistem yönüyle de çok problem varmış. Hatta 2. yazıyı getirecek kadar malzeme birikmiş.

2019 Trendleri

IoX Digital, 2019 trendleri isimli çok güzel bir seriye başlamış. Şu ana kadar 5 konu başlığı yayımlanmış:

IoX Trendleri(mustafadalci), Müşteri Deneyimi Trendleri(Pisano), Ürün Yönetimi Trendleri(Erman Taylan), Servis Tasarımı Trendleri(Aydıncan Ataberk) ve Teknoloji Trendleri(Turan Can Artunç).

7 konu başlığı ise yoldaymış.

Çöp Toplayıcı

Yüksek seviyeli dillerin önemli kısıtlarından biri hafıza yönetimini soyutlaması ve yazılımcının buradaki kontrolünü zorlaştırması. Bu soyutlamanın sonucu olarak da hafıza yönetimini Garbage Collector marifetiyle kendisi yapıyor. Tabi bize de yerine göre disposable nesneler kullanarak ve gereksiz instance üretiminin önüne geçerek kendisine yardım etmek düşüyor. Gökhan Şengün, bu haftaki yazısında . NET’in Garbage Collector mekanizmasınıanlatmış.

Docker

Geçtiğimiz 2 haftada en fazla Türkçe içeriğe denk geldiğim konu muhtemelen Docker’dı.

Anıl Emre Özçelik, Docker’a Giriş başlığıyla bir seriye başlamış. Şu ana kadar 3 yazı yayımlamış.(1, 2, 3)

Yine Serkan Bingöl, Docker Network, Docker’da image, container ve registry kavramları, son olarak da Docker’da kalıcı veri ve Docker Compose konularında 3 yazı yayımlamış.

Emre Özkan ☁️ 🐧 🐳 ☸️ da Docker üzerinde Hadoop Cloudera kurulumunu anlatmış.

Bu arada Docker hakkında en kaliteli içerik olduğunu düşündüğüm, aynı zamanda yukarıda bahsi geçen yazıların bazılarında da kaynak olarak geçen Gökhan Şengün’ün 3 yazılık harika serisini(1, 2, 3) de zikretmeden olmaz.

TDD’de Dependency Injection

TDD(Test Driven Development) çalışmanın ve birim test yazmanın en sıkıntılı konuları bağımlılıklar. Bu meselenin çözümü de bağımlılık enjekte yöntemi(Dependency Injection) kullanılmasından geçiyor. Burak Selim Şenyurt, geçtiğimiz haftalarda yayımladığı yazısında bu konuya eğilerek, hem Dependency Injection’ı anlatıyor hem de 2 farklı yöntemle(stub ve mock) test yazımında kullanılmasından bahsediyor.

10 Yaşında Bir Çocuğa Yapay Zeka Çalıştırmak

Son haftalarda okuduğum en güzel yazılardan birinden bahsetmek istiyorum: “10 Yaşındaki Oğlumla Nasıl ‘Yapay Zekâ’ Çalışıyorum?”. Zafer Demirkol, yapay zeka çağında 10 yaşındaki oğlunun bunun dışında kalmaması için seviyesine göre yapay zeka öğretmeye karar vermiş. İlk başta temel seviyede bildiği Excel’i geliştirmesi için yardım etmiş. Misal futbol merakından faydalanarak Fenerbahçeli furbolcuların bilgilerini pek çok detayıyla bir Excel dosyasına girmesini sağlamış. Akabinde PowerBI ile bu verileri yine seviyesine uygun şekilde görselleştirmiş. Daha sonra yaz tatilinde Dünya Kupası’nın olmasından istifadeyle Dünya Kupası’ndaki futbolcuların verilerini oluşturmasını sağlayıp, bunların bir kısmı ile IBM Watson’ı eğitmiş; kalanları ile de test etmişler. Elhâsılı, pek çok konuda ders çıkarabileceğimiz müthiş bir yazı.

2018'de Yapay Zeka

2018'in son günlerinde Stanford Üniversitesi tarafından ve SRI International, MIT, OpenAI, McKinsey Global Institute, Harvard Üniversitesi gibi bu alana yön veren kurum ve kuruluşlardan birçok araştırmacının desteği ile oluşturulan ‘Artificial Intelligence Index- 2018 Annual Report’ yayımlanmış. Deep Learning Türkiye Topluluğu’ndan Başak Buluz ve Sebnem Ozdemir, bu raporu Türkçeye çevirmiş ve yorumlamışlar.

Birincilik Alan Bir Yapay Zeka Projesinin Serencamı

Tam Faktoring, bir hackaton düzenlemiş. Yarışmanın birincisi “Python’da Majority Vote (Topluluk Oylaması) ile Müşteri Kayıp(Churn) Analizi” projesiyle Yunus Emre Gündoğmuş ve arkadaşları olmuş. Çeşitli makine öğrenmesi yöntemleri kullanılarak sürekli müşterileri kaybetme (churn) analizi yapmışlar. Daha da güzeli Yunus Emre Gündoğmuş, projeyi anlattığı detaylı ve çok başarılı bir makale kaleme almış. Hem birincilik hem de makale için tebrik edip devam edelim.

Bitcoin’in Halkın Arasına Karışması

Turan Sert, burada sık sık bahsi geçen, Blockchain konusunda üretken bir yazar. Son 2 yazısında Bitcoin’in geniş kitlelere yayılması için yapılan geliştirmelerden bahsetmiş. İlkinde Blockchain üzerinde 2. bir tabaka olarak konumlandırılan ve saniyede maksimum işlem yapılması kısıtını aşmaya yönelik bir geliştirme olan Lightning Network’ü anlatmış. Diğer yazıda ise borsa işlemleri için geliştirilen bir Bitcoin yan zinciri olan ve Bitcoin değerinde L-BTC isminde bir para birimine sahip olan Liquid’den bahsetmiş.

TCP Nedir

TCP, pek çok teknolojinin temelinde kullanılan paket kaybına karşı duyarlı bir iletim protokolü. Aynı zamanda yazılımla uğraşan herkesin bilgi sahibi olması gerektiğini düşündüğüm temel bir konu. Gökhan Şengün, haftalık yazılarında yine mimarisi ve çalışma mantığıyla TCP’yi anlatmaya başlamış(1, 2).

Yerli Siber Güvenlik Yazılımı Hamlesi

Utku Şen, daha önce Arka Kapı Dergi’de yayımlanan “Yerli Siber Güvenlik Yazılımı Hamlesinde Gözden Kaçan Detaylar” yazısını blog sitesinde neşretmiş. Oldukça önemli bir konu ve gayet dolu, güzel bir yazı. İlk etapta bu konuda başarılı olan ülkelerin özelliklerinden bahsetmiş, sonrasında ise ülkemizdeki durumla kıyaslayarak neler yapılması gerektiğinden söz etmiş. Son kısımda ise siber güvenlik yazılımlarının gelişim evrelerinden ve aynı dönemlerde ülkemizde yaşanan gelişmelerden bahsetmiş.

Ürün Geliştirme Kültürü

Ürün geliştirme tabiri yazılım aşamasını da içine alan geniş bir kavram. Anıl Kıral, ürün geliştirme organizasyonu kurgulanırken nelere dikkat edilmesi gerektiğinden ve bu konuda kültür oluşturmanın öneminden bahseden bir yazı yayımlamış. Spotify örneği üzerinden ürün geliştirme kültürü ve takım oluşturma meselesini anlatan güzel ve faydalı bir yazı olmuş.

Bitirirken

Evet, derlemenin derlemesinin sonuna geldik. Haftaya her şeyiyle yeni bir sayı ile görüşmek üzere.

Zâtınıza çook iyi davranın.

Bana ulaşmak için: Linkedin, Twitter, CuriousCat

Daha fazla motive etmek için: Patreon

Video: Bilgisayarın Doğuşu Üzerine