[KURS C#] Gotowy system

Po długiej przeprawie przez podstawy języka C# doprawione elementami projektowania struktury kodu czas na podsumowanie i przejrzenie tego co stworzyliśmy!

Kurs w formie tekstowej nie jest tym czego szukasz? Świetnie! Bo z kodem CHCE_WIECEJ można uzyskać dostęp do kursu video uczącego podstaw języka C# 15% taniej! Kurs zawiera wiedzę z poniższego kursu i jeszcze więcej! Sprawdź na kurs-szarpania.pl!

On żyje!

Na początek prezentacja tego jak aplikacja działa u mnie i jak, mam nadzieję, działa i wygląda ona u Ciebie:

Myślę, że jak na pierwsze zlecenie, które robiliśmy efekt jest świetny! Z rzeczy, które zrobiliśmy to:

  • wyświetlanie menu
  • pobieranie informacji od użytkownika
  • tworzenie nowych obiektów – konta oszczędnościowego i konta rozliczeniowego
  • przechowywanie obiektów na liście
  • wyświetlanie danych z obiektów, które dynamicznie dodawaliśmy
  • modyfikacja wartości w już utworzonych obiektach
  • wyświetlanie wybranych danych z listy – lista klientów

Jest tego całkiem sporo. Mimo, że sam kurs nie był szczególnie długi i na pewno nie sprawił Ci zbyt wielu trudności.

Czego się nauczyliśmy?

W trakcie trwania tego kursu udało nam się przygotować działający system dla nowo otwartego banku naszego kolegi Jacka. Ale co ważniejsze nauczyliśmy się podstaw języka C#, które są dobrym wstępem do wejścia w świat komercyjnego programowania. Zagadnienia jaki poruszyliśmy to:

  • tworzenie nowego projektu w Visual Studio
  • struktura programu konsolowego
  • dodawanie własnych klas, a w konsekwencji modelowanie rzeczy i zachowań wewnątrz naszych programów
  • posługiwanie się zmiennymi, które pozwalają przechowywać obiekty, na których pracujemy
  • pisanie własnych funkcji w celu zamykania fragmentów kodu jako osobnych bloków, które możemy wykorzystać wielokrotnie
  • dziedziczenie klas – klasy w końcu mogą mieć swoich rodziców
  • interfejsy będące swego rodzaju kontraktem, który powoduje, że oczekujemy dostępu do konkretnych zachowań, ale nie wymagamy żadnej konkretnej implementacji ani powiązania między klasami
  • decydowanie o ścieżkach jakimi podążać będzie wykonanie programu – to wszystko z pomocą instrukcji warunkowych i operatorów porównania
  • listy czyli świetny sposób na przechowywanie wielu obiektów tego samego typu
  • przechodzenie po wszystkich obiektach w listach z wykorzystaniem pętli – od teraz możemy w prosty sposób wykonać dowolną operację na każdym elemencie jaki mamy

Kod ostateczny

Poniżej znajduje się zawartość wszystkich plików, które w trakcie kursu powinniśmy mieć napisane. Jeżeli w którymś miejscu nie byłeś pewny czy na pewno poprawnie wykonałeś polecenie albo szukasz błędu w swoim kodzie to tutaj możesz sprawdzić gotowy kod jaki napisałem. Każdy z plików opisałem w kilku słowach.

Jeżeli ktoś zna Gita i chciałby ściągnąć cały projekt, który powstał to może to zrobić korzystając z repozytorium na GitHubie, które zawiera commity z każdej lekcji. Dzięki temu można również prześledzić kolejne etapy powstawania kodu.

Program.cs

Główny plik i klasa naszej aplikacji. Tutaj wszystko się rozpoczyna. Jednocześnie ograniczyliśmy kod w tym miejscu do minimum, zostawiając jedynie to co pozwala rozpocząć działanie programu.

IPrinter.cs

Interfejs dla klas drukujących w naszym systemie.

Printer.cs

Klasa drukarki, którą wykorzystujemy w aplikacji. Implementuje pokazany powyżej interfejs.

Account.cs

Abstrakcyjna klasa bazowa dla naszych kont. Zbiera wszystkie zmienne i funkcje, które są takie same dla każdego konta.

SavingsAccount.cs

Klasa konta oszczędnościowego. Dziedziczy po klasie bazowej Account i rozszerza jej działanie o funkcję do dodawania odsetek.

BillingAccount.cs

Klasa konta rozliczeniowego. Dziedziczy po klasie Account i rozszerza ją dodając funkcję do pobierania opłaty za prowadzenie konta.

AccountsManager.cs

Klasa managera kont. Trzyma listę otwartych kont w jednym miejscu i pozwala na tworzenie, modyfikowanie i dodawanie kont w aplikacji.

BankManager.cs

Klasa managera banku. Ponieważ nasza aplikacja jest aplikacją konsolową to potrzebowaliśmy stworzyć przejrzysty sposób komunikacji z użytkownikiem. Ta klasa zawiera całą logikę związaną z wyświetlaniem menu i uruchamianiem funkcji programu.

Co dalej?

Ukończony kurs to dobry początek. Jednak chcąc myśleć o karierze programisty trzeba dokonać kolejnych wyborów i brnąć w kolejne zagadnienia. Przedstawię Ci więc tutaj listę przykładowych decyzji, ścieżek i zagadnień jakie możesz rozważyć w kolejnych etapach nauki.

Poniżej znajdziesz przykładowe książki, które polecam. Lista będzie się sukcesywnie powiększać. Dodatkowo kupując je przez zamieszczone poniżej linki wspierasz rozwój bloga.

Dalsza nauka języka

To czego się nauczyliśmy w trakcie kursu to oczywiście nie wszystko. Nawet jeżeli mówimy tylko o języku C# i .NET Frameworku, nie wkraczając w świat zewnętrznych bibliotek i frameworków, to będziemy mieli czym się zajmować i co poznawać.

Nie tylko nie poruszyliśmy wszystkich często używanych zagadnień takich jak typ wyliczeniowy. Oprócz tego nie wspomnieliśmy nawet o zagadnieniach związanych z wielowątkowością, elementami sieciowymi czy bardziej zaawansowanych zagadnieniach związanych z dziedziczeniem, operatorami czy funkcjami.

Książki:

„C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych”

Testy

Testowanie aplikacji to nie tylko jej uruchamianie i sprawdzanie czy działa poprzez klikanie wszystkiego. Podstawowym narzędziem chroniącym przed większością błędów i dającym informację zwrotną czy nasza zmiana nie zepsuła tego co działało wcześniej są testy jednostkowe. Dzięki nim możemy sprawdzić czy małe fragmenty kodu w konkretnej sytuacji, takiej jak konkretny zbiór danych, zachowują się dokładnie tak jak tego oczekiwaliśmy.

Książki:

„Testy jednostkowe. Świat niezawodnych aplikacji.”

Typ aplikacji

Dla uproszczenia tłumaczenia zagadnień cały kurs opierał się o aplikację konsolową. Jednak tego typu programy, poza studiami i specjalistycznymi narzędziami, są zdecydowaną niszą. Dlatego warto dosyć szybko po poznaniu podstaw języka wybrać w jaki typ aplikacji chcemy iść. Zasadniczo w C# mamy do wyboru dwie duże ścieżki

  • Aplikacje webowe
  • Aplikacje desktopowe

Pierwszy ma zdecydowaną przewagę jeśli chodzi o ilość pracy. Większość firm przenosi swoje narzędzia do przeglądarki. Możesz się nauczyć programowania webowego np. korzystając z mojego kursu ASP.NET Core, które powstaje i jest dostępny w przedsprzedaży O TUTAJ.

„Chcę pisać gry!”

A może zacząłeś się uczyć programowania bo skusiła Cię do tego wizja stworzenia swojej gry? Jeżeli tak to również tutaj C# jest dobrym wyborem bo wykorzystać go możemy w silniku Unity i za ich pomocą spełnić swoje marzenie o zostaniu programistą gier.

Książki i linki:

„Unity i C#. Podstawy programowania gier”

„Unity w akcji”

Blog mojego kolegi Marka poświęcony głównie tworzeniu gier z wykorzystaniem Unity

Zagadnienia uniwersalne

Poza nauką samego języka i związanych z nim dodatkowych bibliotek i technologii warto też poznawać zagadnienia, które nie są bezpośrednio związane z jednym językiem. Powodują one, że nasza praca jest bardziej wydajna, a kod, który tworzymy będzie wysokiej jakości.

W tym miejscu wchodzi też takie zagadnienie jak „jakość kodu. Co to jest, jak i po co o to dbać napisałem w jednym ze swoich tekstów na blogu.

Git

Git jako narzędzie do wersjonowania kodu pozwala na większą swobodę w modyfikowaniu kodu i ułatwia pracę w zespole.

Pierwsza zaleta wynika z tego, że mogąc zapamiętać stan kodu w dowolnym momencie i mogąc potem bez problemu do tego momentu wrócić możemy dużo odważniej wprowadzać zmiany. Nieważne jak dużo napsujemy to mamy możliwość powrotu jednym kliknięciem do ostatniej działającej wersji.

Druga zaleta po części wynika z pierwszej, a po części wynika z tego, że Git daje możliwość łatwego śledzenia zmian wprowadzanych przez innych i łączenia ich z tymi, które my wprowadziliśmy.

Książki:

„Git. Rozproszony system kontroli wersji”

„Pro Git” dostępny w wersji online za darmo

Wzorce projektowe

Czyli powtarzające się w wielu projektach sposoby rozwiązania wybranych problemów. Lista spisanych wzorców projektowych zawiera schematy, które w sprytny sposób pozwalają podejść do struktury naszych programów i przepływu danych w nich.

Książki:

„Wzorce projektowe. Rusz głową!”

„Design Patterns in C#”

Dobre praktyki

Magiczne skróty takie jak SOLID, KISS, DRY powinny być Ci dosyć szybko znane. Są to zasady, które kierują Twój kod w stronę wysokiej jakości łatwej w utrzymaniu i modyfikowaniu struktury. Bardziej ogólnym pojęciem, z którym warto się zapoznać jest czysty kod.

Książki:

„Czysty kod. Podręcznik dobrego programisty” <- pozycja wręcz obowiązkowa

„Mistrz czystego kodu. Kodeks postępowania profesjonalnych programistów”

Podsumowując

Kończąc ten kurs nabyłeś podstawową wiedzę na temat języka C#. Mam szczerą nadzieję, że będzie to dla Ciebie dobry start do dalszej nauki i podjęcia w przyszłości pracy bądź zajmowania się tym hobbistycznie.

Zachęcam też do pozostania na dłużej i zapoznania się z resztą tekstów obecnych na blogu. Dzielę się tam zarówno poradami technicznymi jak i przemyśleniami powiązanymi z pracą programisty. Udzielam się również na fanpagu bloga na Facebooku, do którego śledzenia również zapraszam.

W razie pytań, wątpliwości, uwag bądź znalezienia błędów w kursie możesz pisać do mnie wiadomość prywatną na Facebooku albo wysłać email na contact@zajacmarek.com

Wiesz, że możesz mnie znaleźć nie tylko na tym blogu?

Wszystkie miejsca, w których udzielam się w internecie poznacz na stronie codewin.pl.

Szukasz książek dla programistów i jednocześnie chcesz wesprzeć tego bloga? Sprawdź ofertę wydawnictwa Helion klikając w TEN LINK.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *