Odak modu
Artık nesne yönelimli programlamanın temellerini ve bunların nasıl uygulandığını anladığınıza göre, bunları yepyeni bir projede uygulamaya hazırsınız. Bu aynı zamanda bir versiyon kontrol deposunda dallanma ve birleştirme alıştırması yapmak için iyi bir fırsattır.
Adım 1 Bu görev güncellendi! Bu görevi, siz bakmıyorken yenilememiz durumunda, lütfen bu sunumu denemeden önce aşağıdaki içeriği tamamladığınızdan emin olun:
Önceki eğitimlerde, nesne yönelimli programlamanın dört sütununu ve bunların nasıl uygulandığını öğrendiniz:
Bu sunum görevinde, koddaki bu sütunların her birini gösteren sıfırdan yeni bir proje yaratacaksınız.
Kodlamaya başlamadan önce programınızın mimarisini yüksek dikkatle planlayın. Bu arada, versiyon kontrol yazılımını kullanarak dallandırma ve birleştirme kodu alıştırması yapma fırsatınız olacak.
Bu challenge kolay olmayacak, ancak tamamladığınızda daha düşünceli, stratejik bir programcı olacaksınız!
Başarılı bir sunum şunları içerecektir:
Teorik programlama yapılarına fazla karışmadan önce, projenizin versiyon kontrolü için doğru şekilde kurulduğundan emin olun.
Alt text: GitHub Masaüstünden Ad “Programming-Theory-Repo” olarak ayarlanmış ve Git Ignore açılır menüsü Unity olarak ayarlanmış yeni bir Depo penceresi oluşturun.
Alt text: Özet "initial commit" olarak ayarlanmış ve Açıklama "empty 3d project on Unity 2020LTS " olarak ayarlanmış Github Desktop'ın commit paneli
Artık yeni bir versiyon kontrol deposunda yedeklenmiş boş bir Unity projeniz olmalıdır.
Yukarıdaki görevlerden herhangi birinin nasıl yapılacağına dair bir hatırlatıcıya ihtiyacınız varsa, önceki sunumdaki adımlar( steps in the previous submission ) daha ayrıntılı.
Projeniz ve deponuz kullanıma hazır olduğunda, projeniz için nesne yönelimli programlamanın dört sütununu göstermenize izin verecek bir konsept bulmak için biraz zaman ayırın.
Bu projenin gerçek bir tam teşekküllü projeden ziyade bir prototip olabileceğini unutmayın. İlkel şekiller kullanabilir veya hatta tamamen metin tabanlı olabilir. Boş bir tuvalle de başlamanız gerekmez – Code ile Ekleyi tamamladıysanız, prototiplerden veya zorluklardan birindeki varlıkları yeniden kullanabilirsiniz. Amaç, sıfırdan görsel bir şaheser yaratmak değil - sadece OOP sütunlarını: soyutlama, kapsülleme, kalıtım ve çok biçimlilik. gösteren yaratıcı bir şey bulmaktır.
Alt text: Soyutlama, Kapsülleme, Kalıtım ve Polimorfizm ile soldan sağa etiketlenmiş, arka arkaya dört sütunun görüntüsü.
Konseptinizi geliştirirken, fikirlerinizi bir tasarım belgesinde veya proje özetinde özetleyin ve izleyin. Kod ile Ekleyi tamamladıysanız, Kişisel Proje laboratuvarlarınızda kullandığınız şablondan ilham alın( Personal Project labs. ). Az önce üzerinde çalıştığınız Kaynak Yönetimi projesinin tasarım özetinden de yararlanabilirsiniz( design brief ). Belgeniz madde işaretli bir taslak, eskizler, diyagramlar içerebilir - fikirlerinizi düzenlemenize ve yinelemenize en iyi ne izin verirse.
Tabii ki, normal proje geliştirme sürecinde, proje özelliklerinizi asla programlama kavramlarını gösterme ihtiyacına dayandıramazsınız! Tersi olurdu: programlama kavramlarına duyulan ihtiyaç proje özellikleri tarafından yönlendirilir. Ancak, öncelikleri tersine çevirmek eğlenceli bir tasarım mücadelesi sunuyor! Bu dört programlama konseptini kullanan bir projeyi nasıl tasarlayabilirsiniz? Sütunları aşağıdaki sırayla düşünmek en yararlı olabilir:
Kalıtım – nesnelerinizi seçin
Beyin fırtınanıza başlamak için, davranışları daha genel bir nesneden türeten hangi nesneler düşünebilirsiniz? Diğer nesnelerin alt türleri olan hangi nesneleri düşünebilirsiniz? Örneğin:
Bunlar, kodunuzda kalıtımla uygulayabileceğiniz parent/child ilişkilerinin yalnızca birkaç örneğidir. Bu sütun hakkında daha fazla ayrıntı için devralma eğitimini inceleyin ( inheritance tutorial ).
Tasarım belgenizde veya proje özetinizde: Proje konseptiniz için başlangıç noktası olarak hizmet etmek istediğiniz nesneleri not edin.
Polymorphism - davranışlarınızı seçin
Projeniz için kullanabileceğiniz nesnelerin türlerine ve alt türlerine karar verdikten sonra, bu nesnelerin programınızda gerçekleştirebileceği davranış türlerini ve bu davranışların nesne alt türüne bağlı olarak nasıl "değişebileceğini" düşünün. Örneğin:
Bildiğiniz gibi polimorfizm aynı adı taşıyan methodların farklı parametre tipleriyle aşırı yüklenilerek birçok forma sahip olması (“poly” + ”morflar”) anlamına da gelir. Bu methodlardan birinin alabileceği farklı parametre girişlerini de düşünebilirsiniz. Örneğin, bir Jump() işlevi, atlamanın maksimum yüksekliğini [Jump(float maxHeight)] veya ona uygulanan kuvveti [Jump(Vector3 jumpForce)] alabilir.
Bu sütun hakkında daha fazla ayrıntı için polimorfizm eğitimini inceleyin.( polymorphism tutorial )
Tasarım belgenizde veya proje özetinizde: Uygulamanızda programlamak istediğiniz işlev veya davranış türlerini listeleyin.
Kapsülleme – verilerinizi seçin
Kapsülleme, bir sınıftaki verileri kötüye kullanılmaması ve uygulamanızı bozmaması için korumakla ilgilidir. Diğer sınıfların bunları almasına veya ayarlamasına izin verirken, hangi verileri bu şekilde korumak istediğinizi düşünün. Örneğin:
Bu sütunla ilgili daha fazla ayrıntı için kapsülleme eğitimini inceleyin( encapsulation tutorial ).
Tasarım belgenizde veya proje özetinizde: Projenizde kapsüllemek istediğiniz işlev veya veri türlerini kaydedin.
Soyutlama – Fonksiyonlarınızı ekleyin
Soyutlama, muhtemelen kodlamaya başladıktan sonra uygulanması en kolay kavram olacaktır, ancak başlamadan önce projenizde olmasını istediğiniz bazı üst düzey işlevleri düşünmek faydalı olabilir. Örneğin:
Bu sütun hakkında daha fazla ayrıntı için soyutlama eğitimini inceleyin( abstraction tutorial ).
Tasarım belgenizde veya proje özetinizde: Kodunuzda yeniden kullanım için yararlı olabilecek bazı üst düzey işlevlere dikkat edin.
Şimdi projenizde neyi başarmak istediğinize dair bir fikriniz olmalı - hala çok kavramsal gelse bile - ve fikirlerinizi bir belgeye kaydetmelisiniz.
Projeniz için ne yapacağınız konusunda hala kendinizi kaybolmuş hissediyorsanız, işte size son derece basit bir proje fikri:
Özellikle birden fazla geliştiriciyle çalışırken, branchlar versiyon kontrolü için inanılmaz derecede faydalıdır. Geliştiriciler genellikle yeni bir özelliği uygulamaya başladıklarında yeni bir branch başlatırlar ve deney yaparken diğer geliştiricilerin koduna müdahale etmek istemezler.
Yeni özelliği uyguladıktan sonra branchı tekrar ana branchta birleştirecek ve ardından ortaya çıkan birleştirme çakışmalarıyla ilgileneceksiniz. Birleştirme çakışmalarının ne olduğunu hatırlamıyorsanız, Veersiyon kontrolünü ayarlama eğitimine( Set up version control ) geri dönebilirsiniz.
Bu işlemden kurtulmak için projenizin başlık ekranı için yeni bir branch oluşturun ve birleştirin. Uygulamanız bir başlık ekranı istemiyorsa, bunun yerine projenizin başka bir basit özelliğini kullanın.
Alt text: Ad alanındaki metin “title-screen” olarak ayarlanmış bir GitHub Masaüstü penceresi oluşturun.
Şimdi “Mevcut branch”ın yeni branchınıza ayarlandığını görmelisiniz.
Alt text: GitHub Desktop'taki mevcut branch açılır menüsü title-screen”.olarak ayarlandı “
Alt text: Bir kullanıcının adını girmesi için bir başlık ve bir metin alanı içeren örnek proje başlığı ekranının oyun görünümü. Çalışmanızı geliştirirken ve kaydederken, versiyon kontrol yazılımınızın Changes panelinde branchınıza yapılan tüm düzenlemeleri ve eklemeleri görmelisiniz.
Alt text: Özet "title-screen" ve Açıklama "added text title,added entry box for name" olarak ayarlanmış Github Desktop'ın Commit paneli. Değişiklikleriniz artık branchınıza bağlı ve ana branch ile birleştirilmeye hazır.
Başlık ekranınız (veya diğer özelliğiniz) tamamlandığında, artık deneysel branchınızı ana geliştirme branchıyla birleştirmeye hazırsınız.
Alt text: GitHub Desktop'ta ana dalın vurgulandığı mevcut dal açılır menüsü.
Ana şubeye geri döndükten sonra, Unity sahnenizdeki tüm değişikliklerin kaybolduğunu göreceksiniz. Endişelenmeyin, yeni özelliğinizi uygulamaya başlamadan önce projenizin durumuna geri döndüğünüz için bu beklenir. Özellik, büyük birleşmeden sonra projede yeniden görünecek.
Son commitinizden bu yana değişiklik yaptıysanız, şubede "Değişiklikleri bırak" mı yoksa ana şubeye "Değişiklikleri getir" arasında seçim yapmanız istenebilir. Bu, şubenizde henüz taahhüt edilmemiş değişiklikleriniz olduğu anlamına gelir. İptal edin, tüm değişikliklerin şubenizde yapıldığından emin olun ve ana şubeye tekrar geçmeyi deneyin.
Alt text: GitHub masaüstünde dalda değişiklikler olduğuna dair bir uyarı görüntüleyen ve kullanıcıya geçiş yapmadan önce değişiklikleri şubede bırakma veya değişiklikleri yeni şubeye getirme seçeneği sunan Branch değiştir penceresi.
Alt text: GitHub Desktop'ta " Choose a branch to merge into main" düğmesi vurgulanmış olarak mevcut şube açılır menüsü
Alt text: GitHub Desktop'ta, kullanıcının 1 commiti başlık ekranından ana branch ile birleştirmek istediğini onaylayan birleştirme penceresi. Pencerenin altındaki Birleştir düğmesi vurgulanır. Unity sahnenize döndüğünüzde, branchınızda yaptığınız değişikliklerin artık ana brancha yansıdığını göreceksiniz. Başarılı bir birleştirme için tebrikler!
Artık reponuzda daha rahat dallanma ve birleştirme yaptığınıza göre, projenizi bu teknikleri kullanarak geliştirmeye devam etmelisiniz.
Unutmayın, projeniz kodunuzda OOP'nin dört sütununun her birini göstermelidir, bu kolay bir başarı olmayacaktır. En az birkaç saat ayırmayı planlayın; bunların çoğu, büyük olasılıkla sorun giderme ve Google'da gezinme için harcanacaktır.
OOP'nin dört sütununu projenize uyguladıktan sonra, lütfen projenizi gönderin ve paylaşın! Yine de yapmadan önce, oyunu baştan sona test ettiğinizden emin olun - veya daha da iyisi, bir arkadaşınıza veya aile üyenize oyun testi yaptırın. Başarılı bir sunum şunları içerecektir:
Lütfen projenizin ekran görüntüsünü alın ya da bize yol gösteren bir ekran kaydı yapın, ardından yaptıklarınızı paylaşmak için buraya gönderin.
En az bir diğer içerik oluşturucunun gönderimi hakkında yorum yapmanızı önemle tavsiye ederiz. Meydan okumayı başarıyla tamamladılar mı? Projeyle ilgili neyi beğeniyorsunuz? Eklemeyi düşünebilecekleri harika bir yeni özellik ne olabilir?
Yazılım Kariyerinde İlerlemeni Hızlandıracak Programlar
Patika+ programlarımız ile 4-8 aylık yoğun yazılım kamplarına katıl, temel bilgilerden başlayarak kapsamlı bilgiler edin, yazılım kariyerine başla!
Yorum yapabilmek için derse kayıt olmalısın!