23 puan yazan alstjr7375 2021-12-14 | 6 yorum | WhatsApp'ta paylaş
  • Sınıf ile prototip arasındaki en büyük fark, nesne oluşturma biçimidir [sınıf -> örnek vs nesne -> kopyalanmış nesne].

  • En büyük ortak nokta, nesne yönelimli olmaları ve programı nesne adı verilen birimlere bölüp bunların etkileşmesini sağlamalarıdır.

  • Nesne yöneliminin çekirdeği olan kapsüllemeyi iyi yapmanın en basit yolu, soyutlamayı iyi yapmaktır.

    • Soyutlama; veri ağırlıklı nitelikler (klasik OOP), biçim (tip), durum (veri odaklı tasarım) ile ilişki merkezli zaman (prosedürel), davranış (fonksiyonel), tanım (mantıksal), durum/bağlam (alan odaklı tasarım, AOP) olarak düşünülebilir.

    • İyi sınıflandırmak ve tasarlamak için, düşünme biçimlerini fark etmeyi sağlayan çeşitli kategorileri anlamak faydalıdır [örn.) Kant'ın 4 grup 12 kategorisi].

  • Felsefe ve paradigmalar

    • Prosedürel: Zaman çoğu soyutlamayı etkiler ve Goto gibi bağlamların karışmasına neden olan sözdizimleri iyi değildir.

    • Fonksiyonel: Davranışı bir biçim olarak ifade etmeye çalıştığı için tip (biçim) ile derin bir ilişkisi vardır.

    • Mantıksal: Mantığı olgular ve kurallarla kurar; sorgu yaparak yüklem mantığının sonucunu elde edebilirsiniz.

    • Geleneksel OOP: Sezgiseldir. Ancak kusursuz nitelikleri tamamen ortaya çıkarmak imkansızdır.

    • Veri odaklı tasarım: Mantığın durumunu ele almaya çalışan fonksiyonel yaklaşımın aksine, bilgisayarın kendi içindeki durumu azaltmaya çalışır. Cache hit oranını yükselterek performans artışı sağlar.

    • Alan odaklı tasarım: Geleneksel OOP'den farklı olarak alan ve bağlama göre farklı tasarım yapılır (resim teorisi-kullanım anlambilimine benzer); alt alanlara dependency injection yapan AOP kullanılırsa uygulama daha kolay hale gelir.

  • MVP

    • Prototip üretimi: Önemli işlevleri içermelidir ve tasarımcı, geliştirici, finans gibi bakış açılarına göre değişebilir. Birçok kişinin önemli gördüğü ürün benzerliğine göre tipik bir gereksinimdir.

    • MVP: Asgari düzeyde tamamlanmışlık güvencesiyle kullanılabilir olmalı ve son aşamada hedeflenen ürüne benzer şekilde tasarlanmalıdır.

  • Nesne yönelimi ve varlık

    • Platon: Evrensel niteliklerin değişmez, gerçek ve var olduğunu; tekil varlıkların ise evrensel özelliklerden yoksun halde var olduğunu savunur.

    • Aristoteles: Yalnızca tekil varlıkların temel töz olduğunu, tümellerin ise üst-alt/kapsama ilişkilerinde ortaya çıkan temsiller olduğunu savunur.

    • Sınıf-örnek, Platon'un idealar kuramına; prototip-kopyalanmış nesne ise Aristoteles'in töz anlayışına benzer.

Başta yazmak istediğim ana hedefler şunlardı:

  • Geleneksel OOP, resim teorisine; alan odaklı tasarım ise kullanım anlambilimine benzer.

  • Sınıf-örnek, Platon'un idealar kuramına; prototip-kopyalanmış nesne ise Aristoteles'in töz anlayışına benzer.

Bunlar ikisiydi ama düşündüğümden çok daha uzun oldu.

Hiç arka plan bilgisi yoksa biraz zor gelebilir.

6 yorum

 
alstjr7375 2021-12-14

JavaScript neden prototipi seçti?

https://tr.news.hada.io/topic?id=5532

Buna bakarken aklıma geldiği için yazdığım bir yazı.

 
laeyoung 2021-12-14

Bu yazıyla karşılaştırarak bir kez okuyalım!

 
alstjr7375 2021-12-14

Teşekkür ederim!!

 
alstjr7375 2021-12-14

Ha? Birden fazla boşluk eklemek olmuyor galiba :(

 
xguru 2021-12-14

Ah, kasıtlı olarak yer kaplayan bazı durumlar olabiliyor..

Bu yüzden boş satırları ve birden fazla boşluğu azaltacak şekilde ayarladım üzgünüm

 
alstjr7375 2021-12-14

Anladım.

Bir dahaki sefere paylaşırken bunu dikkate almam gerekecek.