... termin oddania projektu za kilka godzin - w poniedzialek rano


Ja dziś wziąłem do ręki ten kod (dla utrudnienia usunąłem komentarze), a i tak patrzyłem na swoje niektóre konstrukcje i zastanawiałem się "Ki czort?". Tak niewiele linijek, ale trochę czasu mi zajęło zanim zakminiłem czemu obliczanie $place wygląda tak, a nie inaczej i dlaczego w foreachu mam dodatkowo rzutowanie na tablicę
if( $random_existance['count'] > 0 ) { '<p>Random text 1.</p>', '<p>Random text 2.</p>', '<p>Random text 3.</p>', '<p>Random text 4.</p>' ); } }
$temp = $mt_rand( $start_range, $end_range ); $random_from_range[] = $temp; } }
Nie sprawdzałem wydajności, gdyż każdy z nich ma swoje wady i zalety a zastosowanie jest zalezne od sytuacji. Ale ten zapis drugi, choć bardziej zawiły dla laika, na pewno ma ten plus, iż nie ma pustych przebiegów, nawet w przypadku gdy losowanie odbywa się przy liczbie losowanych bliskiej ilości liczb w zakresie. A to jest główna wada pętli, ktora zapewne nieraz wtedy trafi wielokrotnie w tę samą liczbę.
... sprawiasz, że kod sam się komentuje. Najzwyklej w świecie używając odpowiednich nazw funkcji, zmiennych e.t.c. oraz wydzielając atomowe operacje do funkcji sprawiasz, że wszelkie komentarze są zbędne.
<?php public class SomeClass { public getRandomNumbersFromRange($resultNumbersCount, $startRange, $endRange) { } } ?>
<?php public class SomeClass { public getRandomNumbersFromRange($resultNumbersCount, $startRange, $endRange) { addRandomNumberIfUnique($randomNumbers, $randomNumber); } return $randomNumbers; } private addRandomNumberIfUnique($randomNumbers, $randomNumber) { $randomNumbers[] = $randomNumber; } } } ?>
$tempNumbers = $prepared_smsAnalytics->fetch(\PDO::FETCH_OBJ); ($tempNumbers->delivered != '') ? $tempDelivered = array_unique(explode(",", $tempNumbers->delivered)) : $tempDelivered = null; ...
Dla siebie dodatkowo skomentowałem, że jest ono potrzebne w ramach zabezpieczenia. Może być bowiem sytuacja, że tekstów losowych jest podanych mniej niż wylosowana liczba. Niby drobiazg, ale bez niego w określonych sytuacjach kod się może wyłożyć. Komentarz tutaj informuje więc mnie, że jest to miejsce na które muszę zwrócić uwagę podczas ewentualnej optymalizacji kodu. Myślę, że ma tutaj więc uzasadnienie komentarz, gdyż jest to potencjalna pułapka w sytuacji dostarczania danych z zewnątrz. Ja dla siebie więc i późniejszego zrozumienia lubię stosować. Nie by pisać elaborat, ale gdy siadam po długim czasie znowu do kodu tegoż, wiedzieć co z czym zjeść. A takiej informacji konwencje nie obejmują. Konwencje tyczą bowiem czytelności kodu i pewnych podstawowych informacji, a nie jego głebszej warstwy logiczno-informacyjnej tak naprawdę. Z samego nazewnictwa, układu kodu i jego ustrukturyzowania tego nie uzyskam w żaden sposób.
<?php class SomeClass { private function calculateRandomNumbersCount($randomExistance, $randomText) { } } ?>