Sprawdzenie kodu

0

Cześć dopiero co uczę się php i chciałbym usłyszeć wasze rady na temat pisania poprawnego kodu (pod względem clear code oraz ogólnych kwestii technicznych).
Link do mojego gita https://github.com/k3j4/rss
Z góry dziękuję za pomoc.

2

Masz skłonność do niepotrzebnych komentarzy. Tutaj najbardziej jaskrawy przykład totalnie niepotrzebnego komentarza:

// Konstruktor
public function __construct()

Wiadomo, że to konstruktor.

Inne komentarze, które masz, niby "mądre", ale w rzeczywistości zaciemniają kod:

// Funkcja uruchomieniowa
public function run($RecognizeLink)

funkcja uruchomieniowa? WTF.

// Sprawdzanie czy podany link odpowiada

Czemu odpowiada...? Tak jakby czegoś brakowało.

Masz tam też komentarze, które faktycznie coś wyjaśniają:

// Funkcja wyświetlająca dodany rekord
public function print_data($title, $mysql_connect)

Ale ja bym się zastanowił w takich sytuacjach, czy przypadkiem nazwa print_data jest odpowiednia, jeśli musisz dodatkowo ją "tłumaczyć" poprzez komentarz. Czemu nie np. print_record_data? I już możesz wywalić komentarz.

Generalnie dobrą praktyką jest pisanie domyślnie bez komentarzy i myślenie nad tym, żeby kod był samodokumentujący się (opisowe nazwy zmiennych, funkcji, klas choćby). Komentarze mogą być uzupełnieniem, jeśli nie wszystko widać w kodzie, ale wciskanie komentarzy na siłę, i to komentarzy, które mają zerową wartość ("funkcja uruchomieniowa"? "konstruktor"?), nie ma sensu.

3

pracodawca ocenił mój kod na 3 z dużym minusem

pracodawca, czyli kto? Zwykle ocenia konkretny programista/programiści, a nie "pracodawca".

Co do niskiej oceny, to mnie już na wstępie te komentarze rażą. Bo to taki trochę znak amatorszczyny (szczególnie, że są one pisane łamaną polszczyzną - np. literówki: sprawdzajća, odsyłąjąca - czyli nie dość, że

  1. komentarze tłumaczą oczywistości (tj. są totalnie zbędne).
  2. są po polsku, a nie po angielsku
  3. są pisane na kolanie

Poza tym zrobiłeś copy-paste w plikach RssLink.php i XmlLink.php. Te pliki są prawie takie same, czyli masz zdublowaną logikę. To dodatkowo źle świadczy, bo może sugerować albo że zrobiłeś coś na szybko, niechlujnie (tylko Ctrl+C, Ctrl+V), albo że nie umiesz tworzyć abstrakcji i wydzielić wspólnego kodu gdzieś do osobnego "bytu" (np. do osobnego pliku, klasy, funkcji).

Bo normalnie to taka zdublowana logika (jak np. w get_data, chociaż w zasadzie całe te dwa pliki są zdublowane), powinna być gdzieś wydzielona, tak żeby kolejne moduły mogły ją używać.

Funkcja get_data w ogóle jest jakaś dziwna i wydaje się robić ileś niezwiązanych ze sobą rzeczy naraz (np. czemu odpala INSERT INTO...?) To pobiera dane, czy coś wkłada do bazy? Ale nie chce mi się to wnikać, chociaż przypuszczam, że mogłaby być po prostu podzielona na kilka funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1