Wpis z mikrobloga

Mireczki, natknąłem się kiedyś na stronę, na której autor przedstawiał bardzo rygorystyczne zasady programowania obiektowego. Coś w stylu: metody nie mogą mieć więcej niż 10 linii, klasy mają mieć maksymalnie 5 memberów i 10 metod itp. To było chyba coś całkiem znanego, bo pamiętam, że wiele osób komentowało ten zbiór zasad jako fajne ćwiczenie. Jest ktoś w stanie poratować linkiem?

#programowanie #oop
  • 6
  • Odpowiedz
@MQs: wielkie dzięki, tego właśnie szukałem!

@MacDada: kolego, czytaj proszę ze zrozumieniem i nie zarzucaj mi pisania bzdur. Nie stwierdziłem nigdzie, że w OOP istotne jest trzymanie się zasady nieprzekraczania N linii, tylko że szukam pewnego konkretnego zbioru reguł, który, z tego co pamiętałem, skupiał się właśnie na kwestiach technicznych. Gdyby chodziło mi o SOLID, to nie pytałbym o to na Wykopie, bo nie programuję od wczoraj tylko od ponad
  • Odpowiedz
@informatyk: Ja mogę tylko zgadywać co szukasz. Ale twierdzenie, że metoda musi mieć max 10 linii albo 5 pól, to IMHO słabe podejście do tematu. Może to być pewna wskazówka, ale na pewno nie „zasada” projektowania obiektowego.
  • Odpowiedz
@MacDada: ja myślę, że taka "obiektowa kalistenika" to właśnie fajne ćwiczenie, w które po prostu można się czasami pobawić. Wiadomo, że tak naprawdę nikt nie pisze oprogramowania, rygorystycznie trzymając się tego, żeby robić maksymalnie jedno wcięcie w każdej metodzie, nie stawiać nie więcej niż jedną kropkę w linii i tworzyć klasy z max. 50 liniami, ale nie osądzałbym, że organizowanie sobie ćwiczeń opartych na takich technicznych zasadach jest z gruntu złe
  • Odpowiedz
@informatyk: 100% zgody. Też stosuję takie podejście. Moja krytyka wynikła ze słowa „zasada” w ramach projektowania obiektowego.

Bo czy jedno wcięcie jest dobre tylko dla OOP? Kupę kodu produkuję proceduralnego, a jednak zawsze staram się zastosować tę regułę. IMHO jest ona uniwersalna.

Z kolei jak myślę o OOP, to raczej mam na myśli właśnie SOLID, Law of Demeter czy DDD.

BTW, od jakiegoś czasu (2 lata z przerwami), odnośnie nowego kodu,
  • Odpowiedz