REKLAMA

Programista 02/2016 (45) – CQRS pragmatycznie – spis treści

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.

45

Numer ten do 20 kwietnia znajdziecie też na półkach w salonach Empik.

JĘZYKI PROGRAMOWANIA

C++ != C – problemy, rozwiązania i możliwości. Część 1 (>>więcej o tym artykule<<)

C++ nie jest jedynie C z klasami. Niestety, to, co kiedyś było siłą C++, czyli kompatybilność z językiem C, obecnie stanowi o jego słabości. Artykuł nie omawia standardowych kontenerów, zasad programowania obiektowego, używania klas i polimorfizmu. Skupia się natomiast na elementach, które najtrudniej wyeliminować oraz przyswoić inżynierom korzystającym z nowoczesnego C z klasami.

Dawid Bedła

PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH

Technologia ACPI w kontekście serwerów ARMowych

Dobrze znane i szeroko stosowane energooszczędne procesory ARM zaczynają wychodzić poza ramy zastosowań, których byliśmy świadkami. Dotychczas dominowały w urządzeniach mobilnych, przemysłowych oraz wysoce specjalizowanych i zintegrowanych układach, gdzie niski pobór prądu pozwolił osiągnąć spółce z Cambridge wielki sukces. To właśnie łatka eko-architektury sprawia, że ARM zaczyna być poważnym graczem także na rynku serwerów, które obecnie wykorzystywane są na szeroką skalę w centrach obliczeniowych. Jednostkowy zysk energetyczny przekłada się na niemałe oszczędności w makro skali serwerowej farmy. Wiele firm, mających długoletnie doświadczenie w projektowaniu ARMowych systemów, próbuje ugryźć kawałek tortu, który do tej pory należał do firmy Intel, procesorowego giganta i monopolisty rynku serwerowego.

Tomasz Nowicki

Budowa aplikacji .NET wykorzystującej system Microsoft Dynamics CRM jako repozytorium danych

Microsoft Dynamics CRM jest systemem służącym do zarządzania relacjami z klientami (Customer Relationship Management), stworzonym przez naszą ulubioną firmę z Redmond. W artykule tym postaram się przybliżyć czytelnikom ideę tworzenia oprogramowania w oparciu o ww. platformę, a także zaprezentować przykładową aplikację .NET, integrującą się z nią za pomocą udostępnionych interfejsów.

Piotr Gaszewski

PROGRAMOWANIE W CHMURZE

Algorytmy w chmurach. Część 2: SWIM

Co wspólnego mają ze sobą gry MMO (ang. massive multi-player online), sieci wymiany plików BitTorrent, rozproszone bazy danych oraz aplikacje typu SaaS (ang. Software As A Service) działające w chmurze, takie jak np. dokumenty online? Ciężko odpowiedzieć na takie pytanie bez porównania konkretnych produktów, jednak niezależnie od ich implementacji muszą one sobie radzić m.in. z wielką liczbą węzłów/użytkowników łączących się za pomocą sieci Internet, losowo się dołączających, jak i odłączających od rozgrywek, czatów, zasobów itp. Innymi słowy, systemy te zarządzać muszą listą „uczestników” grupy, informując przy tym każdego jej członka o pojawieniu się, odejściu oraz ewentualnej awarii innych węzłów.

Sławomir Zborowski

PROGRAMOWANIE RÓWNOLEGŁE I ROZPROSZONE

RabbitMQ – otwarty system pośredniczący w wymianie wiadomości w środowisku rozproszonym (>>więcej o tym artykule<<)

RabbitMQ jest czymś w rodzaju firmy pocztowej, która jest organizacją złożoną nie tylko z placówek pocztowych, ale i całej infrastruktury służącej do przekazywania wiadomości z jednego miejsca na drugie, od nadawcy do odbiorcy. W RabbitMQ nadawca zwany jest producentem (ang. producer), odbiorca konsumentem (ang. consumer), a wspomniana firma pocztowa to w dużym uproszczeniu kolejka wiadomości (ang. message queue). Wiadomości są przesyłane w środowisku rozproszonym, co oznacza, że „nasza firma pocztowa” będzie odpowiedzialna za dostarczanie pakietów danych pomiędzy różnymi aplikacjami, często złożonymi systemami.

Tomasz Kuter

INŻYNIERIA OPROGRAMOWANIA

CQRS pragmatycznie (>>więcej o tym artykule<<)

CQRS – Command Query Responsibility Segregation – to bardzo popularny temat wśród programistów od ładnych kilku lat. Wokół niego urosło tyle dodatkowych pojęć i zależności, że aktualnie ciężko jest zacząć zgłębiać to zagadnienie. W artykule przedstawię, czym naprawdę jest CQRS i jak to „ugryźć”. Przykłady kodu napisane są w C#, jednak powinny być zrozumiałe dla programistów każdego języka.

Maciej Aniserowicz

TESTOWANIE I ZARZĄDZANIA JAKOŚCIĄ

Pomiar efektywności chmur obliczeniowych jako sposób na optymalizację wykorzystania zasobów

Popularność i dojrzałość rozwiązań chmurowych sprawia, że obecnie coraz więcej nowo powstających platform i serwisów korzysta z gotowych rozwiązań, oferowanych przez dostawców usług na poziomie IaaS/PaaS/SaaS. Czy jednak wykorzystanie usług chmurowych zawsze oznacza wysoką wydajność i niezawodność? Czym się kierować przy wyborze odpowiedniego dostawcy? Czy istnieje sposób na obniżenie kosztów utrzymania wirtualnej infrastruktury? Jak świadomie podjąć decyzję dotyczącą strategii rozwoju działu IT w obszarze outsourcingu usług w chmurze?

Mariusz Zyśk

PYTHON HAS POWER

Python 3 i biblioteka asyncio

Kiedy stajemy przed koniecznością napisania wielozadaniowego programu, pierwsza myśl to wątki, a druga to typowe dla programów wielowątkowych problemy. Jeśli zadania spędzają większość czasu w oczekiwaniu na operacje wejścia- wyjścia, to możemy znacznie uprościć skrypt, korzystając właśnie z paczki asyncio. Od wersji 3.4 Python posiada ją w swojej bibliotece standardowej.

Paweł Lis

BEZPIECZEŃSTWO

DoS przez wyrażenia regularne

Amerykański programista, Jamie Zawinski, napisał kiedyś słynne słowa o wyrażeniach regularnych: „Niektórzy ludzie, gdy napotykają na problem, myślą sobie: »Wiem! Użyję wyrażeń regularnych«. I teraz mają dwa problemy”. W tym artykule przekonamy się, jak prawdziwe są to słowa, jeżeli wyrażenie regularne zostało napisane w sposób niewłaściwy, umożliwiając tym samym przeprowadzenie ataku Denial-of-Service na aplikację.

Michał Bentkowski

PRAWO

Dlaczego ocena zgodności projektu rozwiązania informatycznego jest ważna?

Ocena zgodności (ang. compliance) powinna zawsze poprzedzać wprowadzenie rozwiązania informatycznego na rynek. Najlepiej, by była wykonywana na etapie projektowania czy jeszcze w fazie koncepcyjnej. Wtedy ewentualne zmiany są najbardziej optymalne do wprowadzenia. Wiążą się z najmniejszymi kosztami.

Beata Marek

PLANETA IT

O układach raz jeszcze

Okazuje się, że czytelnikom magazynu „Programista” leżą na sercu kwestie związane z terminologią programistyczną, czego dowodem są maile, które od czasu do czasu otrzymuję. Poniżej przedstawiam kolejny (podaję nazwisko za zgodą autora) i mój komentarz do niego.

Łukasz Piwko

STREFA CTF

32C3 CTF – aes

32C3 CTF to coroczne zawody organizowane podczas jednej z największych na świecie konferencji dotyczących bezpieczeństwa, na którą w zeszłym roku przyjechało aż 13 tysięcy uczestników. Zawody te cieszą się dużą popularnością z uwagi na ciekawe (a zarazem naprawdę trudne) zadania, świetną organizację oraz termin – są to ostatnie zawody w roku, więc ich wynik może zadecydować o finalnej pozycji drużyny w rankingu CTFtime.org na dany rok.

Michał "Redford" Kowalczyk

KLUB DOBREJ KSIĄŻKI

Efektywny JavaScript. 68 sposobów wykorzystania potęgi języka

Rafał Kocisz

DODATEK SPECJALNY "PRACUJ W IT 2016"

Prenumeratorzy znajda przy tym wydaniu w Panelach Prenumeratora specjalny dodatek.

Pracuj_w_IT_2016-1