30 Aralık 2019 Pazartesi

Yazdım da ne oldu ? (100. Yazı - Ustalara Vefa)

     S.A. Arkadaşlar,
     İlk defa teknik olmayan bir yazı yazıyorum. Bunun sebebini başlıktan anlamışsınızdır :) Hem mutluluğumu hem de bana sıkça sorulan "yazıyorsun da ne oluyor veya yazmanın sana katkısı nedir?" gibi soruların cevabını sizlerle paylaşmak. Ayrıca yazmak isteyip de bir türlü başlayamayan arkadaşlara da başlamalarına vesile olur.

24 Kasım 2019 Pazar

Angular Çalışma Notlarımdan - 3 (ileri konular)

     S.A. Arkadaşlar,
     Bugün Angular çalışma notlarımdan toparladığım 3. ve serinin son yazısına gelmiş bulunmaktayız. Daha önce Type Script ve ng generate yapıları adlı 2 blog yayımlamıştık. Bugün de ele alacağımız konular ise routers, pwa, universal, bootstrapping, http client, depency injection, RxJS, ivy ve web worker olacaktır.

17 Kasım 2019 Pazar

Angular Çalışma Notlarımdan - 2 (ng generate yapıları)

     S.A. Arkadaşlar,
     Angular serimizin ikinci yazısı olan ng generate yapılarından olan module, component, service, directive, pipe gibi kavramlarını inceleyeceğiz. Serinin ilk yazısına buradan erişebilirsiniz.  Yazıya başlamadan önce rastladığım güzel bir örneği anlatmak istiyorum. Uygulamanızı bir bina olarak düşünün. Bina içerisinde birden çok bölüm olabilir (module).Bölüm içersinde Angular'ın yapı taşı olan odalar(component) yer alır. Binalar içinde ve binalara arası daha rahat etmek için taşıyıcılar(service) yer alır. Bölümler arası hizmeti kullanışlı hale getirmek için de pipe'ler yer alır. Ayrıca site içinde havuz, spor salonu gibi ortak kullanım alanları vardır(shared module). Şimdi artık bu kavramları daha ayrıntılı olarak ele alalım.

27 Ekim 2019 Pazar

Angular Çalışma Notlarımdan - 1 (Type Script)

      S.a. Arkadaşlar,
      Son dönemlerde Angular'a olan ilgim nedeniyle daha düzenli ilerlemek açısından kursa başlamıştım. Kursu bitirip proje de yapmıştım, fakat üzerinden zaman geçince kursu tekrardan gözden geçirmek istedim. İkinci defa izlediğimde her şeyin daha iyi oturduğunu fark ettim. Daha iyi anladığımı düşündüğüm halde ileride kendime aldığım notları elden geçirip sizinle de paylaşmak istedim. Bu yazıyı hazırlarken Uygar Manduz'un verdiği eğitim sonrası yazının kapsamı genişledi. 3 yazılık bir seri olarak ele almaya karar verdim. 1. yazıda type scripti ele alacağız.

17 Ekim 2019 Perşembe

Birbirine Benzeyen 3 İfade: const, static ve readonly

     S.a. Arkadaşlar,
     Bugün herkesin bildiği ama aslında aralarında farklar bulunan 3 keywordü inceleyeceğiz: const, readonly ve static. Bu yazının çıkış noktası mülakatta bana sorulan readonly ile const arasındaki fark nedir sorusuydu. Buna ek olarak bugün const olarak tanımladığım değişkeni değiştirmek istediğimde (.net core - vs - debug mode) kodu tekrardan derlememi istedi, değişkeni daha sonra readonly yaptığımda buna gerek kalmadığını gördüm. Böylece bu konuda güzel bir toparlama yazısı yazmak istedim. Hazırsak başlayalım.

8 Eylül 2019 Pazar

Tip Kontrolü (Type Checking)

       S.a. Arkadaşlar,
       Uzun süren bir aradan sonra nihayet gelebildim. İnsan yazmaya alışınca yazmadan edemiyor artık. Ben de not aldığım konulardan biri olan tip kontrolünü ( Type Checking) ele almaya çalışacağım. typeof, GetType, is ve as kavramların inceleyeceğiz. Şahsım adına kullandığım yapıların sadece kullanımını değil; nerelerde ve ne zaman kullanılır, alternatifleri nelerdir gibi soruların cevaplarını bulmaya çalışıyorum. Ortaya çıkan şeyleri de elimden geldiğince paylaşmak istiyorum. Bu da bu şekilde orta çıkan bir yazı oldu.  Bu kısa girişten sonra yazıya başlayalım.

14 Mayıs 2019 Salı

Modern JavaScript(ES6+) Eğitiminden Notlar

     S.a. Arkadaşlar,
     Son zamanlarda iyice yükselişe geçen js tarafına bir el atmak istiyordum. En son, öğrenmeyi isteme sürecinden öğrenme sürecine nihayet geçebilmiştim, ama o zamanlar bile bu öğrendiklerimle ilgili notlar alıp blog haline getirmeyi düşünüyordum. Tabi tüm bunlar dağınık bir şekilde duruyordu. Bugün onları derleyip size bu süreçte kendime aldığım notları sunmak istiyorum.

8 Mayıs 2019 Çarşamba

.NET Core Win Form

      S.a. Arkadaşlar,
     Bugünkü yazım aslında redis ve windows memory cache hakkında olacaktı, fakat yeni bir proje oluştururken daha önce olmayan bir şeyi fark ettim :) Tabi bunu fark etmemin sebebi visual studio 2019 kullanıyor olmam (2017 sürümünde 15.8 sonrasında da mevcut). 

22 Nisan 2019 Pazartesi

Kendini Geliştirmek İsteyen Yazılımcılara...

    S.a. Arkadaşlar,

     Hayatımıza uygulamamız gereken bir kaç pratik bilgiden bahsetmek istiyorum. Bunları uygulamanın bir çok faydası var. Zaman zaman bunları uygulamak benim de yaşadığım bir sıkıntı maalesef. O yüzden bunları önce kendime söylüyorum. Daha sonra belki başka faydalananlar da çıkar ümidiyle paylaşmak istedim. Belki bu sayede kafalarda birer soru işareti, birer yol işareti olması dileğiyle.

     Kod Okumak
     Benim kendi adıma dert yandığım konulardan biri kod okumaktır. Hepimiz kod yazıyoruz, ama yazdığımız kodun kalitesi hakkında fikir sahibi miyiz ?
Hadi onu da geçtim, başka biri bu kodu nasıl yazardı veya bu mimariyi nasıl tasarlardı diye hiç düşündünüz mü ? Bazen yazdığım kodlardan sonra bunu düşünüyorum. Acaba iyi bir çözüm müdür, daha iyisi yazılabilir mi diye kafa yorduğumu oluyor. Ve bu yetiyi geliştirmek için github üzerinden bol bol kod okumak lazım.

      Mümkünse açık kaynaklı kodlara destek vermek lazım. Ayrıca hackerrank tarzı siteleri de es geçmemek lazım. Bazen oralarda problemler çözüyorum.
 Merak edip insanların çözümüne bakıyorum, çok makul ve etkili çözümler görebiliyorum, işte böyle böyle gelişebiliriz.
      Burada Tarık Güney’in bir makalesiyle baş başa bırakayım sizi. Kendisi de çok üretken çok bilgili bir meslektaşımızdır.

     Kod Kata
     Belki de bu kavramlar arasında en nadir duyduğunuz kavram budur. Ben bunu kavramı ilk defa Özcan Acar Hoca’dan duydum. Kendisi bu konulara çok kafa yoran bilgili, üretken bir Java Şampiyonudur.

     Günlük olarak pratik yapmamız gerektiğini söylüyor. Futbolcu nasıl her antrenmandan önce ısınma hareketleri yapıyorsa ve bu onu zinde tutuyorsa bizim de bunları yapmamız gerektiğini söylüyor. Aşağıda vereceğim siteye göz atabilirsiniz, ayrıca ben bunu son zamanlarda aksatsam da her gün hackerrank’tan bir problem çözmek olarak hedef koymuştum kendime. Bunu bir düşünmenizi tavsiye ederim.
 Kod Kata

      Code Review
      Bu da başka önemli bir konu. Büyük şirketlerde çalışan arkadaşlar bu açıdan daha şanslı olsa da bu imkana sahip olmayanlar da kendine bir arkadaş bulabilir ve müsait oldukça ya da belirli günlerde arkadaşıyla kodları inceleyebilirler. Mesela ben bunun için kendime bir arkadaş buldum ve ara sıra da olsa bunu yapmaya çalışıyorum. Siz de bence bu iş için birilerini bulabilirsiniz.

       SonarQube ve Resharper
       Sonarcube kodun kalitesini statik olarak ölçen ve size bu konuda öneriler sunabilen bir araçtır.
 Resharper ise direkt c# için visiual studio refactor aracı da diyebiliriz.
 Şahsen resharper kullanmadım ama sonarcube kullandım ve oldukça da eksiklikleri görüp düzeltmiştim. Bu konuda dinlediğim bazı podcast’lerde yurt dışında sonarqube’den geçmeyen kodların push’lanmadığını bazı yerlerde ise kodun derlenmediğini dahi duydum. Buları hep ayarlayabiliyorsunuz. Tabi bunları Türkiye’de başarabilmek ne kadar mümkün bilemiyorum.

     Bununla ilgili medium’da bir yazım var isterseniz inceleyebilirsiniz.
     Burada da Suat Köşe’nin güzel bir yazısı mevcut.
     Farklı platformlar için medium üzerinden kolaylıkla farklı örnekler buldum. Sizler de kullandığınız dil veya platforma göre bulabilirsiniz.

     Çıplak sınıf kalmasın
     Bu kavramı ilk defa Engin Demiroğ’den duymuştum. Kendisi bu konularda oldukça bilgi bir meslektaşımız. Bu konu aslında kendime kızdığım bir konu. Base class oldukça yaygın kullanıyorum, fakat interface kullanımında kendimi eksik görüyorum. (Bu yazıyı daha önceden hazırlamıştım, şimdi tekrardan gözden geçirirken bu konuda da kendimi geliştirmeye devam ediyorum. Bu eksikliğimi de gidermeye devam ettiğim için ayrıca mutlu oldum:) Yani bir class oluşturduğumuzda base’inde (java’da super class) , implementasyonunda bir arayüz (interface) yoksa orada sıkıntılar var demektir. Bu konu belki de hastalıkların babasıdır. Çünkü mimari düzgün kurulmadığında, sınıflar birbirine sıkı bağımlı olduğunda, test yazmak daha da zorlaşır. Test yazmak zorlaşırsa proje kırılgan olur. Kırılgan olan projede değişikler yapmak zor ve maliyetli olur. Her değişikliğin maliyeti artar ve en son sonunda yeniden yazmak zorunda kalacağınız bir projeniz olabilir.

     AOP ve @-Attribute
     Bu konu da oldukça güzel bir konu. Yıllar önce okumuştum, fakat o zamanlar ne demek istediğini tam anlayamamıştım. Daha sonra tekrar araştırma fırsatı buldum. Burası benim kendi adıma sevindiğim bir nokta oldu. Adını bilmeden kullandığım bir yapıymış. Bunu kısaca açıklayacak olursak;
      Bir metot içerisinde onlarca kontrol varsa bunları attribute olarak tanımlayıp kodu basit hale getirebiliyoruz. Bu başlı başına bir yazı olduğu için buradan bir örnek vereyim. Bu yazı oldukça uzun bir yazıdır. Hepsini okumazsanız bile en azından yarısına kadar gelmenizi şiddetle tavsiye ederim. Ayrıca benim de MVC yapısı ile kullanarak hazırladığım bir yazım var.

     Clean Code
     Bu konu başlı başlına çok büyük bir konu gerçekten, fakat sürekli tavsiye edilen bu kitabın İngilizcesi gerçekten çok uzun. Bu yüzden
 Büşra Uzun’un bu konuda paylaştığı notları var. 12 yazı şeklinde yayımlamış. Gerçekten çok emek harcamış ve kesinlikle okunması gereken bir yazı serisi.

   Sonuç
 Tüm bu konuları ele alıp bu linkteki gibi kendi kod standartlarımızı dahi yapabiliriz. Eksik veya eklemek istediğiniz yerler olursa yazıya yorum olarak ekleyebilirsiniz. Ayrıca karşılıklı olarak da konuşmak isteyen arkadaşlar özelden (linkedin veya twitter’den) de yazabilir.

Selametle Kalın.