Przykłady złego kodu do refaktoryzacji?

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
Locked
thorabric95
Posts: 4
Joined: 26 Jan 2021, 08:19:11
Gender: None specified
User Agent: Chrome MacOS 1440x900

Przykłady złego kodu do refaktoryzacji?

Post by thorabric95 »

W firmie, dla której pracuję, czasami przydzielamy programistów, którzy ubiegają się o pracę, z prostym zadaniem refaktoryzacji. Robimy to, aby zobaczyć, jak kandydat rozumie i stosuje zasady SOLID, wzorce projektowe itp. Najczęściej używamy starszych komponentów naszych systemów lub klas z bibliotek, takich jak phpmailer, ponieważ niektóre z nich naruszają zasady pojedynczej odpowiedzialności i / lub zasady segregacji interfejsów.

Niestety te przykłady są dość duże i trudne do zrozumienia dla osoby, która nie ma doświadczenia z tematem i jego specyfiką. Idealnie chcielibyśmy rzucić wyzwanie ludziom czymś, co jest:

Szkoda, że ​​tak jest.

Łatwy do zrozumienia dla nowicjusza.

Tak więc pokornie proszę o pomoc, r / php. Podaj mi najlepsze przykłady śmierdzącego kodu do refaktoryzacji!

(Nie jestem pewien, czy to jest uważane za post pomocy. Jeśli tak, możesz go usunąć, a zamiast tego opublikuję go w r / phphelp)
User avatar
endriu888
Obsługa CBA
Posts: 1878
Joined: 23 Jan 2012, 21:02:33
Website at CBA.pl: katalogfirm.c0.pl
Gender: None specified
User Agent: Firefox Windows 1024x768
Contact:

Przykłady złego kodu do refaktoryzacji?

Post by endriu888 »

Usuwanie nadmiarowych konstruktorów

Konieczność zastosowania tego typu metody refaktoryzacji następuje najczęściej w przypadku, gdy programista chcąc szybko zastosować nową funkcjonalność, rozszerza klasę o kolejne konstruktory z nowymi parametrami. Podajmy przykład oparty na systemie obliczającym wartość pożyczki:

Pozyczka(wartosc);
Pozyczka(wartosc, oprocentowanie);
Pozyczka(wartosc, oprocentowanie, czasSplaty);
Pozyczka(wartosc, oprocentowanie, czasSplaty, ryzyko);
Pozyczka(wartość, oprocentowanie, czasSplaty, ryzyko, status);

Początkowo w kodzie programu istniał jeden konstruktor o nazwie „Pozyczka” z jednym parametrem (wartosc). W miarę dodawania nowych funkcjonalności pojawiała się potrzeba tworzenia konstruktorów „Pozyczka” o większej liczbie parametrów. W ten sposób powstało pięć metod o tej samej nazwie, lecz różnym działaniu. Taki kod zazwyczaj wymaga refaktoryzacji, gdyż nazwa metody powinna jednoznacznie wskazywać, za jaką funkcjonalność systemu metoda odpowiada. Przy dalszym rozwoju kodu tej klasy mogą pojawić się problemy z implementacją wynikające z niezrozumienia faktycznej roli konstruktora. Po refaktoryzacji kod może mieć postać:

Pozyczka(wartosc, oprocentowanie, czasSplaty, ryzyko, status);
ustalWartosc(wartosc);
stworzPozyczke(wartosc, oprocentowanie);
dajPozyczke(wartosc, oprocentowanie, czasSplaty);
sprawdzPozyczke(wartosc, oprocentowanie, czasSplaty, ryzyko);


źródło: wikipedia

przydatny ebook: https://helion.pl/ksiazki/refaktoryzacj ... refak2.htm
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
thorabric95
Posts: 4
Joined: 26 Jan 2021, 08:19:11
Gender: None specified
User Agent: Chrome MacOS 1440x900

Przykłady złego kodu do refaktoryzacji?

Post by thorabric95 »

thorabric95 wrote: W firmie, dla której pracuję, czasami przydzielamy programistów, którzy ubiegają się o pracę, z prostym zadaniem refaktoryzacji. Robimy to, aby zobaczyć, jak kandydat rozumie i stosuje zasady SOLID, wzorce projektowe itp. Najczęściej używamy starszych komponentów naszych systemów lub klas z bibliotek, takich jak phpmailer, ponieważ niektóre z nich naruszają zasady pojedynczej odpowiedzialności i / lub zasady segregacji interfejsów.

Niestety te przykłady są dość duże i trudne do zrozumienia dla osoby, która nie ma doświadczenia z tematem i jego specyfiką. Idealnie chcielibyśmy rzucić wyzwanie ludziom czymś, co jest:

Szkoda, że ​​tak jest.Tweakbox Appvalley https://vlc.onl


Łatwy do zrozumienia dla nowicjusza.

Tak więc pokornie proszę o pomoc, r / php. Podaj mi najlepsze przykłady śmierdzącego kodu do refaktoryzacji!

(Nie jestem pewien, czy to jest uważane za post pomocy. Jeśli tak, możesz go usunąć, a zamiast tego opublikuję go w r / phphelp)
issue got solvedd
User avatar
endriu888
Obsługa CBA
Posts: 1878
Joined: 23 Jan 2012, 21:02:33
Website at CBA.pl: katalogfirm.c0.pl
Gender: None specified
User Agent: Firefox Windows 1024x768
Contact:

Przykłady złego kodu do refaktoryzacji?

Post by endriu888 »

Witam

w takim razie zamykam temat
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
Locked