Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Planowanie logiki aplikacji — głębsze spojrzenie na podejście Tima Coreya

Tim Corey
17m 14s

W swojej serii C# App Start To Finish, Tim Corey wyjaśnia, że budowanie aplikacji nie polega tylko na pisaniu kodu. Prawdziwym wyzwaniem jest planowanie logiki aplikacji — jak różne części aplikacji będą się ze sobą interakcjonować, komunikować i przesyłać dane między ekranami i komponentami. W Lekcji 05 na temat planowania logiki, Tim skupia się na planowaniu logiki, podkreślając, że to etap, na którym decydujesz, jak aplikacja będzie się zachowywać jako całość.

Przypomina nam, że do tego punktu kurs obejmował już określanie wymagań, budowanie ogólnej struktury, projektowanie zaplecza danych oraz rysowanie front endu. Teraz, mówi Tim, następnym krokiem jest połączenie wszystkiego przez logikę.

Tim wyjaśnia, że ta lekcja nie będzie jeszcze wchodzić w kod. Zamiast tego chce omówić globalne pomysły, ogólny obraz i ogólną logikę za aplikacją. Zachęca do pisania notatek na papierze i rysowania strzałek, aby odwzorować jak każda forma i przycisk powinny się zachowywać, co jest podobne do tego, jak procesy biznesowe są odwzorowywane w profesjonalnych środowiskach rozwoju. To planowanie pomaga, aby logika aplikacji stała się jasna przed rozpoczęciem kodowania.

Dlaczego planowanie logiki ma znaczenie

Tim zaczyna od stwierdzenia, że łączenie form to główna część logiki aplikacji. Kiedy formy są prawidłowo połączone, pozostałe zadania są zazwyczaj mniejsze. Wyjaśnia, że proces planowania logiki pomaga zrozumieć funkcjonalności, procesy i kontrolki, które aplikacja musi wspierać.

Tim mówi, że gdyby robił to na papierze, zapisałby, co każdy komponent powinien robić i narysowałby strzałki między nimi. Chociaż zajęcia odbywają się na ekranie, planuje przejrzeć każdą formę i wyjaśnić logikę za każdym elementem.

Logika formularza Create Tournament

Tim zaczyna od formularza Create Tournament, który jest jednym z prostszych formularzy. Wyjaśnia logikę poszczególnych przycisków i jak powinny współpracować.

Przycisk Create New Team

Tim wyjaśnia, że przycisk Create New Team otwiera formularz Create Team. Po stworzeniu drużyny, nowy formularz zamyka się, a dane stworzonej drużyny są zwracane do formularza Create Tournament. Zespół powinien pojawić się w liście drużyn/graczy, a to jest realizowane przez stworzenie metody, którą można wywołać z formularza Create Team.

Tim również wprowadza koncepcję użycia interfejsów do tej komunikacji, wyjaśniając, że interfejsy pozwalają formularzom na interakcję bez konieczności znajomości siebie bezpośrednio. To klasyczny przykład, jak logika biznesowa i architektura oprogramowania współpracują, aby utrzymać jakość, integralność i czystą interakcję między komponentami.

Przycisk Add Team

Tim wyjaśnia, że przycisk Add Team jest prosty. Sprawdza, który element jest wybrany w rozwijanym menu, dodaje tę drużynę do listy turniejów, usuwa ją z rozwijanego menu, a następnie odświeża obydwie listy. Ta logika zapewnia, że wybór użytkownika jest prawidłowo odzwierciedlony w UI i w danych podstawowych.

Przycisk Create Prize

Tim wyjaśnia, że przycisk Create Prize działa podobnie do przycisku Create New Team. Otwiera formularz Create Prize, czeka na stworzenie nagrody, a następnie dodaje tę nagrodę do listy nagród. Logika jest ta sama, ale klasa i typ danych są inne.

Usuń wybrane przyciski

Tim wyjaśnia, że przyciski usuwania usuwają wybrany element z listy. W przypadku zespołów, logika również przywraca usunięty zespół z powrotem do listy rozwijanej, zapewniając, że użytkownik może dodać go ponownie później. Tego typu aktualizacja w czasie rzeczywistym poprawia doświadczenie użytkownika i pomaga utrzymać poprawne dane w całym interfejsie użytkownika.

Przycisk Utwórz Turniej

Tim wyjaśnia, że to duży przycisk, ponieważ uruchamia najwięcej logiki. Po kliknięciu musi zweryfikować wszystkie informacje:

  • Nazwa turnieju nie może być pusta

  • Opłata wpisowa nie może być ujemna

  • Muszą istnieć co najmniej dwa zespoły

Po weryfikacji, Tim wyjaśnia kolejny ważny krok: tworzenie harmonogramu. Logika harmonogramu turnieju określa, ile drużyn powinno być w turnieju i ile koniecznych jest zwolnień. Tim odnosi się do dokumentu towarzyszącego, w którym napisał wzór do tego obliczenia. Na przykład, jeśli turniej ma 10 zespołów, turniej musi rozpocząć z 16 zespołami, co oznacza, że w pierwszej rundzie potrzebne jest 6 zwolnień.

Tim zauważa również, że logika musi losowo określić kolejność pierwszej rundy. Kiedy to wszystko jest zakończone, formularz jest gotowy, a aplikacja może przejść dalej.

Logika Formularza Utwórz Zespół

Tim przechodzi do formularza Utwórz Zespół i wyjaśnia logikę przycisków.

Przycisk Dodaj Członka

Tim mówi, że ten przycisk dodaje istniejącego członka z listy rozwijanej do listy zespołów. Następnie usuwa tego członka z listy rozwijanej i odświeża obie listy. Tim podkreśla, że jest to podobna logika do przycisku Dodaj Zespół.

Przycisk Utwórz Członka

Tim wyjaśnia, że przycisk Utwórz Członka pobiera cztery pola wejściowe, tworzy nowego członka zespołu, dodaje go do listy i oczyszcza pola. To typowy przykład typowych zadań w logice aplikacji, gdzie dane wejściowe użytkownika muszą być przetworzone i odzwierciedlone w interfejsie użytkownika.

Przycisk Utwórz Zespół

Tim mówi, że przycisk Utwórz Zespół musi zweryfikować zespół, a następnie odesłać utworzony zespół do wywołującego. Zauważa, że formularz brakuje przycisku usuwania gracza, który powinien być dodany, aby pasować do pozostałych formularzy i zapewnić spójną obsługę użytkownika. Tim wyjaśnia, że spójne zachowanie interfejsu użytkownika jest ważne dla zaznajomienia i komfortu użytkownika.

Logika Formularza Utwórz Nagrodę

Tim opisuje formularz Utwórz Nagrodę jako prostszy. Zawiera cztery pola tekstowe i jeden przycisk.

Po kliknięciu przycisku Utwórz Nagrodę, wykonuje ono następujące czynności:

  • Weryfikuje informacje o nagrodzie

  • Wysyła dane z powrotem do wywołującego formularza

  • Zamyka formularz

Tim wyjaśnia, że formularz jest w zasadzie taki sam jak Utwórz Zespół, ale z mniejszą liczbą komponentów.

Logika Panelu Turniejów

Tim wyjaśnia formularz Panelu Turniejów jako prosty, ale istotny.

Lista istniejących turniejów. Przycisk Ładuj Turniej otwiera Podgląd Turniejów dla wybranego turnieju, a przycisk Utwórz Turniej otwiera formularz Utwórz Turniej.

Tim zauważa, że kiedy tworzony jest turniej, powinien być dodany do listy rozwijanej, aby użytkownik mógł go od razu załadować. Ta logika jest podstawowym przykładem dostępu do danych i aktualizowania ich w aplikacji w czasie rzeczywistym.

Logika Podglądu Turnieju

Tim opisuje Podgląd Turniejów jako najbardziej skomplikowany formularz, ponieważ zawiera najwięcej logiki.

Nazwa turnieju

Tim wyjaśnia, że nazwa turnieju jest aktualizowana po załadowaniu formularza. Formularz pobiera obiekt turnieju i wyświetla nazwę.

Lista rozwijana Rund

Tim wyjaśnia, że ta lista rozwijana jest obliczana, a nie ładowana z bazy danych. Sprawdza listę rund i określa, ile ich jest. Jeśli turniej ma cztery rundy, lista rozwijana musi wyświetlać Rundę 1 do Rundy 4.

Checkbox Tylko Nierozgrywane

Tim mówi, że jeśli checkbox jest zaznaczony (domyślnie), lista rozgrywek jest filtrowana, aby pokazywać tylko nierozgrywane gry. Jeśli odznaczony, pojawiają się wszystkie rozgrywki.

Sekcja Wyników Meczowych

Tim wyjaśnia, że wybór rozgrywki aktualizuje prawą sekcję z nazwami drużyn i wynikami. Przycisk Wynik pozwala użytkownikowi zaktualizować wyniki i zakończyć rozgrywkę.

Wyzwalanie Następnej Rundy

Tim wyjaśnia, że gdy ostatnia nierozgrywana rozgrywka w rundzie jest punktowana, powinna rozpocząć się następna runda. Jeśli to ostatni mecz finałowy, turniej się kończy i przyznaje się nagrody. Tim również zauważa, że system wysyła e-maile do uczestników, kiedy są zaplanowani na grę i kiedy dostępne są wyniki.

Zasady Edytowania Wyników

Tim pyta, czy wyniki mogą być aktualizowane po ustaleniu. Kończy, że tak, ale tylko wtedy, gdy bieżąca runda jest nadal aktywna. Jeśli wyniki są zmieniane po rozpoczęciu następnej rundy, może to spowodować poważne problemy, ponieważ drużyny mogą grać z niewłaściwymi przeciwnikami.

Dlatego Tim mówi, że przycisk Wynik potrzebuje logiki, aby zapewnić, że wyniki można zmienić tylko w bieżącej rundzie.

Co dalej?

Tim przyznaje, że część logiki wciąż wymaga zaplanowania, jak na przykład:

  • Dostęp do danych i ich przechowywanie

  • Obsługa różnych źródeł danych

  • Logika e-mailowa

  • Wyzwalanie rozgrywek

Mówi, że lepiej to zaplanować wewnątrz kodu, więc zespół zajmie się tymi kwestiami, gdy rozpocznie programowanie. To przykład integralności biznesowej w rozwoju oprogramowania — nieprzesadne planowanie, ale budowanie i dostosowywanie się podczas implementacji.

Wniosek: Planowanie Przed Kodowaniem

Tim podsumowuje swój film mówiąc, że faza planowania jest zakończona:

  • Projekt danych jest finalizowany

  • Układ UI jest narysowany

  • Logika za każdym formularzem jest zaplanowana

Następnym krokiem jest przetłumaczenie tego na kod. W następnej lekcji Tim stworzy bibliotekę klas i rozpocznie wdrażanie projektu danych do rzeczywistej aplikacji.

Hero Worlddot related to Planowanie logiki aplikacji — głębsze spojrzenie na podejście Tima Coreya
Hero Affiliate related to Planowanie logiki aplikacji — głębsze spojrzenie na podejście Tima Coreya

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie