![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 107 Pomógł: 9 Dołączył: 16.02.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Czy używacie funkcji własnych funkcji globalnych wewnątrz klas? Chodzi mi o typowe funkcjie pomocnicze (helper functions), które dokonują jakiś obliczeń czy robią transformacje na ciągach znaków. Są małe, ogólne i zupełnie niezwiązane z logiką biznesową czy modułami programu.
Minusem tych funkcji jest to że uniemożliwiają testowanie (mockowanie) klas podobnie jak funkcje statyczne. (Jest jakieś dobry polski zamiennik na "mock")? Plusem jest to, że są zawsze dostępne - nie wymagają tworzenia obiektu i przekazywania za pomocą dependency injection. Jak rozwiązujecie ten problem? Bez funkcji globalnych tylko zawsze jako metody przypisane do konkretnej klasy? Czy może jednak funkcje globalne ale tylko w projektach dla których nie są wykonywane testy jednostkowe? -------------------- Wszystko należy robić najprościej jak się da, ale nie prościej
Albert Einstein |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat W jaki sposób jest dostępna defaultowo? - najczęściej jest zaimplementowana w odpowiedniej warstwie abstrakcji, np. ControllerAbstract ma metodę redirect.Cytat Czy to się robi za pomocą Data Object Container? - w ten sposób pobieramy zależności "na życzenie" i tak, zauważyłem, że kontener zależności ładowanych w sposób "lazy" to dziś pewien standard. Jednak używanie wszędzie w kodzie:- zalatuje lekko globalem. Znów tworzymy jakieś zależności pozaszywane w kodzie. Lepiej uszyć getry/swetry a jeszcze lepiej przez konstruktor - wtedy od razu widać, jakich zależności potrzebujemy. Cytat Czy czasem w klasie nie robi się zbyt dużo tych wstrzyknięć? - robi, ale to jest już kwestia trzymania porządku w kodzie. Jeśli klasa się rozrasta to z pomocą przychodzi nam fasada i podzielenie tego na pod-serwisy, problem jest taki, że nikomu nie chce się tego robić bo poza uporządkowaniem kodu nie ma z tego żadnego zysku biznesowego ![]() Bardzo istotne też jest, czy piszemy testy jednostkowe - jeśli tak, to już to wymusza zupełnie inne podejście do architektury kodu. Tylko w ilu firmach preferuje się takie podejście ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 22:02 |