Smurf naming convention - na pewno antywzorzec?

1

Zgadzacie się z tym, że smurf naming convention to antywzorzec?

  1. Na poziomie metod. Tu rozumiem, że np. nie ma potrzeby pisać userActivator.ActivateUser(userId), bo wystarczy userActivator.Activate(userId), chociaż pewnie znajdą się jakieś wyjątki.
  2. Na poziomie klas. I tu nie rozumiem. Dlaczego w namespacie Entities.Orders lepiej umieścić Item zamiast OrderItem? Dlaczego czytelniejsze ma być new Item(...) zamiast new OrderItem(...)? Albo dlaczego w namespacie Orders.Commands lepiej umieścić Create zamiast CreateOrder i potem robić mediator.Send(new Create(...)) zamiast mediator.Send(new CreateOrder(...))?
3

Myślę, ze zaszliśmy za daleko w "religii wzorcowej" (i powstałej religii antywzorceowej, ale to zawsze tak jest)

Nigdy w zagadnieniach wzorców nie chodziło o ustalenie prawomyślności / nieprawomyślności.
A raczej o radosne (z samo-zaciekawieniem) "hej, pomyśleliście nad tym, że często w branży używamy .... "

Powrót do pana Alexandra etc ...

UPD
Dodał bym, że "wzorce" a "konwencje kodu" to coś innego. Konwencje są związane z ekosystemami języka, mogą być potwierdzone / wycofane / wzmocnione w zasadach projektu / zespołu / firmy, i twoje rozważania tam dobrze należy

1

@nobody01 chyba źle rozumiesz ten antywzorzec, bo nijak się on ma do twoich przykładów. To co pokazałeś to zabawa innym antywzorcem który polega na skracaniu nazw bez sensownej przyczyny ;) Smurf Naming Convention polega na dodawaniu stałego prefixu (np. związanego z nazwą aplikacji albo modułu) wszędzie. Np. Masz aplikacje Smurfer i w tej aplikacji np. klasy SmurferError, SmurferRequestsController, SmurferCośtamService itd. Albo w projekcie masz moduł domain i nagle wszędzie są jakieś DomainError, DomainCośtamService itd.

0

@Shalom: Hmm, faktycznie za daleko poszedłem w tych przykładach. Ale wciąż: powiedzmy że mamy namespace Users, w którym mamy klasę odpowiadającą za aktywację kont użytkowników. Nazwałbyś ją UserActivator czy po prostu Activator?

0

UserActivator oczywiście. Bo możesz mieć też inne aktywatory i generalnie ten prefix jak najbardziej niesie jakąś informacje. Smurf Naming Convention odnosi się do prefixu który jest zbyt ogólny zeby przekazywać jakąkolwiek informacje.

0

@Shalom: Mógłbyś podać jakiś przykład? Taki z realnego projektu najlepiej.

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