Wpis z mikrobloga

@rekoj: w innych językach dalej się tak robi :P
Patent z mapą nie jest taki zły, o ile klucz jest enumeratorem lub stałą z jednego miejsca (więc można w IDE dać find usages). Camel głównie w ten sposób działa (Exchange to worek z dwoma mapami, headers i properties).
@globalbus: nie patrzyłbym na biblioteki apache jako wzór czystego kodu. Robilem w cxf i tam cokolwiek znaleźć to powodzenia, jedynie pozostaje grzebac w kodzie zrodlowym ktory wyglada jak gowno, no i oczywiscie tez wszystko opearte na mapach tyle ze nawet bez generyk. I mowie tu o wersji 3.x
@PoteznyMagWody: znajdowanie czegokolwiek tam jest kijowe głównie dlatego, że to jest message oriented architecture i przepływ pomiędzy komponentami nie jest oczywisty. A że CXF nie ma praktycznie dokumentacji, to zupełnie odrębna kwestia. Ma za to jedną ważną zaletę - zapierdziela.
@kriemann: a co do tego nie mam wątpliwości. Choć widziałem użycie, głównie do czegoś co obsługuje "generyczne jsony/yamle". Pod spodem to właśnie zagnieżdżone mapy. Jak już ktoś się decyduje na takie brzydactwa, to już lepiej w groovy to napisać.
Camel głównie w ten sposób działa (Exchange to worek z dwoma mapami, headers i properties).


@globalbus: a to imo zły przykład. Camel tak mocno ingeruje w bazę kodową, że zamiast uproszczonej integracji dostajemy upośledzony meta język, w którym system typów opiera się o stringi. Do małych rzeczy spoko, ale prędzej czy później kod się rozrasta, dochodzi coraz więcej logiki i z Javy robi się bash.
Choć widziałem użycie, głównie do czegoś co obsługuje "generyczne jsony/yamle". Pod spodem to właśnie zagnieżdżone mapy. Jak już ktoś się decyduje na takie brzydactwa, to już lepiej w groovy to napisać.


@globalbus: to jest akurat fajny przykład, gdzie takie coś się przydaje. Jakieś małe modyfikacje jsona czy yamla robi się dużo prościej w pythonie, bo te formaty bardzo dobrze mapują się na typowanie dynamiczne
@Saly: Ja camela używam tylko w wersji Java DSL, gdzie takie konstrukcje są ograniczone do minimum (w zasadzie jedyny string, z którego się korzysta, to removeHeaders("*")). Camel w XML to zło.
@Saly: a to tak, to są klasyczne problemy dynamicznego typowania, czyli przeniesienie błędów kompilacji do runtime. Receptę znam jedną, enumeratory i stałe. Plus trzeba sobie wypracować konwencję w ramach projektu. Takie podejście daje radę.