Yazılımın anlaşılır, yeniden kullanılabilir, esnek olmasını ve kod tekrarını da önlememizi sağlayan prensiplerdir. Geliştirdiğimiz yazılım ile ilgili, veya bir başkasının geliştirdiği bir yazılım ile ilgili ilerleyen zamanlarda bir güncelleştirme yapmamız gerektiğinde karmaşık kod yapısında zorlanabiliriz işte bu noktada SOLID prensipleri ile yazılmış bir projede işlerimiz daha da kolaylaşıyor. Ayrıca geliştirdiğimiz kodun esnek ve geliştirilebilir şekilde…
Yazar: Serhat
Node.JS Kullanımı — 1
Javascript dili önceden sadece istemci tarafında çalışıyordu. Chrome V8 Engine’in çıkmasıyla beraber artık sunucu tarafında da Javascript kullanabiliyoruz. Javascript’i sunucu tarafında kullanmamızı sağlayan Chrome V8 Engine’e Node.js diyebiliriz. Burada en önemli nokta Node.js asenkron olarak çalışmaktadır. Bu da onu kullanışlı ve hızlı yapmakla birlikte popüler hale getirmiştir. Node.js bir çok platform üzerinde de kullanılabilir (Windows,Linux,Unix,Mac…
C# Enum Kullanımı
Bu konuyu örnek üzerinden giderek konuşmak daha mantıklı olacaktır. O nedenle bir örnekle başlayacağım. Mesela küçük çaplı projelerde karşılaştırma için 0 için bunu, 1 için bunu veya 2 için şunu yap tarzında algoritmalar geliştiriyorduk. Ancak bunu büyük çaplı projelerde yaparsak kod karmaşasına neden olabilir. Bu nedenle Enum(enumeration) yapısını kullanarak numaralandırma yapıyoruz. Enum sabit değerler kullanırsak fayda sağlar….
C# Stack ve Heap Kavramı
C# iki veri tipi içerir. Bunlar Değer Tipleri ve Referans Tipleri olarak isimlendilrilir. Bu veri tiplerini birbirinden ayıran özellik bellekte tutulma şekilleridir. C# belleği iki ayrı bölge olarak kullanır. Bunlardan biri Stack diğeri Heap’dir. Stack Heap’den daha hızlıdır. İlk olarak veri tiplerini göstererek başlamak istiyorum. Değer Tipleri: “int”, “long”, “float”, “double”, “decimal”, “char”, “bool”, “byte”, “short”, “struct”, “enum”Referans Tipleri: “string”, “object”, “class”, “interface”,…
C# Partial Class ve Sealed Class
Partial (Kısmi) Class C# programlama dilinin önemli bir özelliğidir. Partial class bize tek bir sınıfın fonksiyonelliğini birden fazla sınıfa uygulama imkanı sunar. Tüm bu partial classes (kısmi sınıflar) uygulama derlendiğinde (compiling) tek bir sınıf olarak birleşirler. Partial class kullanımı için partial keyword kullanılır. Bu keyword aynı zamanda metotların, arayüzlerin(interface) veya structure yapılarının fonksiyonelliğini bölerek uygulama imkanı da…
C# Nested Class (İç İçe Sınıflar)
Sınıflar alan(field),özellik(property) ve metot(method) yapılarından oluşan ve türetildiğinde anlamlı hale gelen yapılardır. Sınıf tanımları için daha detaylı bilgiyi önceki yazılarda yazmaya çalışmıştım. Şimdi ise iç içe sınıflar üzerinde duralım. C# bir sınıfın içerisinde farklı bir sınıf tanımlamaya izin verir. Bu sınıflar nested class (iç içe sınıf) olarak tanımlanır. İç içe sınıflar, sınıfların mantıksal olarak gruplanmasını…
C# Abstraction (Soyutlama)
Abstraction (Soyutlama) detayları saklama ve sadece gösterilmesi istenen bilgileri kullanıcıya göstermek amacıyla kullanılır. Abstraction(Soyutlama) hem Abstract class(soyutlama sınıfları) ile hem de interfaces (arayüzler) ile yapılır. Abstrat keyword sınıflar ve metotlar için kullanılır. Abstract Class : Abstract class’lardan instance object (örnek nesne) oluşturulamaz. Abstract class’a ulaşmak için başka bir sınıftan kalıtım alınması gerekir. Abstract Method : Sadece abstract class…
C# Polymorphism (Çok Biçimlilik)
Polymorphism bir sınıfa aynı isimde farklı uygulamalar yapabilme özelliği sağlar. Tanım olarak tam anlaşılamasa da örneklerle çok daha iyi şekilde anlaşılacaktır. 2 tür polimorphism (çok biçimlilik) vardır; Compile Time Polymorphism (Derleme Zamanı Çok Biçimlilik) Runtime Polymorphism (Çalışma Zamanı Çok Biçimlilik) Compile Time Polymorphism Metot aşırı yükleme (overloading) bir compile time polymorphism örneğidir. Overloading aynı isme…
C# Sınıf(Class) ve Nesne(Object)
Bu iki başlık için ilk olarak söylememiz gereken şey, her nesne bir sınıftan türetilerek oluşur. Sıkça kullandığımız nesneler sınıflardan türetilerek oluşturulur. Yukarıda genel olarak kullandığımız yapı bulunuyor. Bazı sınıflardan nesne türetilirken parametre yollamamız gerekebiliyor. Aşağıda buna değineceğim. Burada Employee sınıfından türettiğimiz personalDetail nesnesine bir parametre ekledik. Bunu karşılamak için sınıf içerisinde kurucu metot oluştururuz. Şimdi buna değinelim, Kurucu Metotlar…
C# Kalıtım (Inheritance)
Kalıtım OOP(Object Oriented Programming)’nin önemli bir parçasıdır. Bu mekanizma bir sınıftan diğerine alan(field) ve metotları miras olarak aktarmak için kullanılır. Önemli terminolojiler ; Super Class (Süper Sınıf) : Metotları ve alanları(fields) başka bir sınıfa miras bırakan veya aktaran sınıflar olarak tanımlarız. (Base Class veya Parent Class olarak ta isimlendirilir.) Sub Class (Alt Sınıf): Diğer bir sınıftan metotları…