← Back to list

Bazı Yazılım Terimleri -2

Bu yazımda yazılımlarda kullanılan terimlerden bahsetmeye devam ediyorum.

Taner Özer · 2026-04-05 08:11 · 0 claps · 4.4 min read
#authentication #authorization #middleware #group-by #yazilimterimleri
Open on Medium ↗
Wiki topics: LIT · Literature & Writing 🛠️ · Crafts & DIY

Bazı Yazılım Terimleri -2

Bu yazımda yazılımlarda kullanılan terimlerden bahsetmeye devam ediyorum.

Authentication ve Authorization nedir? Authentication (Kimlik Doğrulama) ve Authorization (Yetkilendirme), güvenlik ve erişim kontrolü kavramlarıdır ve genellikle bilgi sistemlerinde kullanılırlar.

Authentication (Kimlik Doğrulama): Authentication, kullanıcıların veya sistemlerin kimliklerini doğrulama sürecidir. Kullanıcıların gerçekten kim olduklarını kanıtlamalarını sağlar. Bu genellikle kullanıcı adı ve parola kombinasyonu, biyometrik veriler (parmak izi, yüz tanıma vb.) veya diğer kimlik doğrulama yöntemleriyle gerçekleştirilir. Kimlik doğrulama, sistemlere giriş yapmak için gereklidir ve kullanıcıların yalnızca kendi hesaplarına erişmelerini sağlar.

Authorization (Yetkilendirme): Authorization, kimlik doğrulamasının ardından kullanıcıların veya sistemlerin belirli kaynaklara (dosyalar, veritabanları, hizmetler vb.) erişim yetkisinin verilip verilmeyeceğini belirleyen süreçtir. Yetkilendirme, kimlik doğrulandıktan sonra bile kullanıcıların yalnızca belirli işlevlere veya kaynaklara erişmelerine izin verilmesini kontrol eder. Örneğin, bir kullanıcının yalnızca okuma izni olduğu bir dosyayı düzenlemeye çalıştığında yetkilendirme işlemi devreye girer.

Kısacası, authentication kimlik doğrulamayı ifade ederken, authorization belirli kaynaklara veya işlevlere erişim yetkisinin kontrolünü sağlar. Bu iki kavram, sistemlerin güvenliği ve gizliliği için önemlidir ve yetkisiz erişimi engellemek amacıyla kullanılırlar.

Middleware yapısı nedir? Middleware, yazılım geliştirme ve uygulama mimarisinde sıkça kullanılan bir yapıdır. Özellikle web uygulamalarında, istemci ve sunucu arasında verilerin işlenmesi ve iletilmesi aşamalarında kullanılan ara katmandır.

Middleware, gelen isteklerin ve giden yanıtların işlenmesini sağlayan, uygulama kodu ile sunucu arasına eklenen araçlardan oluşur. Bu katman, genellikle işlemleri otomatize etmek, güvenlik önlemleri uygulamak, isteği değiştirmek veya yanıtları filtrelemek gibi görevleri yerine getirir.

Örneğin, bir web uygulamasında authentication (kimlik doğrulama) ve authorization (yetkilendirme) işlemleri middleware ile yapılabilir. Ayrıca, gelen isteklerin günlük dosyalarına kaydedilmesi, veri sıkıştırma, dil çevirileri gibi işlemler de middleware kullanılarak gerçekleştirilebilir.

Middleware, kodun tekrar tekrar yazılmasını önler, kodun daha düzenli ve modüler olmasını sağlar, güvenlik ve performans önlemleri uygulamayı kolaylaştırır ve uygulamanın genel işleyişini yönetmek için kullanılır.

Web API (Web Application Programming Interface) Web API (Web Application Programming Interface), web tabanlı uygulamalar arasında veri ve işlevsellik paylaşımını sağlayan bir programlama arabirimidir. İstemciler (örneğin web tarayıcıları veya mobil uygulamalar), HTTP protokolü üzerinden sunucudaki kaynaklara erişip etkileşimde bulunabilir. Veri formatları genellikle JSON veya XML kullanılır. Web API’lar, farklı uygulama ve sistemler arasındaki entegrasyonu kolaylaştırır.

ORM (Object-Relational Mapping): Nesne tabanlı programlama ile ilişkisel veritabanları arasındaki köprüdür. Örnek olarak Entity Framework, Hibernate.

CI/CD (Continuous Integration/Continuous Deployment): Yazılım geliştirme sürecini otomatikleştiren ve hızlandıran yöntemlerdir.

REST (Representational State Transfer): Dağıtık sistemler arasında iletişimi sağlayan mimaridir.

JSON (JavaScript Object Notation): Veri alışverişi için kullanılan hafif bir veri değişim formatıdır.

SOAP (Simple Object Access Protocol): İnternet üzerinden uygulamalar arası iletişimi sağlayan protokoldür.

JWT (JSON Web Token): Kimlik doğrulaması için kullanılan ve JSON verisini içeren bir token sistemidir.

API (Application Programming Interface): Yazılım bileşenlerinin nasıl etkileşimde bulunacağını belirleyen arayüzlerdir.

MVVM (Model-View-ViewModel): MVC’ye benzer, ancak özellikle kullanıcı arayüzü tasarımını ve iş mantığını daha iyi ayırma amacıyla kullanılan bir tasarım desenidir.

GROUP BY Niçin Kullanılır? GROUP BY, SQL sorgularında veritabanında bulunan verileri belirli bir sütuna göre gruplamak ve bu gruplar üzerinde agregasyon (toplulaştırma) işlemleri yapmak için kullanılır.

GROUP BY ifadesinin kullanılmasının ana nedeni, verileri belli bir kritere göre gruplayarak istatistiksel veya analitik işlemler gerçekleştirmektir. Bu sayede veriler daha anlamlı ve yönetilebilir hale gelir.

Örneğin, bir işletmenin satışlarını içeren bir tabloyu ele alalım. Bu tabloda her satış işlemi bir satır olarak temsil edilir. Eğer toplam satışları bir yıl boyunca aylara göre gruplayarak toplam satış miktarını hesaplamak isterseniz GROUP BY kullanabilirsiniz.

Aşağıda bir örnek SQL sorgusu bulunmaktadır:

SELECT YEAR(satis_tarihi) AS yil, MONTH(satis_tarihi) AS ay, SUM(satis_miktari) AS toplam_satis
FROM satislar
GROUP BY yil, ay
ORDER BY yil, ay;

Bu sorgu, “satislar” tablosundaki verileri yıl ve ayına göre gruplar ve her gruptaki satış miktarını toplar. Böylece her yılın her ayı için toplam satış miktarını elde edebilirsiniz.

GROUP BY, genellikle veri analizi, raporlama ve istatistiksel hesaplamalar gibi durumlar için kullanılır.

Debugging (Hata Ayıklama): Yazılım geliştirme sırasında ortaya çıkan hataları bulma, anlama ve düzeltme süreci.

Deployment (Dağıtım): Yazılımın geliştirme aşamasından son kullanıcıya ulaşana kadar olan süreci ifade eder. Bu aşamada yazılım sistemleri sunuculara yüklenir ve kullanılabilir hale getirilir.

Database (Veritabanı): Verilerin yapılandırılmış bir şekilde saklandığı bir depolama alanıdır. Verilerin saklanması, yönetilmesi ve erişilmesi amacıyla kullanılır.

Version Control (Sürüm Kontrolü): Yazılım projelerinin kaynak kodunun yönetildiği sistem. Değişiklikleri takip etmek ve işbirliği yapmak için kullanılır.

OOP (Object-Oriented Programming), yani Nesne Yönelimli Programlama, yazılım dünyasını fonksiyonlar ve komutlar dizisi olarak değil, “nesneler” ve “veriler” üzerinden kurgulayan bir programlama yaklaşımıdır.

1. OOP Nedir? (Gerçek Dünya Simülasyonu)

OOP’yi anlamanın en kolay yolu gerçek dünyaya bakmaktır. Bir Araba bir nesnedir.

  • Özellikleri (Fields/Attributes): Rengi, markası, hızı, yakıt türü.
  • Davranışları (Methods): Çalışma, hızlanma, fren yapma.

Yazılımda bir “Araba” sınıfı oluşturduğumuzda, bu sınıftan üretilen her bir araç (BMW, Audi, Tofaş) birer nesne (object) olur.

2. OOP’nin 4 Temel Prensibi

OOP’yi güçlü kılan ve yazılımın sürdürülebilir olmasını sağlayan 4 ana sütun vardır:

A. Encapsulation (Kapsülleme / Veri Gizleme)

Bir nesnenin bazı özelliklerini dış dünyadan gizlemek ve onlara sadece belirli yöntemlerle erişilmesini sağlamaktır.

  • Neden? Verinin yanlışlıkla veya kötü niyetle değiştirilmesini engellemek için.
  • Örnek: Banka hesabınızdaki “Bakiye” değişkenine dışarıdan kimse doğrudan bakiye = 1000000 yazarak müdahale edemez. Sadece ParaYatir() metodu üzerinden işlem yapabilir.

B. Inheritance (Kalıtım / Miras Alma)

Bir sınıfın özelliklerini ve metodlarını başka bir sınıfa devretmesidir. Kod tekrarını önler.

  • Örnek: “Hayvan” genel bir sınıftır (nefes alır, yemek yer). “Kedi” ve “Köpek” sınıfları, Hayvan sınıfından miras alır. Böylece her iki sınıfa da tekrar tekrar “nefes al” kodu yazmanıza gerek kalmaz.

C. Polymorphism (Çok Biçimlilik)

Aynı isimdeki bir metodun farklı nesnelerde farklı davranabilmesidir.

  • Örnek: Hem “Kedi” hem “Köpek” nesnesinin sesCikar() metodu olsun. Kedi bu metodu çağırdığında "Miyav", köpek çağırdığında ise "Hav" der. Metot adı aynıdır ama çıktı farklıdır.

D. Abstraction (Soyutlama)

Karmaşık detayları gizleyip sadece gerekli olan kısımları kullanıcıya sunmaktır.

  • Örnek: Bir arabayı kullanırken motorun içindeki pistonların nasıl hareket ettiğini bilmenize gerek yoktur. Sizin için önemli olan direksiyon, gaz ve fren pedalıdır. Yazılımda da sadece kullanıcıyı ilgilendiren metotları dışarı açarız.

3. OOP’nin Avantajları

  • Kodun Yeniden Kullanılabilirliği: Bir kez yaz, her yerde kullan.
  • Bakım Kolaylığı: Bir hata olduğunda tüm projeyi değil, sadece ilgili sınıfı güncellersiniz.
  • Ekip Çalışması: Büyük projeler nesnelere bölünerek farklı kişiler tarafından aynı anda geliştirilebilir.

OOP Örneğin;

// 1. ABSTRACTION (Soyutlama)
// Kullanıcı sadece sesCikar() metodu olduğunu bilir, iç detayla ilgilenmez.
abstract class Hayvan {
    private String isim; // 2. ENCAPSULATION (Kapsülleme) - Dışarıdan doğrudan erişilemez.

    public Hayvan(String isim) {
        this.isim = isim;
    }

    // Getter metodu (Kapsüllenmiş veriye güvenli erişim)
    public String getIsim() {
        return isim;
    }

    // Soyut metot: Her hayvan ses çıkarır ama sesi farklıdır.
    public abstract void sesCikar();
}

// 3. INHERITANCE (Kalıtım)
// Köpek sınıfı, Hayvan sınıfının özelliklerini miras alır.
class Kopek extends Hayvan {
    public Kopek(String isim) {
        super(isim);
    }

    // 4. POLYMORPHISM (Çok Biçimlilik)
    // sesCikar metodu Köpek için "Hav Hav" şeklinde yeniden tanımlanır.
    @Override
    public void sesCikar() {
        System.out.println(getIsim() + " diyor ki: Hav Hav!");
    }
}

class Kedi extends Hayvan {
    public Kopek(String isim) {
        super(isim);
    }

    @Override
    public void sesCikar() {
        System.out.println(getIsim() + " diyor ki: Miyav!");
    }
}

// TEST ALANI
public class Main {
    public static void main(String[] args) {
        Hayvan benimKopegim = new Kopek("Karabaş");
        Hayvan benimKedim = new Kedi("Pamuk");

        benimKopegim.sesCikar(); // Karabaş diyor ki: Hav Hav!
        benimKedim.sesCikar();   // Pamuk diyor ki: Miyav!
    }
}

Buraya kadar okuduğunuz için teşekkürler :)

dxtaner (Taner Özer) https://medium.com/@dxtaner Taner Özer | LinkedIn


메타데이터
post_id
2fcccbbec6d
slug
bazı-yazılım-terimleri-2-2fcccbbec6d
url
https://medium.com/@dxtaner/baz%C4%B1-yaz%C4%B1l%C4%B1m-terimleri-2-2fcccbbec6d
canonical_url
https://medium.com/@dxtaner/baz%C4%B1-yaz%C4%B1l%C4%B1m-terimleri-2-2fcccbbec6d
author_url
https://medium.com/@dxtaner
status
ok
fetched_at
2026-06-18 00:10:23