Sprawdzenie kodu

Odpowiedz Nowy wątek
2019-04-20 20:45
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.

edytowany 3x, ostatnio: NjuPlejer, 2019-04-20 22:33
Link prowadzi nie tam, gdzie powinien, spróbuj go zedytować. - Silv 2019-04-20 22:07
już działa - NjuPlejer 2019-04-20 22:33

Pozostało 580 znaków

2019-04-20 23:08
1

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.


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
edytowany 1x, ostatnio: LukeJL, 2019-04-20 23:09
Pokaż pozostałe 2 komentarze
Poza tym programiści znają angielski, a tylko oni będą patrzeć faktycznie w kod w firmach. Chyba, że dajesz to wykładowcy, to nie wiem. - LukeJL 2019-04-21 00:24
na praktyki do prawdziwej firmy. Pisząc komentarze bardziej chodziło mi o to, żeby pokazać że rozumiem o co chodzi w moim kodzie,a nie że kopiuję jakieś skrypty z neta i nie wiem co się dzieję - NjuPlejer 2019-04-21 00:26
jeżeli chodzi o zadania na praktyki to pracodawca ocenił mój kod na 3 z dużym minusem ,mimo iż wykonałem wszystkie punkty z podanego zadania.Dlatego też wolałem zapytać na forum co może być nie tak z moim kodem że otrzymałem tak niską ocenę :/ - NjuPlejer 2019-04-21 00:30
No ale przecież i tak będą cię o to pytać na rozmowie o pracę, jak będą chcieli (i zakładając, że przejdziesz kolejny etap rekrutacji). Swoją drogą tak na dobrą sprawę to w tych komentarzach i tak nic nie jest wyjaśnione. Już lepiej byłoby zrobić jakieś dobre README na temat tego, czym jest projekt, czemu ma służyć, itp. niż zaśmiecać kod źródłowy. - LukeJL 2019-04-21 00:31
" Bo na uczelni wiadomo, że się robi gorszy kod specjalnie pod wykładowcę" – pierwsze słyszę. - Mózg 2019-04-21 00:49

Pozostało 580 znaków

2019-04-21 00:46
2

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.


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
edytowany 3x, ostatnio: LukeJL, 2019-04-21 00:50

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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