Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
İleri C# ve Design Patterns ( Dizayn Paternleri )
#1
Wink 
Öncelikle herkese hayırlı ramazanlar ,

Epey bir süredir forumda aktif değilim , çeşitli sağlık problemlerinden dolayı ne video ( Age of Empires tarzı strateji oyun serisi devamını) ne de yazı paylaşabildim.Yavaş yavaş bu eksikliği gidermek adına tekrardan yazı başta olmak üzere çeşitli paylaşımlara başlayacağım.

Bu konuda C# için ileri derecede programlama bilgisine sahip olmak isteyenlere hem bir yol göstermek maksadıyla hemde oyun performansı açısından bir kod standardı yakalayabilmeniz adına bir takım konulardan bahsedeceğim.Bunu bir rehber niteliğinde düşünebilirsiniz . Bu rehberden faydalanabilmeniz için öncelikle temel olarak C# öğrenmeniz ve ardından nesne yönelimli bir programlama dili olduğunu bilerek sınıf ( class ) , nesne ( object )  , fonksiyon ( function )ve yapı ( struct ) gibi kavramlara hakim olmanız beklenmektedir.Bu kavramları ve diğer nesne yönelimi için geliştirilmiş kavramları bildiğinizde hem daha anlamlı hemde daha iyi performans veren kodlar yazacağınızı kesinlikle söyleyebilirim . "Peki bunun Unity ile ne ilişkisi var ?" diye bir soru sorabilirsiniz . Unity oyun motoru temelde ;

- Unity Engine
- Unity Editor 

adında iki ana sınıftan türer.Bu iki ana sınıfta çeşitli fonksiyonlar , sınıflar , özellikler ve yapılar barındırır.Bunların ilişkilerini anlayabilmek için nesne yönelimini bilmek ve bahsettiğim kavramları anlayabiliyor , ne amaçla varolduklarını muhakeme edebilmiş olmak gerekiyor.Unity'nin kendi scripting reference ' ı bu ilişkileri anlayabilmek ; fonksiyonların ve sınıfların kullanımlarını açıklıyabilmek için oluşturulmuş bir klavuzdur.Buradaki ilişkileri ve kullanımları anlayan bir kişinin aklındaki herhangi bir fikri icra etmede problem yaşaması söz konusu değildir.

Gelelim bir tık yukarıya ...

Design Patterns ( dizayn paternleri ,tasarım örüntüleri ) : Patern kavramı [1. yapılacak herhangi bir şey için model , örnek, 2. izlenecek misal , izlenecek örnek ] anlamlarına gelmektedir.Esasen paternler kullanılarak , sorunlar herkes tarafından bilinen standart yöntemlerle daha kolay biçimde çözümlenir.Tipik bir sorunla karşılaşıldığında ( mesela genelde verilen örnek ,  aynı sınıfa ait bir nesnenin hep aynı referansı kullanarak sadece bir kez yapılmak istenmesi )bunu uygun olan modeli -önceden çözümlenmiş yöntemle- kullanarak çözebilir.Bu şekilde Amerikayı yeniden keşfedip , tekerleği tekrardan bulmayız. Mesela az evvel verdiğimiz tipik sorun için çözüm modellenmiş ve buna Singleton denmiştir.  Design patternleri oldukça geniş bir konudur ve bunları kategorize etme ihtiyacı duyulmuş.Dolayısıyla GoF ( Gang of four ) Paternleri[1994 yılında , Gang of Four (dörtlü çete) olarak tanınan "Erich Gamma", "Richard Helm", "Ralph Johnson" ve "John Vlissides" isimli yazarlar "Design Patterns: Elements of Reusable Object-Oriented Software" adlı kitabı yazdılar ve bu en yaygın olarak kullanılan 23 deseni en çok kullanılan isimleriyle bu kitapta topladılar] , Refactoring Paternleri , MVC , Observer gibi gruplamalar meydana gelmiş oldu.Bu gruplamaya Pattern Kümeleri ( Cluster'ları ) denir ayrıca . Yukarıdaki tipik sorunu gerçekleyip Unity için bir örnek vermemiz gerekirse . Oyunun UI larını scriptle  oluşturuyorsak , her seferinde ayrı bir ui oluşturamayacağımıza göre ui nesnesini bir kere oluştururuz ve bu oluşum olmadan önce içereceği butonları veya diğer özellikleri belirleriz.Bu şekilde temeldeki bir ui 'yı instantiate ederken veya ( instance oluştururken ) defalarca farklı obje oluşturmak yerine bir gerek instance ederiz her tıklamadan ve panelin içereceği butonları resimleri özellik olarak ekleriz.

yazının devamında idiom ve anti-patternlerden bahsedeceğiz.
|| Az olan çoğun ispatıdır ||
  Cevapla
#2
İşte insanlara lazım olan asıl paylaşımlar Smile
eline sağlık kardeşim
Bugün, hayal ettiğin gelecek için bir adım attın mı?

  Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi