wtorek, 12 sierpnia 2008

Interejs vs klasa abstrakcyjna

Co jest lepsze? Ostatnio kolega z pracy chce namówić całą resztę do przyjęcia "jedynego słusznego rozwiązania" ;) Nie mam zamiaru się rozwodzić nad podejściem kolegi ani jego zamiarami, argumentami że jedno rozwiązanie (interejs) nie ma kodu i jest puste a do klasy abstrakcyjnej zawsze coś można dodać i innymi argumentami za lub przeciw jednemu lub drugiemu np:
  • architektura rozwiązania obiektowego-diagramy klas,
  • ograniczenia C# - dziedziczenie jednej klasy,
  • ograniczenia biednych skrótów w Visual Studio(to też padło a jakże by inaczej:P - Go to Definition/Declaration)
  • i wiele innych mniej lub bardziej słusznych (bezsensownych)...
Sam problem zaczyna mi przypominać o to który sposób (jedyny słuszny) iterowania wybrać(while do, do while, for, foreach)? Czy warto na to tracić czas? Czy może lepiej wyłapać takie kwiatki(że można niepotrzebny kod wyciąć) podczas code rewiev? Abstrachując od tego że kolega jest dość intelignetny, skromny i stara się każdą swoją linijkę idealnie wpasować w kod.

Zastanawiałem się nad tym na własnym przykładzie i myśle że czasami jestem jak kowal który codziennie hartuje młotki, miecze, podkowy, ...etc i sposób w jaki to robi po prostu wychodzi z niego naturalnie - widzi przed sobą idealnie zrobiony miecz a nie to ile razy w niego będzie walił lub jakiego dokładnie młotka użyje (przy waleniu:P)? Będzie walił tyle razy i takimi narzędziami jakimi uzna za stosowne aby osiągnąć idealny miecz i ani raza więcej.

P.S. W poprzedniej firmie przyszedł do nas praktykant z jednej z dużych krakowskich firm, odszedł z tej firmy bo, miał dość podejścia w którym na spotkaniach poświeconych designie architektury przyszłej aplikacji przez wiele godzin strony nie mogły dojść do konsensusu czy używać klas abstrakcyjnych czy interfejsów w UMLu.

Brak komentarzy: