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.
thorabric95
Posty: 4
Rejestracja: 26 sty 2021, 08:19:11
Płeć: Niewybrana
User Agent: Chrome MacOS 1440x900

Przykłady złego kodu do refaktoryzacji?

Post autor: 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)
Awatar użytkownika
endriu888
Obsługa CBA
Posty: 1869
Rejestracja: 23 sty 2012, 21:02:33
Strona na CBA.pl: katalogfirm.c0.pl
Płeć: Niewybrana
User Agent: Firefox Windows 1024x768
Kontakt:

Przykłady złego kodu do refaktoryzacji?

Post autor: 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
Posty: 4
Rejestracja: 26 sty 2021, 08:19:11
Płeć: Niewybrana
User Agent: Chrome MacOS 1440x900

Przykłady złego kodu do refaktoryzacji?

Post autor: thorabric95 »

thorabric95 pisze: 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
Awatar użytkownika
endriu888
Obsługa CBA
Posty: 1869
Rejestracja: 23 sty 2012, 21:02:33
Strona na CBA.pl: katalogfirm.c0.pl
Płeć: Niewybrana
User Agent: Firefox Windows 1024x768
Kontakt:

Przykłady złego kodu do refaktoryzacji?

Post autor: 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?
Zablokowany