Herkese merhaba,

C# ile hangi platform için yazılım geliştirirsek geliştirelim işin özünde hepimiz ortak bir paydada buluşuyoruz; tek kelimeyle: ‘veri’. Bir masaüstü uygulaması da yazsak, ASP.NET ile bir web uygulaması da geliştirsek, ortak kaygımız hep verinin alınması/işlenmesi oluyor. Bir kullanıcının sisteme login olurken kullanıcı adı ve şifresini alıp kontrollerinin gerçekleştirilmesinden, bir hastane otomasyonu yazılımında ilgili hastayı bulmak ve bilgilerine erişmek gibi ve bunu çok daha farklı örneklerle arttırsak dahi işimiz özünde bir veriyi bulmak, o veriyi güncellemek, eklemek, silmek gibi işlemler oluyor. Bu sebeple C#’ta yazılım geliştirirken bir veriyi kod içerisinde tuttuğumuz değişkenlerden, efektif veri kullanımı için seçeceğimiz veri yapısına…


www.cozvelioglu.com

Herkese merhaba,

Uzunca bir süre yazmaya ara vermiştim, bu süreçte eski yazılarımla ilgili o kadar güzel feedbackler aldım ki geri döneceğim zaman aslında sadece kendime notlar alırım diye çıktığım bu yolun farklı bir sorumluluk yüklediğini de böylece fark etmiş oldum. Pandemi, karantina, evden çalışma derken hepimizin uzunca saatlerini evde bilgisayar başında geçirdiği şu günlerde kod yazarken en büyük destekçilerimden olan Spotify Desktop versiyonu ile müzik dinlerken bir ışık yandı zihnimde. .NET Framework’te çalışan bir exe programını ameliyat masasına yatırıp tüm süreci baştan sona kısaca incelemek. Bu sebeple bu yazımda zaman zaman benim de karıştırdığım/detaylarını hatırlamakta güçlük çektiğim CLR, CIL, JIT…


Bu yazımda C#’ta string birleştirme işlemi yaparken oluşabilecek performans problemlerini, .ToString() ile Convert.ToString() methodları arasında ne gibi bir fark olduğunu ve iki string’i karşılaştırırken kullandığımız .Equals() methodu hakkında ufak bir detayı inceleyeceğiz.

“String birleştirme işlemleri neden maliyetli?” sorusunun cevabı aslında stringlerin .NET Framework’teki tanımlanmalarından ileri gelmektedir. String tipi .NET Framework’te immutable (değişmez) olarak tanımlanmıştır. İlk olarak immutable kavramı bilmeyenler ve yeniden hatırlamak isteyenler için nedir, ne değildir inceleyip; yavaş yavaş string işlemlerinin performanslarına doğru yol alalım isterim.

İmmutable (Değişmez) Nedir?

Immutable nesneler bir kez oluşturulduktan sonra içeriği değiştirilemeyen nesnelere verilen bir tanımlamadır. String tipi de immutable tanımlandığı için, stringler üzerinde yapılan birleştirme işleminde…


Bu yazımda teknik sohbetlerde ve sorularda yer alan fakat zaman zaman kolayca karıştırılabilen, unutulmaya yüz tutmuş temel bazı kavramları işledim. Derli toplu bir şekilde bir köşede durmasının faydalı olacağını düşünüyorum. Sözü fazla uzatmadan kavramlara geçelim :)

Method İmzası (Method Signature) Nedir?

Method imzası; methodun ismini ve aldığı parametrelerin tipleriyle birlikte sayısını belirten bir kavramdır. Unutulmaması gereken durum, method imzasına dönüş tipinin dahil olmadığıdır.

Örnek:

int Carp(int sayi1, int sayi2);int Carp(int sayi1, int sayi2, int sayi3);

Yukarıdaki ilk Carp methodunun imzası Carp(int,int) şeklindeyken ikinci Carp methodunun imzası Carp(int,int,int) şeklindedir.

Ufak bir not: Method imzası kavramı özellikle Method Overload konusunda karşımıza çıkmaktadır.

Parametre ve Argüman Nedir? Farkları Nelerdir?

Parametre, bir method tanımlanırken…


Versiyon kontrol sistemleri kalabalık ekiplerin, büyük projelerin hatta tek başına yazılım geliştiren yazılımcıların bile olmazsa olmaz bir araç çantası. Versiyonlar arasındaki farkları üstünden ne kadar zaman geçerse geçsin, kodlardaki değişen kısımlara bakmadan bir bakışta anlayabilmenin yolu ise iyi yazılmış commit/check-in mesajlarından geçiyor. Kalabalık ekiplerin çalıştığı büyük projelerde commit veya Visual Studio ile TFS’i entegre olarak kullanan ekipler için diğer adıyla check-in mesajları oldukça büyük önem arz ediyor. Geliştirme yapacağınız ekranın geçmişine göz atarken yalnızca mesaj içeriğinden bir şeyleri anlamak inanılmaz zaman kazandırıyor ve verimi artırıyor. …


Yazılıma yeni başlayan hemen herkesin zaman zaman karıştırdığı, hangisini ne zaman kullanacağına karar veremediği Abstract Class ve Interface ikilisini ele almak istedim. İlk bakışta yazdığımız koda oldukça benzer yetenekler kazandırdıkları görünse de aralarındaki farkların üzerinde durarak hangi senaryolarda hangisine karar vermemiz gerektiğini iyice açığa çıkartacağız 🙂


“Söz vermiştim kendi kendime: yazı bile yazmayacaktım. Yazı yazmak da hırstan başka ne idi? Burada namuslu insanlar arasında sakin ölümü bekleyecektim. Hırs hiddet neme gerekti? Yapamadım. Koştum tütüncüye, kağıt kalem aldım, oturdum. Ada’nın tenha yollarında gezerken canım sıkılırsa küçük değnekler yontmak için cebimde taşıdığım çakımı çıkardım. Kalemi yonttum. Yonttuktan sonra tuttum öptüm. Yazmasam deli olacaktım.

– Sait Faik Abasıyanık/Haritada Bir Nokta

Sait Faik’in dediği gibi oluyormuş aslında her şey.. Bir gün tak ediyormuş insanın canına yazmamak/yazamamak. Benim hikayemse aslında yazmak isteyen herkes ile benzer, benim içinse farklıydı. Bu yüzden, öncelikle neden ve nasıl yazmaya karar verdiğimi yazarak başlamak istedim.

Uzun…


Herkese merhaba,

Bir süredir Medium’da bir yazı dizisine başlamak aklımdaydı ancak ne yapacağım konusunda çok da bir fikrim yoktu. Yazmak her şeyden önce bana iyi gelen bir şey olduğu için bir şeyler karalamayı uzun süredir oldukça istiyordum. Nihayetinde düşündüm ki Bilgisayar Mühendisliği’nin en temel alanlarından birisi olan Veri Yapıları’na dair (benim de üniversite döneminde büyük bir keyif aldığım ancak ilk başlarda bir o kadar da bana karmaşık gelen bir konu olmuştu) kendimce notlar oluşturmak ve bunları paylaşmak istedim.

Hem kendimce bir tekrar yapmış olacağım, hem de kendime ve bir şekilde bu yazılara ulaşan insanlara belki ufak da olsa bir katkı…


Alan Turing

Üniversite eğitimini sayısal bir bölümde okuyan birçok insanın adını bir şekilde bir yerlerde duyduğu bir ismi mercek altına alacağım bu yazımda. İngiliz matematikçi, kriptolog ve bilgisayar bilimcisi kabul edilen Alan Turing.

6 yaşında okula başlayan ve matematik üzerine doğal bir eğilimi olan Alan Turing kısa sürede öğretmenleri tarafından keşfedilmiş, henüz 16 yaşındayken derslerinde türev/integral gibi konuları öğrenmeden bile ileri düzeyde matematik problemlerini çözer hale gelmiştir. Hatta bilime öylesine meraklı bir çocukluğu olmuştur ki; trenlerin ülkede işlemediği bir gün Southhampton’dan okula 60 milden fazla süren yolu tek başına bisikletle gitmiş ve yarıyolda geceyi bir otelde geçirmiştir.

Gelelim şimdi Alan Turing’in üniversite…

Ceyhun Çözvelioğlu

Software Engineer | cozvelioglu.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store