Meraklı bir bilgisayar programcısının notları.

Merhaba! Ben Burak Selim Şenyurt - yazılım geliştirici, blogger ve öğrenme tutkunu.

Bu blogda yazılım mühendisliği, sistem tasarımı, programlama dilleri ve yeni teknolojiler üzerine yazılar paylaşıyorum. Özellikle .NET, Rust, Zig, yapay zeka araçları ve mimari konularına ilgi duyuyorum. Kendimi sürekli geliştirmeye ve yeni şeyler öğrenmeye adıyorum.

Arama · Arşiv


Maceralar

Toplam 1022 yazı Tüm arşiv Arama RSS
  • Ruby Kod Parçacıkları - 1

    Bir programlama dilini öğrenmenin en iyi yolu elbetteki bol bol kod yazmaktan geçer. En azından belirli bir seviyeye gelene kadar basit IDE’ler ile mümkünse Console ekranları üzerinden çalışarak ilerlemekte yarar vardır. Hazır bu aralar Ruby ile haşır neşir iken hem basit kod parçaları paylaşayım hem de bu eğlenceli dili birlikte öğrenelim istedim. İşte ilk kod parçacığımız. Konumuz, diziler (Arrays).

  • Ruby Maceralarım

    Kırklı yaşlarına gelmekte olan bir yazılımcıyım ve uzun zamandır bu işin içerisindeyim. Fark ettim ki yeni bir şeyler araştırmadan rahat edemiyorum. Belki hep.Net üzerine yoğunlaştım ancak zaman zaman farklı alanlara da göz atıyorum. Bu düşüncelere sahip olduğum dönemlerde ağırlıklı olarak farklı programlama dillerini tanımaya çalışıyorum.

  • Tek Fotoluk İpucu 119 - En Keyifli Validation

    Hani şu NuGet paketlerine bakıyoruz ya bir süredir. Hatta bazılarını alıp basit Hello World uygulamalarını geliştiriyoruz. Aslında nasıl kullanıldıklarını öğrenmenin dışında GitHub gibi Repository’ler üzerinde tutulan kodlarına bakamamızda da büyük yarar var biliyor musunuz? Çünkü çoğu, nesne yönelimli programlamanın temel dinamiklerini içeriyor ve hatta yazılım prensipleri ile tasarım kalıplarını başarılı bir şekilde uyguluyor.

  • Tek Fotoluk İpucu 118 - Fluent Command Line Parser ile Hello World

    Nesne Yönelimli Programlama Dillerinin (Object Oriented Programming Languages) kullanıcılarını büyülediği pek çok nokta var. Örneğin Fluent API’ler bunlardan sadece birisi ve getirdiği güzellikleri pek çok bağımsız üründe de görebiliyoruz (Bu arada Fluent API geliştirilmesi ile ilgili olarak şu eski anlatıma bakabilirsiniz)

  • Tek Fotoluk İpucu 117 - LINQtoExcel ile Hello World

    Yine çok sıkıldığınız günlerden biri ve siz şöyle bir yarım saatlik kodlama uğraşı arıyorsunuz. Hani yeni birNuGet paketi denesem nasıl olur diyorsunuz belki de. Hatta azcık da zorlayıcı bir paket olsa, yükleyince hemen çalışmasa ama çok da vaktimi almasa derdindesiniz. Bir bakıyorsunuz karşınızda Excel dosyalarında LINQ (Language INtegrated Query) sorguları yazabilmenizi sağlayan LINQtoExcel. Hemen örnek bir Exceldosyası oluşturuyorsunuz belki de.

  • Tek Fotoluk İpucu 116 - Sayısal mı?

    Oldu ya geliştirdiğiniz projenin bir yerinde, koda düşen metinsel bazı değişkenlerin sayısal olup olmadığını tespit etme ihtiyacı duydunuz. Söz gelimi bir Excel dokümanı içerisinden aldığınız hücre değerlerinin sayısallığını kontrol etmek ve buna göre program akışını yönlendirmek gerekiyor.

  • Tek Fotoluk İpucu 115 - C# 6.0 Pratikleri (Dictionary Initializer)

    Bir önceki tek fotoluk ipucunda belirttiğimiz üzere C# 6.0 ile dile kazandırılan bazı kabiliyetler kodun kolay okunabilir olması açısında önem arz ediyorlar. Örneğin generic bir Dictionary koleksiyonunu örneklemek için aşağıdaki fotoğrafta görülen yeni yazım dizimini kullanabiliyoruz. Daha okunabilir ve anlaşılır olduğu şüphesiz.

  • Tek Fotoluk İpucu 114 - C# 6.0 Pratikleri (Expression-Bodied Function ve String Interpolation)

    Eric Vogel’e göre C# 6.0 ile birlikte dile kazandırılan yenilikler kodun daha kolay okunabilmesini sağlamaktaymış. Örneğin Expression-Bodied fonksiyonlar bu kapsamda değerlendirilebilirler. Diyelim ki elinizde bir POCO (Plain Old CLR Object) tipi var ve ToString metodunu ezeceksiniz (Override). Dile gelen yeni kabiliyetler ile söz konusu metodu aşağıdaki gibi yazma imkanımız var. (Metod gövdesinde string Interpolation özelliğini kullandığımıza da dikkat edelim)

  • Tek Fotoluk İpucu 113 - Dapper.Net ile Hello World

    Gecenin bir yarısı. Bilgisayarınızın başındasınız. Önünüzde Visual Studio. Yanınızda kahveniz/çayınız. Canınız da sıkılmış. Acaba ne yapsam da vaktimi iyi değerlendirebilsem diye düşünüyorsunuz. Böyle hallerde şöyle bir NuGet paketi bulup araştırmak bünyeye iyi gelebiliyor. Bunun için Nuget Must Haves isimli siteyi ziyaret edebilirsiniz.

  • Tek Fotoluk İpucu 112 - Acaba Bu Dosya Microsoft Office Open XML(OOXML) Formatında mı?

    Diyelim ki bir yerlerde saklanmış ve kod tarafında byte[] array olarak ifade ediebilecek çeşitli tipte dosya içerikleriniz var ve siz bunların Microsoft Office Open XML formatında olup olmadıklarını anlamak istiyorsunuz. Bir süreci başlatmadan önce DB gibi bir ortamda duran dosyaların gerçekten de istenen tipte olup olmadığını anlamak kritik bir operasyon olabilir. Peki bu tip bir kontrolü gerçekleştirmek için nasıl bir kod parçasına ihtiyacımız olur?

  • TFİ 111 - Dosya Adı İçinden Geçersiz Karakterleri Çıkartmak

    Diyelim ki elinizde bir takım dosya adları var. Bu dosya adları herhangi bir kaynaktan okunuyor. Ancak bazı dosya adlarında geçersiz karakterler yer aldığını tespit ediyorsunuz (?: < vb) Siz de dosya adlarını kendi uygulamanız içerisinde değerlendirirken bu geçersiz karakterlerden arındırarak hareket etmek niyetindesiniz. Ne yaparsınız? Bunun için bir genişletme fonksiyonu (extension method) yazmak isteseniz nasıl hareket edersiniz? Yoksa aşağıdaki gibi bir metod işinize yarar mı?

  • SOA Nedir?

    Yazılım dünyasının zor anlaşılan kavramlarından birisi de çeşitli mimari modellemeleridir. SOA (Service Oriented Architecture) en popüler yazılım mimarilerinden birisi olmakla beraber, anlaşılması ve uygulanması en zor olanlarındandır. Gelin SOA’yı dilimiz döndüğünce anlamaya ve en önemlisi hangi ihtiyacı/ihtiyaçları çözdüğünü bulmaya çalışalım. İlk olarak basit ve genel bir tanımlama ile işe başlamakta fayda var.

  • Tasarım Desenleri – Template Method

    Düzenli olarak teknik paylaşımlarda bulunan internet yazarlarının karşılaştığı en büyük sorunlardan birisi, hızla gelişen teknoloji nedeniyle ele alınan konuların kolayca eskimesidir. Hangi firma olursa olsun bu kural geçerlidir. Bu eskitme işinde elbette başı çeken bir kaç firma var. Zaman zaman yazarların serzenişte bulunup kızdığı Microsoft, Oracle, Google ve diğerleri.

  • WCF 4.5–Built-In UDP Desteği

    Hızzzzz!!! Ben Hızzımmm! Hızlıdan hızlı…

  • Managed Extensibility Framework - Hello World

    Günümüzde uygulamaların genişletilebilir olması önemli bir konu. Modüler olarak da nitelendirebileceğimiz bu felsefe ile bir uygulamanın kullanıcıları tarafından kolayca genişletilebilmesi amaçlanır. Hatta akıllı uygulamaların kendilerini bu şekilde genişletmesi de mümkündür.

  • Biyütıful Kod - Ninject ile Bir Dependency Injection Macerası

    Her yazılım geliştirici özellikle büyük bir projeye girdiğinde kodlarının kaliteli olması için uğraşır. Bu yönde adımlar atar. Çoğu zaman bu bir sanata dahi dönüşebilir. Okunabilir kodlar oluşturmanın dışında, mimari açıdan büyüleyici olan, yeniden kullanılabilirliğin üst seviyede olduğu, fazla uğraşılmadan genişleyebilen ürünler ortaya çıkartmak en büyük gayelerden birisi haline gelir. Martin Fowler’ın ilkeleri sıkı sıkıya takip edilir. Kurumsal çözüm içerisinde Fluent API’ler kullanılmaya, “Dependency Injection Container” gibi kavramlar konuşulmaya başlanır. Ne kadar başarılabilir bilinmez ama amaçlardan birisi de Biyütıful Kodu ortaya çıkartmaktır.

  • WCF 4.5–ChannelFactory Tipi için Caching Kullanımı

    Vaktiyle üniversitedeki diferansiyel denklemler dersi hocamızın anlattığı bir efsane vardı (Sene 94 bu arada). Ne kadar gerçektir bilinmez ama beni oldukça etkilemişti. Hikayeye göre üniversite hocaları arasında belirli aralıklarla düzenlenen bir yarışma varmış. Bu yarışmada hocaların tahtaya kalkıp seçtikleri teoremlere ait geometrik şekilleri çizmeleri istenirmiş. En güzel çizim ise mükafatlandırılırmış.

  • Decimal to Binary to Hexadecimal

    Bundan bir kaç sene önce ünlü matematikçi Fermat’ nın son teoreminin nasıl ispat edildiğinin anlatıldığı bir kitabı okumuştum. 1670 yılında ortaya çıkan ve Fermat tarafından o zaman ispat edildiği öne sürülen ama bildiğim kadarı ile kanıt bulunamayan teorem ancak 1995 yılında Andrew Wiles tarafından kanıtlanabilmiştir.

  • Entity Framework - Generic Repository ve Unit of Work Uyarlaması

    Yazılım dünyasında var olan mimari prensipler veya tasarım kalıpları tek başlarına belirli sorunları çözseler de, bazı kurumsal projelerde mutlak suretle bir arada düşünülmeleri gerekir. Söz gelimi Repository ve Unit of Work kalıpları, özellikle Domain Driven Design odaklı yapılarda bir arada değerlendirilmesi gerekenlerdendir.

  • WCF–Custom AuthenticationService

    Bazen bir yola baş koyarız ama o kadar uzundur ki git git bitmek bilmez. Yolda bin bir türlü zorluğu aşmak zorunda kalırız. Hatta hangi zorluklarla karşılacağımızı da bilemeyebiliriz. Yolun uzunluğuna, karşılaşılan zorluklara bağlı olarak ya geri döneriz ya başka bir yola saparız ya da inat edip sonuna kadar gitmeye çalışırız. Mücadelinin sonunda yolun sonuna varmak da yeterli olmayabilir.