Przetłumaczenie nazwy metody na angielski

0

Jak byście nazwali metodę, która pobiera identyfikatory użytkowników mogących zrobić X? Coś w stylu GetIdsOfUsersThatCanDoX byłoby ok? Mam problem z tym, kiedy użyć liczby pojedynczej a kiedy mnogiej. I w ogóle może można jakoś prościej nazwać tę metodę?

0

Niech serwis będzie miało w nazwie X a metoda niech nazywa się GetUsers

1

To pewnie zależy w jakiej klasie jest taka metoda.

0

Może w sumie za bardzo patrzę na nazwy metod pod kątem typów zwrotnych, ale metoda IEnumerable<int> GetUsers() zwracająca idki jakoś mi dziwnie wygląda :/

0

A czy jest możliwe zastosowanie jakiejś konwencji? Czy w danej klasie, w danym module, w danym projekcie, w danym języku programowania/technologii są jakieś konwencje, co do których podejrzewałbyś, że mają zastosowanie do nazwy tej metody?

2

Wydaje mi się, że taka metoda narusza zasadę mówiącą, że funkcja powinna robić jedną konkretną rzecz. Tutaj mamy do czynienia z trzema czynnościami — wybraniem użytkowników według wzorca, implementacji konkretnego wzorca i pobrania ID użytkownika. Jak dla mnie, należy zacząć od metody selectUsers, która pobiera funkcję testującą w parametrze; funkcja ta zwraca listę obiektów użytkownika, z których można pobrać ID. W pseudokodzie to będzie tak:

base.selectUsers(user -> user.canDo(x)).map(user -> user.getId());
0

Hmm, ale ze względów wydajnościowych chyba trzeba czasami tę zasadę SRP złamać. selectUsers(user -> user.canDo(x)) wygląda, jakbyśmy pobierali z bazy danych wszystkie encje i potem na każdej encji wywoływali metodę filtrującą. No chyba, że jakieś języki mają biblioteki umożliwiające translację czegoś takiego na SQL.

I wiem, że pobieranie samych idków zamiast pełnych encji często nie ma sensu, ale pytam o kwestie językowe :P

4

IEnumerable<UserId> findCertificateSigners(...)

findDocumentAuthors(...)
itp.
To, że to user, czy userid to możesz mieć w typie. Wiec nie trzeba powtarzać i podkreślać.

1

No własnie, wystarczy że zwrócisz np. Traversable<userid> i będzie wiadomo że to id usera a nie User ;)

0

@nobody01: To już zależy od języka i stopnia optymalizacji, który chcesz zastosować. W Common Lispie masz makra, dzięki czemu możesz przetłumaczyć daną składnię na SQL w czasie kompilacji. W Javie, trzeba by chyba konstruować takie zapytania w czasie działania programu. Tylko kto używa Javy jeśli tak zależy mu na wydajności? Kto w ogóle potrzebuje takich optymalizacji w dzisiejszych czasach?

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