Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

Uygulama Veri Tasarımı (Ders 03) — Tim Corey ile Derinlemesine Bakış

[[academy-video-youtube({"vid": "I-lO-JhXrFQ", "start_time": "0", "title": "C# Uygulaması Baştan Başlangıca Ders 03 - Veri Tasarımı", "creator": "Tim Corey", "length": "32m 01s"})]]

"Baştan Sona C#" kursunun üçüncü dersinde, Tim Corey bizi veri tasarımının önemli adımından geçirir. Kullanıcı arabirimi oluşturmaya veya kod yazmaya başlamadan önce, uygulamanızın kullanacağı verinin yapısını tanımlamanız gerektiğini açıklar.

Bu makalede, Tim'in turnuva izleyici uygulaması için veri tasarımı yaklaşımını, videodaki açıklamaları ve örnekleri takip ederek araştıracağız. Tim'in videosunu kullanarak uygulama tasarımının daha derin bir analizini yapacağız, veri tasarımının neden önemli olduğunu ve tüm uygulamayı nasıl etkilediğini anlamak için.

Verinin Önceliği

Tim derse, uygulama için gereksinimlerin ve yapının zaten belirlendiğini hatırlatarak başlar. Artık gerçek veri yapısını oluşturma zamanı geldi. Bazı geliştiricilerin öncelikle kullanıcı arabirimini tasarlamayı tercih ettiğini, ancak en iyi başarının öncelikle veri tasarımı ile geldiğine inandığını belirtir.

Tim düşüncesini şu şekilde açıklar:

"Uygulamanız, veri olmadan hiçbir şeydir." Bir uygulamanın aslında veriyi görüntülemek, değiştirmek, değiştirmek ve kaydetmek için bir araç olduğunu netleştirir.

Daha sonra, bakış açısını kanıtlamak için örnekler veriyor. Hatta Microsoft Word gibi bir metin düzenleyicisinin bile aslında veri — metnin kendisi, biçimlendirme, boşluklar vb. etrafında inşa edildiğini gösterir. Tim, bunu daha da ileri götürerek oyunların bile veriye dayalı olduğunu gösteriyor. Örneğin bir satranç oyunu, sadece parçaların, pozisyonların ve hamlelerin topluluğudur — hepsi veri. Bir birinci şahıs nişancı oyunu da yoğun bir şekilde karakter pozisyonları, mermi hızı, vuruş tespiti, hasar değerleri ve zafer koşulları gibi verilere dayanır.

Sonuç net:

"Her şey verinin etrafında döner."

Bu nedenle, veri tasarımına öncelik veriyor çünkü veriyi bildiğinizde kullanıcı arabirimi oluşturmak daha kolay hale gelir. Aksi takdirde, yönlendirilmemiş boş bir sayfadan tasarıma başlıyorsunuz. Bu yaklaşım, visual suites, poster yapıcıları veya logo yapıcıları gibi araçlar üzerinde çalışan geliştiricilere ve tasarımcılara yardımcı olur, çünkü bu uygulamalar bile şablon, font ve görüntü elemanları oluşturmak için yapılandırılmış verilere dayanır.

Kodlamadan Önce Plan Yapma

Tim daha sonra tercih ettiği planlama yöntemini açıklar: Her şeyi kağıt üzerine veya bir beyaz tahtada çizer çünkü değiştirmek ve ayarlamak kolaydır.

Henüz Visual Studio'yu açmamanızı, planlamanın kod dışında gerçekleşmesi gerektiğini vurgular. Planlamayı not defterinde veya bir yasal bloknotta yapmanın önemli olduğunu, çünkü bir şeyleri kolayca çizip çıkartabileceğinizi ve kodda sıkışmadan değişiklikler yapabileceğinizi söyler.

Temizlenmiş tasarımını gösterir ve adım adım açıklar. İlk kuralı şu şekildedir:

"Sadece bir şey koyun."

En açık nesneyle başlar: Ekip.

Ekip Nesnesi Oluşturma

Tim, bir Ekibin neye ihtiyaç duyduğunu yazarak tasarıma başlar. İki ana özellik kimliği belirler:

1. Ekip Üyeleri

Bir ekibin insanlara ihtiyacı olduğunu not eder, bu yüzden bir insan listesi yazar:

"Bir ekibin içinde bireylerin olduğu bir takıma ihtiyacım olduğunu biliyorum."

Kişi nesnesini henüz inşa etmesine gerek olmadığını açıklar. Bunun yerine, önce Ekibe odaklanır ve daha sonra bir Kişi oluşturmak için bir not yazar. Bu, tasarımın odaklanmış kalmasını ve ana nesneyi kaybetmemesini sağlar.

2. Ekip İsmi

Ardından, Tim bir dize olarak takım ismini ekler.

Ekip sınıfının basit olduğunu ve sadece birkaç önemli özelliğe ihtiyacı olduğunu açıklar. Ekip adının "Tim Bob Maris Su Al" veya "Pingpong Turnuvası" gibi hatırlanabilir bir şey olması gerektiğini, bunun marka oluşturma ve tanımlama konularında nasıl yardımcı olduğunu, bir işin logo, marka veya şirket adı kullanacağı şekilde vurgu yapar.

Kişi Nesnesini Tasarlama

Ardından, Tim Kişi sınıfını tasarlar. İsimlerin ilk ve soyadlarına bölünmesinin önemini açıklar.

Neden ilk ve son adı ayırmak?

Tim bunun en iyi uygulama olduğunu ve kişiselleştirme konusunda yardımcı olduğunu, örneğin e-postalarda birine adıyla hitap etme gibi.

Ayrıca isim bölme sorunları hakkında uyarılarda bulunur:

  • "Van Wilder" "Wilder" değildir

  • "Mary Sue" "Mary" değildir

Bu yüzden, Tim, ilk ve son adların giriş aşamasında ayırılması gerektiğini, sonradan ayırma yapılmaması gerektiğini vurgular.

Diğer özellikler

Tim daha fazla alan ekler:

  • E-posta adresi (dize)

  • Cep telefonu numarası (dize)

Cep telefon numaralarının diziler olarak saklanması gerektiğini vurgular çünkü bunlar hesaplanıp manipüle edilecek sayılar değildir. Parantez ve tire gibi biçimlendirmeler içerebilirler.

Tim ayrıca "özellik" kelimesini kullandığını çünkü bunların C#'ta sınıf özellikleri haline geleceğini açıklar.

Turnuva Nesnesi

Tim daha sonra en önemli nesneyi tanıtır: Turnuva.

Turnuvanın verilen uygulama için merkezi veri merkezi olduğunu açıklar, çünkü bu bir turnuva izleyicidir.

Turnuva Özellikleri

Tim bir turnuvanın neye ihtiyaç duyduğunu listeler:

  1. Turnuva İsmi Gereksinimler arasında yer almasa da, birden fazla turnuvanın aynı anda var olabileceği için ekler. İsim, onları ayırt etmeye yardımcı olur.

  2. Giriş Ücreti Tim, giriş ücretinin yöneticinin takımlara giriş yaptıklarında ücret almasını sağladığını açıklar. Giriş ücretinin para olduğundan dolayı double yerine decimal olarak saklanması gerektiğini vurgular.

  3. Giriş Yapan Takımlar Turnuvaya katılan takımların listesi.

  4. Ödüller Sıfır veya daha fazla ödül içerebilecek bir liste.

  5. Turlar Bu kısım karmaşıktır. Tim, her turun eşleşmeleri içerdiğini açıklar, böylece yapı bir listeler listesi haline gelir:
    1. Tur: eşleşme listesi
    1. Tur: eşleşme listesi
    1. Tur: eşleşme listesi Bu nedenle, Turlar = Liste<List> olur

Tim, bu noktada Ödül ve Eşleşme nesnelerinin henüz oluşturulmadığını, ancak bunun sorun olmadığını çünkü daha sonra geliştirileceklerini belirtir.

Doğal Anahtarlar ve Eksik Veriler

Tim, planlamada bazı verileri kaçıracağınızı uyarır. Doğal Anahtarlar hakkında konuşur ve bazı geliştiricilerin bunları tanımlayıcı olarak kullandığını açıklar. Örneğin, bir turnuva adı benzersiz olabilir ve bir tanımlayıcı olarak işlev görebilir.

Ancak, Tim özel bir ID özelliği kullanmayı tercih eder:

">Kendi oluşturduğum ve ID adını verdiğim bir tanımlayıcıyı kullanmayı seviyorum."

Bu, indeksleme ve yönetim için daha kolay olduğunu söylüyor.

Ayrıca bizi hatırlatıyor:

">Bir şeyleri kaçırmak sorun değil."

Araştırma yapmayı ve Amazon kayıt olma veya telefon rehberi gibi örneklere bakarak bir kişi için tipik olarak hangi bilgilerin toplandığını görmek için teşvik eder.

Ancak bunun üzerine çok fazla düşünmememizi uyarır — hatalar meydana gelecek ve daha sonra düzeltilebilir.

Aşırı Plan Yapmayın

Tim, önemli bir dengeyi vurgular:

">Yasal not defterinizde hala duran iyi planlanmış bir uygulama işe yaramaz."

Planlamanın gerekli olduğunu açıklar, ancak çok fazla zaman harcamanın uygulamayı asla inşa etmenizi önleyebileceğini belirtir. İlerlemenizi teşvik eder ve tasarımın evrim geçireceğini kabul etmemizi önerir.

Ödül Nesnesi

Tim, Ödül nesnesini ve özelliklerini tanıtır:

  1. Sıra Numarası (int) Örnek: birinci yer için 1, ikinci yer için 2.

  2. Sıra Adı (string) Örnek: "Şampiyon", "Birinci Yedek".

  3. Ödül Miktarı (decimal) O yer için para miktarı.

  4. Ödül Yüzdesi (double) Örnek: %50 için 0,5

Sistemin sıfır olmayanı kullanarak miktar veya yüzdesini nasıl belirleyeceğini açıklar.

Eşleşme Nesnesi

Tim ardından Eşleşme nesnesini tanıtır:

  • Girdiler: EşleşmeGirdisi Listesi

  • Kazanan: Takım

  • Tur Numarası: int

Bir eşleşme girdisinin, bir eşleşmede bir takımı temsil ettiğini açıklar.

Eşleşme Girdisi Nesnesi

Tim, EşleşmeGirdisi özelliklerini tanımlar:

  • Takım

  • Skor

  • Üst Eşleşme

Ayrı takım özellikleri yerine girişler listesi seçme nedenini açıklar. Bu, skor sırasına göre düzenleme gibi esneklik sağlar.

Ayrıca Üst Eşleşme'nin amacını açıklar: Bir turdan bir sonraki tura kazananı bağlar.

Sonuç - Veri Planı Tamamlandı

Tim, bu altı sınıfın (Takım, Kişi, Turnuva, Ödül, Eşleşme, EşleşmeGirdisi) uygulamanın temeli olduğunu belirtir. Veri planının tamamlandığını ve bir sonraki dersin kullanıcı arayüzü oluşturmaya odaklanacağını hatırlatır.

Tasarıma rağmen bu tasarımın kafa karıştırıcı gelebileceğini, ancak kodda uygulandığında daha net hale geleceğini söyleyerek bitirir.

Tim'in videodaki veri-öncelikli yaklaşımını takip ederek, artık bir turnuva takip uygulaması için çekirdek verileri nasıl yapılandıracağınızı net bir şekilde anlıyorsunuz. Bir sonraki adım, Tim'in Dörtüncü Ders'te ele aldığı gibi, bu veriler üzerine UI oluşturmaktır.

Hero Worlddot related to Uygulama Veri Tasarımı (Ders 03) — Tim Corey ile Derinlemesine Bakış
Hero Affiliate related to Uygulama Veri Tasarımı (Ders 03) — Tim Corey ile Derinlemesine Bakış

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara