REKLAMA

Programista 8/2014 (27) – Wyjątki od kuchni w C++ – spis treści

Zapraszamy do zamówienia magazynu w prenumeracie. Magazyn jest dostępny w formie papierowej, .pdf, .ePUB i .mobi.

>>Formularz zamówienia<<

To wydanie w formacie .ePUB można pobrać bezpłatnie: http://programistamag.pl/wydanie_probne/

BIBLIOTEKI I NARZĘDZIA

Dyspozytor w C++14

Dyspozytor (ang. dispatcher) jest wzorcem służącym do przekazywania otrzymanych wiadomości do kodu je obsługującego. Przychodzące wiadomości są w postaci zserializowanej. Do użytkownika trafić mają w postaci zdeserializowanych obiektów końcowych. Problem nie jest nowy – towarzyszy programistom praktycznie od zawsze. Pojawianie się szkicu standardu C++14 umożliwiło rozwiązanie go w sposób prosty i przenośny. Niniejszy artykuł przedstawia koncepcję implementacji frameworka dyspozytora, przy użyciu możliwie najmniejszej ilości kodu po stronie użytkownika.

Bartosz Szurgot

Tajniki budowy kompilatorów języka C ++
Kompilator Clang od środka

Kompilator Clang z dnia na dzień zdobywa coraz większą popularność wśród programistów języka C++ ze względu na swoją nowoczesną budowę, zestaw dodatkowych narzędzi oraz co najważniejsze – produkowanie kodu wynikowego wydajnościowo przybliżonego lub lepszego od konkurencji. Naturalne wydaje się więc zadanie pytania, jaka jest jego budowa i jak właściwie przebiega proces kompilacji. Artykuł odkrywa przed czytelnikiem ogół tajników działania kompilatorów języka
C++, bazując na projekcie Clang w wersji 3.5.

Sławomir Zborowski

Projektowanie komponentów wizualnych
Część 3: Przewijanie obszaru roboczego

Często spotykaną funkcjonalnością niestandardowych komponentów jest możliwość podglądu fragmentu pewnego większego obszaru. Może nim być część mapy, obrazu albo wirtualnego obszaru roboczego. Wiele standardowych komponentów również funkcjonuje na podobnej zasadzie – choćby pole listy: wyobrażamy sobie, że elementów jest bardzo dużo, a użytkownik w danym momencie może obejrzeć tylko kilka z nich. Poznamy dziś rozwiązania, które pomogą zaimplementować taki właśnie mechanizm.

Wojciech Sura

JĘZYKI PROGRAMOWANIA

Wyjątki od kuchni w C++

Wyjątki w C++ od strony programisty wyglądają stosunkowo prosto – ot, zamykamy fragment kodu w bloku try, definiujemy jeden lub kilka bloków catch przechwytujących wyjątki danego typu i na tym nasza robota skończona; od teraz jeśli podczas wykonywania naszego kodu zostanie użyte throw, wykonanie programu zostanie „magicznie” przeniesione do odpowiedniego bloku catch (jeśli taki istnieje). Patrząc od środka, cały proces jest dużo bardziej złożony i warto na niego rzucić
okiem, choćby z ciekawości.

Gynvael Coldwind

PROGRAMOWANIE GIER

Przewodnik po MonoGame, część 4: cienie rzucane

Model Phonga omówiony w poprzedniej części tego cyklu, czy ogólniej oświetlenie wirtualnej sceny w grach, to jeden z filarów grafiki trójwymiarowej czasu rzeczywistego – zdecydowanie ułatwia postrzeganie obiektów na scenie jako trójwymiarowych brył. W rzeczywistym świecie cieniom własnym towarzyszą jednak także cienie rzucane na podłoże i inne przedmioty. Nie są tylko wizualnym smaczkiem – mają decydujący wpływ na ocenę wysokości obiektów względem podłoża i tym samym ich odległości od kamery.

Jacek Matulewski

PROGRAMOWANIE URZĄDZEŃ MOBILNYCH

Tworzenie aplikacji wykorzystujących moduł GSM

Chociaż GSM jest standardem, który powstał dość dawno, to zyskał on dużą popularność wśród odbiorców. Dziś już każdy korzysta z dobrodziejstw tej komunikacji. Grono użytkowników jest naprawdę wielkie, dlatego też projektując system informatyczny z myślą o kliencie, warto zawrzeć w nim element natychmiastowej komunikacji, pewniejszy i szybszy niż e-mail. Usługi GSM mogą mieć wszechstronne zastosowanie, takie jak masowe wysyłki SMS, przypomnienie o opłaceniu faktury czy powiadomienie o nagłym skoku na giełdzie.

Przemysław Bykowski

INŻYNIERIA OPROGRAMOWANIA

Techniki powiadamiania o zmianie stanu obiektu
Wzorzec obserwatora i pokrewne

Artykuł omawia sposoby powiadamiania o zmianie stanu obiektu. Omawiane są uniwersalne i sprawdzone w praktyce rozwiązania: aktywne oczekiwanie, wzorzec obserwatora, publikowanie-subskrybowanie oraz reaktor.

Robert Nowak

PYTHON HAS POWER

Python Has Power Introduction, czyli PHP vs Python w praktyce

Python Has Power to akcja skierowana do programistów PHP. W serii artykułów specjaliści STX Next przybliżą Ci język Python. Poznasz najciekawsze zagadnienia, funkcje, a także (o czym jesteśmy przekonani) zakochasz się w Pythonie. W obiektywny sposób pokażemy, jak PHP developer może zostać SuperHero i co może zyskać w przypadku przekwalifikowania się na Pythona. Zapraszamy – www.PythonHasPower.com!

Piotr Mazurek

LABORATORIUM BOTTEGA

Wzorce silników zdarzeń w C++
Część 2: Wzorzec Reactor i jego implementacja z wykorzystaniem współdziałających wzorców

W poprzednim artykule przedstawiłem wzorzec Reactor niemalże wyłącznie z imienia i nazwiska – w oparciu o koncepcyjną implementację. Natomiast w ninejszym pokażę nieco bardziej profesjonalną (i nieco bardziej złożoną) odsłonę tego wzorca, wykorzystując inne współdziałające wzorce oraz stosując w pełni zasady GRASP i SOLID.

Roman Ulan

PLANETA IT

Domki z kart

Niedawno miałem okazję uczestniczyć w świetnym wykładzie zorganizowanym przez wrocławską grupę użytkowników Javy (Wrocław JUG), a prowadzonym przez Roberta C. Martina znanego może bardziej pod pseudonimem Wujek Bob. Robert jest amerykańskim programistą i konsultantem z zakresu programowania, który zawodowo zajmuje się tą tematyką od przeszło czterdziestu lat; założył firmę Object Mentor inc., prowadzącą szkolenia z zakresu programowania w C++, Javie, stosowania OOP i wzorców projektowych, a także metodologii agile oraz programowania ekstremalnego. Jest też autorem kilku książek – między innymi „Czysty kod. Podręcznik dobrego programisty”.

Wojciech Sura

STREFA CTF

Zdobyć flagę…
DEF CON CTF 2014

Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag - zawody, podczas których kilku-, kilkunastoosobowe drużyny starają się rozwiązać jak najwięcej technicznych zadań z różnych dziedzin informatyki: kryptografii, steganografii, programowania, informatyki śledczej, bezpieczeństwa aplikacji internetowych itd. Zazwyczaj w serii „Zdobyć flagę...” publikujemy rozwiązanie zadania pochodzącego z jednego z minionych CTFów, jednak w tym miesiącu wyjątkowo skupimy się na samym CTFie, a także infrastrukturze, którą należało przygotować, by z powodzeniem wziąć w nim udział.

Gynvael Coldwind, Mateusz "j00ru" Jurczyk, Sergiusz Bazański

KLUB LIDERA IT

Jak rozmawiać z biznesem, który nie wie, czego chce?

Jeśli uważasz, że biznes, z którym współpracujesz, nie wie, czego chce, to trafiłeś w idealne miejsce. W serii artykułów poznasz metody współpracy z osobami z biznesu. Nauczysz się prowadzić rozmowę, odkrywać potrzeby i precyzować oczekiwania. Zaczynamy!

Michał Bartyzel, Mariusz Sieraczkiewicz

KLUB DOBREJ KSIĄŻKI

Zwinny samuraj. Jak programują mistrzowie zwinności

Rafał Kocisz

Materiały do artykułów z tego wydania znajdziecie w zakładce download>multimedia