Kiedy po raz pierwszy zacząłem karierę programistyczną, szybko dowiedziałem się, że jest duża różnica między wiedzą, jak pisać kod a wiedzą jak dobrze pisać kod
Stworzony przez Mariusz Jurczenko
40 % taniej
120.00 zł
To najniższa cena z ostatnich 30 dni!
Masz pytania dotyczące tego szkolenia ?
Między pisaniem kodu a pisaniem dobrego kodu jest duża różnica. To szkolenie prowadzi przez najlepsze praktyki C#, pokazując, jak projektować klasy, porządkować warstwy aplikacji i bezpiecznie korzystać z podstawowych mechanizmów języka.
Zobaczysz, jak budować czytelne metody, dobierać parametry, chronić dane polami i właściwościami oraz pracować z ciągami. W kursie znajdziesz też wprowadzenie do testów jednostkowych i dostęp do kodu źródłowego.
Brak formalnych wymagań. Podstawy programowania w C# lub innym języku ułatwią naukę, lecz nie są konieczne.
Gdy zaczyna się przygodę z programowaniem, szybko widać różnicę między samym działaniem a dobrym stylem kodu. Ten kurs prowadzi przez najlepsze praktyki pracy z podstawowymi elementami C#. Zaczynamy od warstw aplikacji i typów klas, przechodzimy przez projektowanie oraz używanie klas, a następnie pola, właściwości, metody i parametry. Na końcu porządkujemy pracę z ciągami i dotykamy testów jednostkowych. Kod źródłowy: /mariuszjurczenko/DevHobbyApp.
Zaczynamy od uporządkowania aplikacji na warstwy i dopasowania do nich klas. Dzięki temu wiadomo, gdzie powinna trafić logika, a gdzie kod pomocniczy. Omawiamy różnice między odpowiedzialnościami poszczególnych warstw i to, jak wybór typu klasy wpływa na zależności i czytelność. Ustalamy zasady nazewnictwa i rozmieszczenia kodu, tak aby każda warstwa miała jasno określoną rolę. Pozwala to unikać przenikania odpowiedzialności oraz ułatwia dalszą rozbudowę. To fundament do dalszych decyzji projektowych w C#.
Budując dobre klasy, zaczynamy od właściwego umieszczenia ich w przestrzeniach nazw, co porządkuje rozwiązanie i ogranicza konflikty. Następnie porównujemy klasy zwykłe ze statycznymi oraz klasy typu singleton – kiedy takie podejście jest przydatne i jak wpływa na użycie obiektów. Analizujemy, jaki kod powinien znaleźć się w klasie, aby była spójna i przewidywalna: pola, właściwości i metody grupujemy według odpowiedzialności, a nazwy dobieramy tak, by jasno komunikowały intencję. Ustalamy też proste zasady porządkowania zależności.
O klasach najlepiej mówi praktyka. Pokazujemy inicjalizację obiektów i to, jak przygotować konstrukcję obiektów tak, by była czytelna i odporna na błędy. Wprowadzamy lazy loading, aby opóźnić tworzenie kosztownych obiektów do momentu, gdy są naprawdę potrzebne. Omawiamy także użycie operatora warunkowego przy dostępie do członków i sterowaniu przepływem w kodzie. Zwracamy uwagę na czytelność, minimalizowanie skutków ubocznych oraz konsekwentny styl wywołań. Dzięki temu klasy stają się prostsze w użyciu.
Dane klasy trzymamy w polach, dlatego zaczynamy od sposobów ich definiowania. Porównujemy pola zaplecza, stałe i pola tylko do odczytu, omawiając kiedy które rozwiązanie jest właściwe. Następnie przechodzimy do właściwości – jak chronić pola i jakie korzyści dają właściwości automatyczne. Ustalimy, kiedy ujawniać settery, jak ograniczać modyfikacje oraz jak unikać zbędnej logiki w akcesorach. Dzięki temu dane pozostają spójne, a interfejs klasy jest przewidywalny i łatwy w utrzymaniu.
Większość kodu żyje w metodach, dlatego poświęcamy im dużo uwagi. Pracujemy nad tym, by metody były krótkie, miały jasny cel i dobrą nazwę. Omawiamy przeciążanie i nadpisywanie oraz pokazujemy, jak stosować styl łańcuchowy, by zachować płynność wywołań. Dużą część zajmują parametry: kiedy użyć parametrów nazwanych, opcjonalnych czy wyliczeniowych oraz w jakich sytuacjach sięgnąć po ref i out. Dbamy o kolejność i domyślne wartości, tak by sygnatury pozostały zrozumiałe i spójne.
W aplikacjach dominują ciągi tekstowe, dlatego porządkujemy podejście do ich użycia. Zaczynamy od sprawdzania null i bezpiecznego sklejania tekstu. Następnie przechodzimy do formatowania oraz interpolacji ciągów, które poprawiają czytelność. Pokazujemy kiedy korzystać ze StringBuilder, aby wydajniej budować dłuższe teksty. Na koniec dotykamy testów jednostkowych jako uzupełnienia tematu. Dzięki temu praca ze stringami staje się przewidywalna, a kod łatwiejszy do weryfikacji.
Przystąp do szkolenia i oceń go jako pierwszy!
40 % taniej
120.00 zł
To najniższa cena z ostatnich 30 dni!