Wpis z mikrobloga

@alex-fortune: Ale ja nie chcę tworzyć nowej klasy, która będzie specjalnie do testów. Mówię, że w przypadku który podałeś wcześniej z klasą A i B różnica w teście jest taka:

Kompozycja:

A a = mock(A.class);
B b =
  • Odpowiedz
@Koryntiusz: Ale nie rozumiesz - Ty tlumaczysz to z punktu widzenia Javy, poniewaz tak jak Ci wyzej napisalem, jesteście w stanie generować w runtime klasę, więc można "stworzyć" sobie klasę w ktorej metoda testowana jest sobie normalnie, a reszta pozmieniana, ale to nie wszędzie i zawsze możliwe ( np u mnie w PHPie takie coś by było b. trudne do zaimplementowania )

Btw, nawet Mockito pisze wyraźnie o tym co pokazałeś:

It is now possible to conveniently spy on abstract classes. Note that overusing spies hints at code design smells (see spy(Object)).

Real spies should be used carefully and occasionally, for example when dealing with
  • Odpowiedz
@alex-fortune: Tylko przenosząc go na wszystkie języki rozszerzasz przykład do tego stopnia, że nie można sensownie odpowiedzieć na pytanie. A głupotą jest stosować jedno podejście do wszystkich języków. Nie bez powodu to są różne języki. A jakby nie było pytanie jest pod tagiem #java ;)
  • Odpowiedz
@Koryntiusz: Rozszerzam przykład? Czemu? Patterny związane z pisaniem czystego kodu w paradygmacie obiektowym dotyczą wszystkich języków tegoż paradygmatu. To tak jakby mówić, że po co używać constructor injection w Javie, skoro można dać annotację @Inject na pole i będzie "okej". Działać będzie, ale co z tego, skoro mało to przenośne i eleganckie i z punktu widzenia samego paradygmatu obiektowego nie ma najmniejszego sensu i działa tylko dlatego, bo można
  • Odpowiedz
@alex-fortune: To dlaczego nie używamy do wszystkiego jednego języka skoro nie powinno się używać ficzerów specyficznych dla danego języka?
Używać spy nie mogę bo nie ma takiego machanizmu w PHP to może w ogóle powinniśmy zrezygnować z refleksji, aop i proxy w javie bo nie ma tego w PHP? Nic, że takie rzeczy jak Hibernate, Spring czy Mockito się bez tego nie obejdą ;)
  • Odpowiedz
To dlaczego nie używamy do wszystkiego jednego języka skoro nie powinno się używać ficzerów specyficznych dla danego języka?


@Koryntiusz: ponieważ jest milion innych rzeczy niż sam język, chociazby jego platforma uruchomieniowa, poza tym są rozwijane przez kogoś innego, więc często po prostu jest interes w tym aby rozwijać własny język.

Używać spy nie mogę bo nie ma takiego machanizmu w PHP to może w ogóle powinniśmy zrezygnować z refleksji, aop
  • Odpowiedz
Może teraz Cię te ficzery jarają i stwierdzasz, że czemu tego nie używać jak jest, ale może kiedyś z czasem docenisz piękno prostoty i redukcji do najprostszej postaci, takiej, którą mógłbyś na żywca przenieść 1:1 na inny język i zachowałaby tą samą wartość.


@alex-fortune: Wszyscy Ci programiści co robią Springa, Hibernate i Mockito to widocznie debile którzy nie potrafią zrobić najprostszych rzeczy, które można wprost przenieść na inny język ;)
  • Odpowiedz
Wszyscy Ci programiści co robią Springa, Hibernate i Mockito to widocznie debile którzy nie potrafią zrobić najprostszych rzeczy, które można wprost przenieść na inny język ;)


@Koryntiusz: no mniejwiecej tak uważam i nie tylko ja :) zamknięci w jednym srodowisku za pomocą niszowych rozwiązań, które gdziekolwiek inaczej uważane byłyby za ciulowe hacki - myślę, że nie skłamię jeśli powiem, że javowcy to teraz, z jakościowego punktu widzenia, najgorszy ekosystem jaki
  • Odpowiedz
myślę, że nie skłamię jeśli powiem, że javowcy to teraz, z jakościowego punktu widzenia, najgorszy ekosystem jaki jest z języków OOP


@alex-fortune: Pewnie właśnie dlatego jest jednym z najpopularniejszy języków...
Masz jakieś sensowne analizy w temacie czy po prostu od dłuższego czasu piszesz w czymś innym i tak sobie śmiejesz się z innych języków?

No bo sorry, ale teraz my gadamy o tym czy lepiej jest zrobić nową klasę i wstrzyknąć jako parametr vs generacja klasy w runtime ( czyli analiza kodu, skopiowanie całej oryginalnej logiki, wybałuszenie metod które są podmieniane ...
  • Odpowiedz
Pewnie właśnie dlatego jest jednym z najpopularniejszy języków...

Masz jakieś sensowne analizy w temacie czy po prostu od dłuższego czasu piszesz w czymś innym i tak sobie śmiejesz się z innych języków?


@Koryntiusz: przecież Ci temat zaanalizowałem wyżej xD

Dobra, poddaje się, no ile można xD ty po prostu nie widzisz żadnej wartości w używaniu natywnych konstrukcji języka i stąd cały problem. Jesteś - z tego co widzę - jednym
  • Odpowiedz