Pięć Kroków Refaktoryzacji Kodu – Maraton Rowerowy Krok 0

Refaktoryzacja, SOLID, DRY, YAGNI. Reafkatoryzacja, według wikipedi: Refaktoryzacja (czasem też refaktoring, ang. refactoring) – proces wprowadzania zmian w projekcie/programie, w wyniku których zasadniczo nie zmienia się funkcjonalność. Celem refaktoryzacji jest więc nie wytwarzanie nowej funkcjonalności, ale utrzymywanie odpowiedniej, wysokiej jakości organizacji systemu. Po przesłuchaniu  jednego z podcastów na blogu „Ostra Więcej…

Pięć Kroków Refaktoryzacji Kodu – Maraton Rowerowy Krok 5

Krok 5 Kolejnym krokiem  jest usunięcie funkcji filtrów z kontrolera w którym jest metoda getData, najlepiej było by każdemu filtrowi założyć osobną klasę, która dziedziczy po interfejsie.  Zastosować odwrócenie zależności (Dependency Inversion) zamiast wywoływać metodę filtrów z kontrolera, wykorzystać interfejsy i za ich pośrednictwem wywoływać daną metodę. Kolejnym krokiem było Więcej…

Pięć Kroków Refaktoryzacji Kodu – Maraton Rowerowy Krok 4

Krok 4 Z funkcji getData usunąłem większość instrukcji warunkowych, pozostawiłem tylko pierwszą czyli sprawdzanie czy parametry są null.  Każdy warunek otrzymał własną funkcję, dzięki temu zlikwidowałem niepotrzebne warunki, które zaciemniały kod. public List<ExtModelRegistrationList> getData(int? id_grupa, int? id_dys,int? oplata,string nazwisko) { using (var db = new  EntitiesMaraton()) { List<ExtModelRegistrationList> result = _registration.generateListZawodnik(); if (nazwisko == null || oplata == null || Więcej…

Pięć Kroków Refaktoryzacji Kodu – Maraton Rowerowy Krok 3

Krok 3 W tym kroku usunąłem z funkcji getData warunek sprawdzający wartość 0 oraz pusty string, dałem go do osobnej funkcji checkValueFiltersRef , której dodatkowym parametrem jest referencja do listy obiektów klasy ExtModelRegistrationList. Dzięki temu zabiegowi pozbyłem się kilku if-ów. Również zastosowanie referencji pozwoliło na skrócenie kodu funkcji checkValueFiltersRef.   private void  checkValueFiltersRef(int? Więcej…

Pięć Kroków Refaktoryzacji Kodu – Maraton Rowerowy Krok 1

Jest to wycinek większej aplikacji dostępnej na Githubie. Krok 1 Na początek krótkie streszczenie kodu. Metoda została „wyrzucona” po za kontroler, zwraca listę obiektów klasy „ExtModelRegistrationList”, która to klasa służy do prezentacji listy zarejestrowanych zawodników. Metoda „getData” ma za zadanie wyszukać zawodników według parametrów: id_grupa – numer grupy kolarskiej –  Więcej…