Inne · Programowanie

Jak zacząć pisać projekt?

Załóżmy, że wpadliśmy na pomysł – napiszemy aplikację. Obojętnie, czy ma być ona webowa czy desktopowa. Obojętnie, czy ma być grą czy serwisem. Jakaś aplikacja. Należy pamiętać o tym, że od pomysłu do rozpoczęcia kodowania, trzeba przejść przez kilka etapów planowania.

Co będzie można robić za pomocą aplikacji?

Weź kartkę papieru albo otwórz Notepad. Usiądź i zastanów się, co chcesz, żeby można było robić za pomocą Twojej aplikacji. Podam przykład na podstawie mojego dzieła BoardGamesNook. To, co miała umożliwiać aplikacja, to np.:

  • pozwalać użytkownikowi się zalogować
  • pozwalać użytkownikowi tworzyć własne zbiory gier planszowych

Na początek przedstawiłam tylko 2 proste rzeczy. Ważne, żeby na tym etapie nie skupiać się JAK rozwiązać dany problem, tylko wymyślić JAKI PROBLEM ma rozwiązywać aplikacja. Jeśli już mamy zaplanowany ogólny szkic problemów, które rozwiązuje aplikacja, możemy iść dalej.

Jakie mają być funkcjonalności aplikacji?

Skoro znamy ogólne problemy, spróbujmy podzielić je na pojedyncze funkcjonalności. Znowu, wróćmy do przykładu mojej aplikacji. Mieliśmy tam 2 główne problemy, które możemy rozdzielić na jeszcze mniejsze – które już bezpośrednio odpowiadają funkcjonalnościom:

  1. problem logowania
    • logowanie za pomocą konta Facebook
    • logowanie za pomocą konta Google
    • logowanie za pomocą konta GitHub
  2. Problem tworzenia własnych zbiorów gier planszowych

2.1 -> Problem tworzenia ogólnego zbioru gier planszowych

Najpierw musimy mieć dostępny jakiś ogólny zbiór gier planszowych z poziomu aplikacji. Ten zbiór musi być edytowalny. Szykują się więc następujące podproblemy:

    • dodawanie gry planszowej do ogólnego zbioru gier
    • edycja gry planszowej z ogólnego zbioru
    • usuwanie gry planszowej z ogólnego zbioru
    • wyświetlanie listy gir planszowych
    • wyświetlanie szczegółów gry planszowej

Gdy ogólny zbiór gier planszowych będzie już gotowy, możemy skupić się na zbiorze gier konkretnego użytkownika. Funkcjonalności będą wyglądały następująco:

2.2 -> Problem tworzenia zbioru gier planszowych użytkownika

    • dodawanie gry planszowej (z ogólnego zbioru gier) do zbioru gier użytkownika
    • usuwanie gry ze zbioru gier użytkownika
    • wyświetlanie listy gier użytkownika

Jakie modele, obiekty mają być w aplikacji (baza danych)?

 

Funkcjonalności mamy już zapisane, pomyślmy teraz o modelach. Będziemy przechowywać informacje w jakiś obiektach (docelowo może to być tabela w bazie danych). Na pewno potrzebujemy modelu User. Musi mieć on jakiś identyfikator i login. Autoryzacja przez konto z innego serwisu pozwala nam pominąć etap przechowywania hasła. Możemy dowiedzieć się, jakie użytkownik ma imię i nazwisko, a nawet dostać link do miniaturki jego zdjęcia profilowego. Model User będzie więc wyglądał następująco:

  • Id
  • Login
  • Name
  • Surname
  • ThumbnailUrl

Spróbujmy adekwatnie wymyślić pola dla modelu BoardGame. Znowu jest nam potrzebny identyfikator i nazwa gry. Następnie dobrze wiedzieć, w ile osób można grać w daną grę (minimalna i maksymalna liczba graczy). Często jest również określony minimalny dopuszczalny wiek gracza. W niektórych grach jest zapisany szacowany czas rozgrywki – np. pod postać średniego czasu rozgrywki. Dodatkowo warto pokazać miniaturkę gry. Właściwości wyglądają więc następująco:

  • Id
  • Name
  • MinNumberOfPlayers
  • MaxNumberOfPlayers
  • PlayerMinAge
  • PlayTime
  • ThumbnailUrl

Gdybyśmy chcieli teraz połączyć grę planszową z użytkownikiem, można to zrobić, łącząc bezpośrednia obydwa powyższe modele. Mógłby powstać model UserBoardGame, w którym byłby zapisany identyfikator obiektu,  identyfikator użytkownika, oraz identyfikator gry planszowej, którą posiada:

  • Id
  • UserId
  • BoardGameId

Po rozpisaniu wszystkich powyższych elementów można uznać, że jesteśmy przygotowani do rozpoczęcia kodowania. Warto oczywiście pamiętać o tym, żeby aplikacja była warstwowa, to znaczy składała się z kilku projektów. Ale o tym już w innym wpisie.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s