Ludzie lubią ułatwiać sobie życie. Programiści to też podobno ludzie ;) dlatego pewnie postępują podobnie. Czasem z lenistwa, innym razem z własnych nieprzymuszonych chęci. Branża IT nieustannie się rozwija. Powstają takie wspaniałości jak wstrzykiwanie zależności;) Warto było by i w rodzinie Rx-owatych dostawać to co się chce i kiedy się chce.
W ostatnim poście wyzwania poruszę ponownie tematykę związaną z testowanie. Dzisiaj wejdziemy jeszcze głębiej i przetestujemy dokładniej co się dzieje w trakcie odbierania danych od dystrybutora. Zapraszam do absorbowania treści.
Dzisiaj postanowiłem kontynuować wczorajszą tematykę. Czyli testowanie. W przypadku Rx-ów nie jest to takie proste. Ze względu na potrzebę kontroli nad procesem publikowania danych na strumień.
Wszystko super i fajnie ale gdzie są testy? Co zrobić by przetestować taki strumień zasilany przez Observable.Interval? Przecież testy będą trwały wieczność... Jest na to rada: przeczytaj post do końca;). Ale na początek warto było by wyposażyć się...
Dzisiejszym bohaterem zostaje ostatnia para Transformers-ów. Są oni ze sobą ściśle powiązani. Można śmiało powiedzieć, żę występują między nimi relacje rodzinne. Rodzic i dziecko. Zapraszam do dalszego czytania w celu zgłębienia tajemnic rodzinnych;).
Jeżeli lubisz sobie porzucać przedmiotami? Albo pobawić się w magika zamieniając chusteczki w gołębie? Ten post jest zdecydowanie dla Ciebie. Jak i w naszym społeczeństwie, tak samo na Cybertron-ie, czasem trzeba czymś cisnąć by wszyscy zrozumieli ideę...
Przyszła pora by troszkę się pobawić Transformers-ami. Autoboty - transformacja... Otwieram tym samym mikro cykl transformacji strumieni prosto z Cybertron-u. Pomijając luźne aluzje, przetwarzanie danych pochodzących od dystrybutorów to...
Dziwny ten kombinator, jak już zostanie odblokowany przez otrzymanie przynajmniej po jednej porcji danych od głównych źródełek. To wówczas już publikuje w raz z taktem najszybszego dystrybutora.
Nie tak dawno przedstawiałem zamek błyskawiczny (Zip). Istnieje jeszcze jedna możliwość pozwalająca na łączenie znacznie więcej w jedną całość. Tak by publikacja danych na połączony strumień odbywała się dopiero gdy dostaniemy wszystkie próbki z źródłowych strumieni.
Swego czasu był taki film gdzie głównie bohaterowie zamieniają się między sobą swoimi zasobami. W przypadku Rx-ów do czynienia mamy z metodą pozwalając przetaczać na inną usługę w przypadku gdy pierwsza zawieszę.
To już dwudziesty raz się spotykamy odnośnie Rx-owatych. Tydzień pomału dobiega końca. Taki i zbliżamy się do zakończenia serii postów dotyczących kombinatorów. Okazuje się, że rozpisałem się bardzo w tej podgrupie. W najgorszym wypadku nie zakończę na 30 postach :).
To już dwudziesty raz się spotykamy odnośnie Rx-owatych. Tydzień pomału dobiega końca. Taki i zbliżamy się do zakończenia serii postów dotyczących kombinatorów. Okazuje się, że rozpisałem się bardzo w tej podgrupie. W najgorszym wypadku nie zakończę na 30 postach :).
Krótko, bardzo krótko dzisiaj. A wszystko przez nadchodzące devwarsztaty.pl. Będę debiutował. Stres, strach przed oczami... Bla bla bla pora trochę napisać o Rx tak mało ostatnio poruszałem ten temat na tym blogu;) Dzisiaj kolejny operator związany z kombinowaniem. Zapraszam!
Dzisiaj kolejny operatorek pozwalający na kombinowanie ze strumieniami. Tym razem taki co to potrafi się wepchnąć do kolejki i być na początku. Jak to i w życiu bywa co nie jest odpowiednim zachowanie. Jednak w przypadku programowania z wykorzystaniem Rx-ów jak najbardziej.
Dzisiaj ponownie poruszymy temat kombinowania na strumieniach. Tym razem posłużymy się operatorem Repeat. Jak sama nazwa wskazuję będziemy się powtarzać :). Operatory są dość proste co nie znaczy, że nie są potężnym narzędziem w całej rodzinie Rx-ów.
Dzisiejszy post, tak jak i kilka następnych będzie dotyczył kombinowania. Będziemy korzystać z wielu strumieni publikujących dane tego samego typu do łączenia ich w jedną całość. I dopiero wówczas będzie można...
Dzisiejszy post jest szczególny, gdyż to 15 post składający się na wyzwanie jakie podjąłem. Półmetek jest. Wiele pracy już zostało włożone, jeszcze więcej przede mną. Dziękuję wszystkim czytelnikom, i mam nadzieję, że udało mi się komuś pomóc.
Krakałem, krakałem o pechu i wykrakałem. Miało być tak szybko z drugim marudą, a tu się pojawiły problemy jakich wcześniej nie przewidziałem. Otóż drugi maruda działa na innej zasadzie. Marudzi ale przy braniu. I tutaj pojawił się problem. Bierzemy pierwsze kilka publikacji na strumień.
Po wczorajszym sowitym poście, dzisiaj trochę przystopujemy. Będzie krócej. Poruszymy tematykę marudzenia ;). Marudzić można na dwa sposoby. Albo że się coś chcę albo nie! Na początek pomarudzimy że czegoś nie chcemy, zapraszam!
Z okazji Walentynek dzisiaj pojawi się głównie w kodzie coś ekstra. Zapraszam do kompilacji i obserwacji. Natomiast post poświęcony będzie budowaniu własnej klasy publikującej dane. W tym celu idąc krok dalej stworzyłem bibliotekę RXlib z jakiej będziemy jeszcze korzystać.
Dzisiaj poznamy coś nowego, jednak skorzystamy z czegoś starego. Jako inicjatory generowania danych będziemy korzystać jeszcze wielokrotnie z Timer-ów. Bardzo dobrze sprawdzają się jako taki niewolnik, który będzie robił co mu karzemy. "Daj mi tyle i tyle co tyle".
To już ostatni post z rodziny timer-owatych. Omówione zostaną dwa proste operatory. Ale co ważniejsze, zaimplementujemy kolejne dwa własne. Rx oparty jest o rozszerzone metody, dlatego bardzo łatwo jest dodać kolejne potrzebne "stworki".
Jazda z koksem... Dzisiaj poruszymy tematykę - kolejnego operatora związanego z czasem. Hurra... Znowu. To jednak już przed ostatnia część związana z czasem... Zapraszam ponownie do krainy reaktywnej magii.
Zapewne każdy naukowiec lubi się bawić próbkami. Jako programista także jestem naukowce. Testuję, próbuje. Eksperymentuje cały czas z nowymi IT-wynalazkami. Takie życie, takie hobby...
Dzisiaj na tapetę coś prostego. Bazując na operatorze Interval. Złapiemy ogon niczym w filmach szpiegowskich. A nawet wiele...
Dużo tych operatorów na klasie Observable powiązanych z czasem można znaleźć w bibliotece Rx-ów. Dzisiaj zajmiemy się dość ciekawym tworem, dzięki któremu możemy operować strumieniami niczym światłami drogowymi...
Po uporządkowaniu pewnych kolejnych spraw. Pora na kolejny obiekt, jaki możemy obserwować. Wchodzący w skład timerów. Tym razem chodzi o uproszczoną wersje Observable.Timer...
Trochę czasu już upłynęło... Warto by było przyswoić pewne dodatkowe informacje procesie zapisu na strumienie. Przykłady przedstawione do tej pory w postach są bardzo uproszczone. var observableTimer = Observable.Timer(_dueTime, _period, scheduler);
A jak funkcjonują ten cały mechanizm obserwowanego i obserwatora? Przecież muszą być obrabiane w pocie czoła przez nasze wspaniałe CPU. Magia dzieje się poza naszym polem widzenia. Biblioteka Rx udostępnia mechanizm harmonogramu.
Wielokrotnie w swoim życiu stosowałem dwojakiego rodzaju wyzwalacze w celu cyklicznego wykonywania pewny czynności. Mowa tutaj o wykorzystaniu Timera lub Thread. Pierwszy z nich polega na utworzeniu klasy, która będzie cyklicznie co określony czas wyzwalała event.
Od dawien dawna, tworzenie oprogramowania zwłaszcza związanego z graficznymi interfejsami użytkownika (na potrzeby uproszczenia będę odnosił się właśnie do problemów z GUI). Boryka się z problemem, zacinania...