Z czym kojarzy ci się dobry kod OOP?

0

Jakie jest wasze pierwsze skojarzenie związane z dobrym kodem obiektowym?

Krótkie wypowiedzi proszę;)

Pytanie urodziło się po 7 spotkaniu warszawskiej grupy wzorców projektowych.

1

user image

;-) [diabel]

0

Taki, że jak się go przeczyta, to od razu wiadomo o co chodzi :-)

0

Z użyciem polimorfizmu zamiast gigantycznych switchow.
A tak mniej intuicyjnie to czy kod jest dobry pod wzgledem OOP da się zmierzyć metrykami obiektowymi.

0

Pierwsze skojarzenie - rzucam okiem na grupe klas i wiem mniej wiecej za co ta grupa odpowiada i czego sie po niej spodziewac (ogolnie oczywiscie, ale jednak). W super przypadkach od razu widze kilka wzorcow i moge wywnioskowac po co byly.

0

"Nie pobieraj danych od obiektu żeby coś na nich zrobić, tylko każ obiektowi to zrobić".

0

KISS & DRY :P
z tym ze najpierw KISS pozniej DRY :P

0

W przypadku bibliotek użytkowych - brak potrzeby częstego zaglądania w dokumentację.

0

0 makr

0

...kiedy modyfikacja programu będzie polegała tylko na dopisywaniu nowego kodu, a nie modyfikacji bieżącego

0

..i nie trzeba bedzie w tym celu dopisac 'kawaleczka' wielkosci 3x calosci dotychczasowego projektu

0

Istnienie spojnej dokumentacji technicznej; albo jej nie ma, albo jest nie spojna, albo bierze sie dokumentacje klienta i wciska, ze to jest projekt techniczny... Nie da sie zrobic prawidlowej dokumentacji nieprawidlowego projektu (oczywiscie kod jest poprawny, jesli jest z nia zgodny).

0

W przypadku bibliotek użytkowych - brak potrzeby częstego zaglądania w dokumentację.

Nie zgodzę się - to że jakaś biblioteka jest intuicyjna nie znaczy jeszcze, że jest dobrze zaprojektowana obiektowo. Biblioteki ogólnego użytku muszą często rozpatrzeć wiele różnych przypadków co mocno komplikuje kod.
Natomiast ktoś mógł sobie olać te szczególne przypadki i napisać bibliotekę która może być użyta tylko do standardowych problemów. Kod takiej biblioteki będzie prostszy i bardziej intuicyjny, ale to nie znaczy, że dobrze zaprojektowany.

0

Ja używam wskaźnika WTFs/LOC (zwykle proporcjonalny do WTFs/minute, ale lepszy, bo mniej zależny od szybkości sprawdzającego kod). Projekt jest dobry, jeśli dla czytelności zapisu trzeba zmienić jednostkę na WTFs/kLOC.

Np. dla ostatnio odkrytej modyfikacji własnego kodu przez pewnych studentów, którą to wrzuciłem do działu humor*, wskaźnik ten wyniósł 6,0:

  1. użycie wait bez notify
  2. użycie wait zamiast Thread.sleep
  3. użycie czekania do naprawy błędów z synchronizacją
  4. użycie dzielenia modulo i System.currentTimeMillis do uzyskania losowości ;)
  5. użycie magicznej stałej
  6. brak komentarza wyjaśniającego, po co jest ta linijka

*) Jak ktoś nie chce tam zaglądać, to proszę - jeszcze raz:

wait(System.currentTimeMillis() % 10000);

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