![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 24 Dołączył: 21.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Prosze was o sprawdzenie klasy oraz wyrzucenie mi wszystkich błędów co jest nie tak jak być powinno. Jest nie skończona ale wszytsko działa tak jak chciałem.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Powinieneś starać się by nazwa klasy była rzeczownikiem, a nazwy metod czasownikami - kod staje się wtedy znacznie bardziej "naturalny". W chwili obecnej Twój kod (przykładowo: $ac->people(), "klimatyzacja -> ludzie") nie ma żadnego sensu (z puntu widzenia normalnego czytania).
2. Jesteś pewien, że te wszystkie dodatki powinny być stałymi? Jestem niemal pewien, że cześć z tych wartości mogłaby się w przyszłości zmienić. 3. Nie jestem pewien co do sposobu użycia tego kodu, ale wydaje się, że jedynie konstruktor i metoda check() powinny być publiczne. 4. Używasz niezadeklarowanych właściwości obiektu (patrz: north, east). 5. Powinieneś dodać jakieś sprawdzanie poprawności przekazywanych argumentów, np. w konstruktorze (szczególnie gdy w dokumentacji podajesz mixed jako typ argumentu). 6. Nigdy nie używaj jakiś "magicznych" numerków w kodzie (patrz: if ($this->room == 1)). Zamiast nich użyj stałych, znacznie poprawia to cztelność kodu i daje możliwość jego wygodnej dokumentacji. 7. Właściwość room może przyjąć dowolną wartość, a tymczasem Ty zakładasz jedynie pojawienie się wartości 1 lub 2. Powinieneś wyrzucić jakiś wyjątek, gdy próbuje się podać inną. 8. Mimo iż PHP pozwala na zadeklarowanie i zdefiniowanie zmiennej w bloku przykładowo IF-a i późniejsze użycie tej zmiennej poza tym blokiem: Nigdy nie powinieneś tego robić. Zdefiniuj wcześniej tą zmienną: 9. Właściwości north, south, west i east powinny być chyba typu boolean? 10. Metody home() i company() (nieodpowiednie nazwy swoją drogą) wyglądają mi na dokładnie takie same z tą różnicą, że jedna operuje na stałych HOEM_*, a druga na COMPANY_*, racja? Bezproblemu zrobiłbyś z tego jedną metodę z trzecim argumentem przyjmującym obiekt/tablicę (typu wyliczeniowego w PHP niestety nie ma) z tymi stałymi. Generalnie - do całościowego przepisania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 05:24 |