Użytkownik czy użytkownicy? Jak nazywać klasy – moje doświadczenia.

Dobra nazwa

Szukałem porad w sprawie trudnej czynności jaką jest nazywanie .NET DEVELOPERS POLAND – facebook Co prawda w innym temacie, ale warto przeczytać aby uświadomić sobie jaka to ciężka praca. Także człowiek szuka i myśli i próbuje.

Próby

W ramach swoich poszukiwań i eksperymentowania z tworzeniem najlepszego i najczystszego kodu, najlepiej nazwanego i cacy. Dotarłem do takiej sytuacji, gdzie chciałem posiadać osobne klasy (kontrolery, serwisy, repo, co tam jeszcze) które rozróżniały operacja na pojedynczych obiektach lub na kolekcjach obiektów. Tworzyłem osobne klasy dla UserOperation jak i UsersOperation, ChannelService i ChannelsService. Koncepcja jak papier wszystko przyjmie. Niestety dosyć szybko zaczęło to boleć, bolało nawet dwa razy podobnie jak ostra papryczka.

Auć

Pierwszy raz, gdy tworzyłem kod i musiałem się długo zastanawiać, czy to operacja grupowa czy pojedyncza.
Drugi raz gdy szukałem metody, R# trochę ułatwia bo znajduje metody w każdej klasie. Zdarzało się jednak, że w czasie przeszłym (t0) miałem inną wiedzę niż w teraźniejszym (t1) i kod lądował w innym miejscu niż umieściłbym go teraz.
Dodatkowo problem pojawiał się, gdy jakaś klasa nadrzędna z jakiegoś powodu potrzebowała mieć dostęp do obu serwisów, tego multi i tego solo. Jeszcze innymi czasami, musiałem albo musiałbym linkować akcję z jednego do drugiego (mowa o kontrolerach). Aby tego uniknąć musiał przyznać się do błędu. Czyli gorzej niż ostra papryczka bo nawet trzy mogło boleć.

Źle to wyszło

Pomyliłem się. Idea rozdzielania odpowiedzialności klas ze względu na liczebność nie spełnia się i wprowadza nie potrzebne zamieszanie w kodzie. Nie warto tworzyć osobnych bytów dla obsługi pojedynczego użytkownika lub grupy użytkowników. Lub ja nie potrafię tego poprawnie stworzyć.

Nauka

Po zmianach i połączeniu klas z liczbą pojedyncza i mnogą mój kod jest czytelniejszy, a co za tym idzie prostszy w przeglądaniu i utrzymaniu.
Tyle. Uczcie się na błędach. Trzeba eksperymentować, trzeba próbować. Cieszę się, że spróbowałem. Cieszę się także, że wyszło to tak szybko i na tak mały projekcie jak ITAN. Dużo gorzej wyglądała by sytuacja gdybym postanowił czegoś takiego spróbować w pracy i namówił cały zespół na to. Dużo więcej kodu, dużo więcej czasu poświęconego początkowo na rozdzielanie kodu pomiędzy multi-solo, później na szukanie a ostatecznie na łączenie tych odpowiedzialności.

Zmiany są już na repo (https://github.com/jstadnicki/isthereanynews), także można śmiało zerknąć i porównać kod 😉

5 thoughts on “Użytkownik czy użytkownicy? Jak nazywać klasy – moje doświadczenia.

  1. Rozdzielania odpowiedzialności klas ze względu na liczebność… Bardziej poszedłbym w kierunku serwisu, który odpowiada za poszczególne akcje i przyjmuje co najmniej jednego użytkownika jako argument. DoWork(ICollection users>() …

  2. Pingback: dotnetomaniak.pl

Dodaj komentarz