Sprawdzenie kodu

NP
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:25
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
Silv
Link prowadzi nie tam, gdzie powinien, spróbuj go zedytować.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8398
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.


edytowany 1x, ostatnio: LukeJL
Zobacz pozostałe 2 komentarze
LukeJL
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.
NP
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ę
NP
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ę :/
LukeJL
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.
" Bo na uczelni wiadomo, że się robi gorszy kod specjalnie pod wykładowcę" – pierwsze słyszę.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8398
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.


edytowany 3x, ostatnio: LukeJL
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)