10.1. Studium przypadku: przyjazny bank
W dalszej części w dużej mierze będę omawiać studiować przypadku, które pozwoli wam przyjrzeć się poznanym elementom języka C# w prawdziwym kontekście. Przyjmiecie rolę programisty, któremu klient zlecił zadanie do wykonania.
Macie napisać program dla banku Przyjazny i Naprawdę Miły Bank Cudownych Ludzi™, który w skrócie jest nazywany Przyjaznym Bankiem. Całą aplikację dla tej instytucji stworzymy w języku C#, co pozwoli nam przy okazji przyjrzeć się jego różnym elementom.
Jest raczej mało prawdopodobne, że kiedykolwiek otrzymasz prawdziwe zadanie stworzenia całego systemu bankowego, ale na pewno byłoby to bardzo ciekawe i lukratywne zlecenie. Niemniej jednak takie ćwiczenie jest bardzo wartościowe z programistycznego punktu widzenia, ponieważ w trakcie jego rozwiązywania można poznać wiele technik, które przydadzą się w późniejszych projektach.
Złota myśl programisty — szukaj wzorców
Tak naprawdę liczba różnych programów na świecie wcale nie jest taka duża. Wiele funkcji systemu naszego banku (przechowywanie dużych ilości informacji o dużej liczbie osób, wyszukiwanie informacji o wybranej osobie, implementacja transakcji zmieniających zawartość jednego lub większej liczby elementów systemu) można znaleźć także w innych programach, takich jak gry wideo, czy oprogramowanie robotów.
10.1.1. Zakres funkcjonalności systemu bankowego
Zakres funkcjonalności systemu to spis funkcji, które ma on wykonywać, a jednocześnie, zgodnie z logiką, wykaz zadań, których system nie realizuje. To drugie jest niemniej ważne od pierwszego, ponieważ klient nie zawsze wie, na czym dokładnie polega praca programisty i może oczekiwać od was rzeczy, których nie zamierzacie mu dostarczyć. Sporządzenie zakresu funkcjonalności na samym początku pozwala uniknąć wielu niemiłych niespodzianek w późniejszym czasie.
W tej chwili interesuje nas zarządzanie informacjami na temat kont bankowych. Kierownik banku powiedział nam, że jego instytucja przechowuje dane wszystkich klientów. Obejmują one imię i nazwisko, adres, numer konta, saldo i wysokość debetu. Później być może zostaną dodane jeszcze jakieś inne pozycje.
Liczba klientów wynosi wiele tysięcy i kierownik powiedział nam, że bank oferuje kilka rodzajów kont (oraz że od czasu do czasu wprowadzane są nowe typy).
Ponadto system musi generować wezwania i sprawozdania na życzenie.
Uwaga
Na końcu niektórych podrozdziałów opisuję, w jaki sposób dany nowy element języka C# przyda się nam do budowy naszego systemu bankowego. Postaram się przedstawić te informacje w praktycznym kontekście.