@Yakooo: zazwyczaj to antypattern, bo strasznie psuje kod. Czasami ma sens w przypadku niefunkcjonalnych ficzerów jak jakieś metryki czy np. globalne cachowanie ale nawet w takich przypadkach powinno się ich unikać.
@Yakooo: Nigdy nie spotkałem się z sensownym argumentem przeciwko singletonowi. Zazwyczaj chodzi o to że jest jednym z najbardziej rozpowszechnionym i bezmyślnie nadużywanym wzorcem który usprawiedliwia i zastępuje początkującym zmienne globalne. W małych projektach zawsze mam jakiegoś singletona, jest wygodny :) Czekam na hate.
@omnipotentmasterofnone: Koronnym argumentem jest niemożliwość/trudność testowania tego guana. Poza tym, w aplikacjach mocniej stawiających na lokalny stan (apki desktopowe, mobilne itp.) jest bardzo często używany. Ale tak jak napisałem wyżej... w formie IoC przez DI.
@Noxon: Testy są akceptowanym agrumentem, jeśli jesteś zmuszony do ich pisania :) Pracuje w branży gdzie testy praktycznie nie występują ze względu na burzliwy proces tworzenia i bardzo niski code coverage. Jestem ateista ale Bogu dziękuję że nie muszę pisać testów, najgorsza robota ever.
Pracuje w branży gdzie testy praktycznie nie występują ze względu na burzliwy proces tworzenia i bardzo niski code coverage. Jestem ateista ale Bogu dziękuję że nie muszę pisać testów, najgorsza robota ever.
@omnipotentmasterofnone: jak masz testy to zmieniasz linijkę, puszczasz testy i robisz PR. Jak nie masz testów to zmieniasz linijkę, testujesz wszystkie ficzery przez parę godzin ręcznie i robisz PR. Brak testów przyśpiesza development w danej chwili, ale im dalej
@Saly: No jak masz 100% pokrycie kodu to to ma sens, wiem po co się tworzy testy. Osobiście nie spotkałem się z testami w gamedevie, ewentualnie po stronie serverowej jeśli taka istnieje. Niestety testy sprawdzaja się najlepiej w logice biznesowej, dla nas jest manualne testowanie i crawlery. Może by mi się udało napisać testy dla kilku % kodu który i tak nie sprawia kłopotów.
Singleton to wzorzec czy antywzorzec? ( ͡° ͜ʖ ͡°)
Ale kontenery DI już od dawna ładnie je ogarniają w inny sposób.
Zazwyczaj chodzi o to że jest jednym z najbardziej rozpowszechnionym i bezmyślnie nadużywanym wzorcem który usprawiedliwia i zastępuje początkującym zmienne globalne.
W małych projektach zawsze mam jakiegoś singletona, jest wygodny :) Czekam na hate.
Pracuje w branży gdzie testy praktycznie nie występują ze względu na burzliwy proces tworzenia i bardzo niski code coverage. Jestem ateista ale Bogu dziękuję że nie muszę pisać testów, najgorsza robota ever.
@omnipotentmasterofnone: jak masz testy to zmieniasz linijkę, puszczasz testy i robisz PR. Jak nie masz testów to zmieniasz linijkę, testujesz wszystkie ficzery przez parę godzin ręcznie i robisz PR. Brak testów przyśpiesza development w danej chwili, ale im dalej
Singleton ma sens w momencie, gdy coś, co ma obsługiwać owy singleton faktycznie wymaga scope globalnego i nie opłaca się go wszędzie przekazywać.
W programowaniu funkcyjnym to singleton odpowiadałby za jedyny "dopuszczalny"/tolerowany punkt, na którym można wykonywać "skutki uboczne".
Np. jeżeli piszesz firmware do obsługi jednego peryferium po globalnie-jednej szynie I2C, to wtedy użyjesz singletona.
To samo możesz
Komentarz usunięty przez autora
Niestety testy sprawdzaja się najlepiej w logice biznesowej, dla nas jest manualne testowanie i crawlery. Może by mi się udało napisać testy dla kilku % kodu który i tak nie sprawia kłopotów.