Programowanie
Wskaźniki w języku C. Przewodnik
Richard Reese
Jeśli chcesz błyskawicznie opanować programowanie w języku C, sięgnij po tę książkę! Gdy już poznasz podstawy, nauczysz się także korzystać ze wskaźników. To prawdziwa zmora wszystkich programistów, bowiem błędne wykorzystanie wskaźnika może w okamgnieniu zrujnować Twój program. Zobacz, jak tego uniknąć i zaprzyjaźnić się ze wskaźnikami. Inne książki opisują wskaźniki w jednym lub dwu rozdziałach, natomiast my poświęciliśmy im całą książkę. Dzięki temu dogłębnie poznasz ten mechanizm, zrozumiesz go i przekonasz się, że przy odrobinie uwagi nie jest on wcale taki straszny! W trakcie lektury wykorzystasz wskaźniki na funkcję, przygotujesz tablicę wskaźników oraz zobaczysz, jak współdziałają one z łańcuchami znaków. Twoją uwagę z pewnością zwrócą fragmenty omawiające zabezpieczenia oraz niewłaściwe wykorzystanie wskaźników. Książka ta jest jedyną pozycją na rynku w całości poświęconą wskaźnikom w języku C. To lektura obowiązkowa każdego programisty! Poznaj: koncepcję wskaźników zastosowanie tablic wskaźników funkcje dynamicznego alokowania pamięci zagrożenia wynikające ze stosowania wskaźników Odkryj tajniki wskaźników w języku C i wykorzystaj ich potencjał!
WSO2 Developers' Guide. SOA and data services with WSO2 Enterprise Integrator
Fidel Prieto Estrada, Ramón Garrido
WSO2 Enterprise Integrator brings together the most powerful servers provided by the WSO2 company for your SOA infrastructure. As an Enterprise Service Bus (ESB), WSO2 Enterprise Integrator provides greater flexibility and agility to meet growing enterprise demands, whereas, as a Data Services Server (DSS), it provides an easy-to-use platform for integrating data stores, creating composite views across different data sources, and hosting data services. Using real-world scenarios, this book helps you build a solid foundation in developing enterprise applications with powerful data integration capabilities using the WSO2 servers.The book gets you started by brushing up your knowledge about SOA architecture and how it can be implemented through WSO2. It will help build your expertise with the core concepts of ESB such as building proxies, sequences, endpoints, and how to work with these in WSO2.Going further, you will also get well-acquainted with DSS data service concepts such as configuring data services, tasks, events, testing, and much more. The book will also cover API management techniques. Along with ESB and DSS, you will also learn about business process servers, the rules server and other components that together provide the control and robustness your enterprise applications will need. With practical use cases, the book covers typical daily scenarios you will come across while using these servers to give you hands-on experience.
Współbieżność w języku C#. Receptury
Stephen Cleary
Współbieżność jest jednym z wymogów nowoczesnych aplikacji, niezależnie od ich rodzaju i platformy. Tworzenie współbieżnych aplikacji jest co prawda dość złożone, jednak cecha ta czyni interfejs użytkownika bardziej responsywnym, a systemy — skalowalnymi. Zrozumienie istoty współbieżności i umiejętność jej zaimplementowania jest już koniecznością dla profesjonalnego dewelopera, nawet jeśli zagadnienia te wydają się trudne i skomplikowane. Ta książka przedstawia nowoczesne podejście do współbieżności. Jest przeznaczona dla programistów, którzy chcą poszerzyć swoją wiedzę i umiejętności. Omówiono tu zagadnienia wielowątkowości i przedstawiono kilka różnych rodzajów współbieżności, w tym programowanie równoległe, asynchroniczne i reaktywne. Opisano biblioteki, dzięki którym programowanie współbieżnych aplikacji staje się znacznie łatwiejsze poprzez podniesienie poziomu abstrakcji. Zawarte w książce receptury uzupełniono o działający kod i przedyskutowano sposób ich działania. W książce między innymi: Omówienie różnych rodzajów współbieżności Reaktywność i przepływ zdarzeń Biblioteka zadań równoległych (TPL) Biblioteki rozszerzeń reaktywnych w LINQ Prowadzenie testów jednostkowych za pomocą kodu współbieżnego Asynchroniczne programowanie obiektowe Synchronizacja wątków Kod współbieżny — responsywność, skalowalność, nowoczesność! Stephen Cleary jest doświadczonym programistą. Od samego początku tworzy oprogramowanie open source, między innymi bibliotek Boost C++. Opublikował również kilka własnych bibliotek i narzędzi.
Cody Precord
wxPython is a GUI toolkit for the Python programming language built on top of the cross-platform wxWidgets GUI libraries. wxPython provides a powerful set of tools that allow you to quickly and efficiently building applications that can run on a variety of different platforms. Since wxWidgets provides a wrapper around each platform’s native GUI toolkit, the applications built with wxPython will have a native look and feel wherever they are deployed.This book will provide you with the skills to build highly functional and native looking user interfaces for Python applications on multiple operating system environments. By working through the recipes, you will gain insights into and exposure to creating applications using wxPython. With a wide range of topics covered in the book, there are recipes to get the most basic of beginners started in GUI programming as well as tips to help experienced users get more out of their applications. The recipes will take you from the most basic application constructs all the way through to the deployment of complete applications.
Wybrane zagadnienia informatyki technicznej. Modelowanie i optymalizacja
Ireneusz Mrozek (red. naukowy)
Informatyka jest rozległą dziedziną obejmującą zarówno badania teoretyczne, skupiające się w głównej mierze nad algorytmami i ich optymalizacją, jak i rozwiązania praktyczne związane z projektowaniem, implementacją i wdrażaniem systemów obliczeniowych w warstwie sprzętowej i programowej. Niniejsza monografia jest zbiorem pięciu oryginalnych prac naukowych przedstawiających osiągnięcia młodych i dojrzałych naukowców z obszaru informatyki. Poszczególne rozdziały dotyczą zagadnień związanych z eksploracją danych, zbiorów przybliżonych, modelowaniem układów o charakterze dynamicznym, technikami testowania pamięci RAM i projektowaniem układów cyfrowych.
Wydajne programowanie w R. Praktyczny przewodnik po lepszym programowaniu
Colin Gillespie, Robin Lovelace
Istnieje wiele znakomitych materiałów dotyczących wizualizacji, analizy danych i tworzenia pakietów w języku R. Setki rozproszonych winiet, stron internetowych i forów wyjaśnia, w jaki sposób należy wykorzystywać R w określonych domenach. Niewiele jednak zostało napisane o tym, jak w prosty sposób zapewnić efektywne działanie języka R aż do teraz. Ten praktyczny podręcznik uczy nowych i doświadczonych użytkowników R, jak pisać w tym języku wydajny kod. Bazując na swoim wieloletnim doświadczeniu w prowadzeniu kursów języka R, autorzy Colin Gillespie i Robin Lovelace dostarczają szereg praktycznych porad na wiele różnych tematów od optymalizowania konfiguracji środowiska RStudio po wykorzystywanie języka C++ które czynią z tej książki przydatną pozycję w zbiorze literatury dowolnego użytkownika R. Z treści podręcznika Wydajne programowanie w R z pewnością skorzystają nauczyciele akademiccy, użytkownicy biznesowi i programiści z wielu różnych środowisk. Uzyskaj porady związane z konfigurowaniem środowiska programistycznego R Poznaj ogólne koncepcje programowania i techniki kodowania w R Zapoznaj się z elementami składowymi wydajnego przepływu pracy w R Naucz się, jak wydajnie odczytywać i zapisywać dane w R Zagłęb się w stolarce danych kluczowej umiejętności czyszczenia surowych danych Zoptymalizuj swój kod przy użyciu profilowania, standardowych trików oraz innych metod Określ swoje możliwości sprzętowe w zakresie obsługi obliczeń R Zmaksymalizuj korzyści płynące z programowania zespołowego Przyspiesz swoją przemianę z hakera R w programistę R Colin Gillespie jest starszym wykładowcą (profesor nadzwyczajny) na Uniwersytecie w Newcastle w Wielkiej Brytanii. Jego zainteresowania badawcze obejmują obliczenia o wysokiej wydajności oraz statystykę bayesowską. Regularnie zatrudniany przez Jumping Rivers (jumpingrivers.com) jako konsultant, uczy języka R od 2005 roku. Robin Lovelace jest pracownikiem Instytutu Badań nad Transportem oraz Instytutu Analizy Danych na Uniwersytecie w Leeds w Wielkiej Brytanii. Przez pięć lat wykorzystywał R w badaniach akademickich, zaś przez cztery lata uczył języka R na wszystkich poziomach. Robin wykorzystał ponadto język R w kilku projektach realizowanych w ramach programu badań stosowanych. Autorzy piszą czystą prozą, która daje zwięzłą i dobitną odpowiedź na pytanie Dlaczego wydajne programowanie?. Podwójny nacisk na programowanie i produktywność jest bardzo przydatny. -Garrett Grolemund Główny instruktor w RStudio oraz autor książek R for Data Science i Hands-on Programming with R (obie wydawnictwa O'Reilly)
Wydajność Javy. Szczegółowe porady dotyczące programowania i strojenia aplikacji w Javie. Wydanie II
Scott Oaks
Istnieją dwie strategie rozwiązywania problemów wydajnościowych aplikacji w Javie. Z jednej strony można wykorzystać potężne komputery i przydzielić JVM ogromne zasoby pamięci, z drugiej - w czasach ekspansji rozwiązań opartych na chmurach obliczeniowych nowe znaczenie zyskują małe, jednoprocesorowe komputery. Firmy takie jak Oracle czy Amazon udostępniają tanie serwery, na których można uruchamiać proste aplikacje. Łatwo się przekonać, jak ważne jest właściwe zarządzanie niewielką ilością pamięci w tego rodzaju środowiskach. Każdy, kto programuje w Javie, powinien dokładnie wiedzieć, jak maszyna JVM wykonuje kod i jak należy ją dostrajać, aby osiągała możliwie największą wydajność. W tej książce opisano wiele funkcjonalności, narzędzi i procedur, dzięki którym można poprawić efektywność kodu napisanego w Javie 8 i 11 LTS. Główny nacisk położono na zagadnienia istotne dla środowisk produkcyjnych, ale przedstawiono również ciekawe nowe technologie, takie jak kompilacja z wyprzedzeniem i eksperymentalne kolektory. Znalazło się tu także omówienie nowości w mechanizmie porządkowania pamięci i rejestratorze Java Flight Recorder, zaprezentowano kwestie funkcjonowania Javy w środowiskach kontenerowych, udoskonalone narzędzie JMH, kompilatory JIT, współdzielone klasy danych, narzędzia do monitorowania wydajności i wiele innych. Książkę doceni każdy inżynier zajmujący się JVM, który chce poradzić sobie z nietypowym działaniem systemu, wyciekami pamięci i problemami z jej porządkowaniem. Najciekawsze zagadnienia: platformy i kompilatory Javy a wydajność aplikacji porządkowanie pamięci zasady testowania wydajności aplikacji pakiet JDK i narzędzia do monitorowania aplikacji dostrajanie kolektora i interfejsów Java API wydajność aplikacji korzystających z baz danych "To najbardziej szczegółowy i praktyczny podręcznik na temat wydajności i strojenia maszyny JVM. Powinien go przeczytać każdy inżynier zajmujący się JVM, który kiedykolwiek zmagał się z nietypowym działaniem systemu, wyciekami pamięci i problemami z jej porządkowaniem" Rod Hilton Dostrojenie JVM: oto sekret wydajności kodu Javy!
Wyrażenia regularne. Leksykon kieszonkowy. Wydanie II
Tony Stubblebine
Poznaj wyrażenia regularne, aby wykorzystać moc ich możliwości w najpopularniejszych językach programowania! Chcesz poznać przepisy na wyrażenia regularne? Chcesz wykorzystywać możliwości Unicode w języku Ruby, Java, Perl, PHP, Pyton, C oraz .NET? Chcesz wiedzieć, jak stosować wyrażenia regularne zaimplementowane w różnych językach programowania? Wyrażenia regularne są narzędziem umożliwiającym analizę i modyfikowanie tekstu przez dopasowywanie wzorców. Są one łańcuchem znaków zawierającym kombinację normalnych znaków oraz specjalnych metaznaków i metasekwencji, a dopasowywanie wzorców polega na odszukaniu fragmentu łańcucha opisywanego przez wyrażenie regularne. Wyrażenia te znajdują zastosowanie przy sprawdzaniu wartości zmiennych, zmianie formatu, przeprowadzaniu złożonych operacji wyszukiwania oraz weryfikowaniu poprawności danych tekstowych. Książka "Wyrażenia regularne. Leksykon kieszonkowy" stanowi podręczny niezbędnik dla wszystkich piszących programy przetwarzające teksty. Oprócz zagadnień podstawowych, takich jak składnia wyrażeń regularnych oraz operacje, w których są wykorzystywane, leksykon zawiera inne niezwykle pomocne i bardziej zaawansowane informacje dotyczące na przykład narzędzi obsługi wyrażeń w języku Ruby oraz na serwerze WWW Apache. Czytając tę książkę, nie tylko zdobędziesz konkretną wiedzę, ale również niezbędne umiejętności praktyczne -- między innymi dowiesz się, jak wykorzystać znajomość wyrażeń regularnych we wszystkich środowiskach. Metaznaki, tryby oraz konstrukcje Reprezentacja i klasy znaków Komentarze i modyfikatory trybów Narzędzia obsługi wyrażeń regularnych w języku Ruby oraz na serwerze WWW Apache Operatory wyrażeń regularnych w języku Perl 5.8 Obiekty i metody do obsługi wyrażeń regularnych w języku JavaScript Funkcje obsługi wyrażeń regularnych w języku PHP i edytorze vi Obiekty i funkcje wyrażeń regularnych w języku Pyton Programy obsługiwane z wiersza poleceń Wyrażenia regularne to nieocenione narzędzia w pracy programisty -- nie możesz się bez nich obejść!
Wyrażenia regularne. Leksykon kieszonkowy. Wydanie II
Tony Stubblebine
Poznaj wyrażenia regularne, aby wykorzystać moc ich możliwości w najpopularniejszych językach programowania! Chcesz poznać przepisy na wyrażenia regularne? Chcesz wykorzystywać możliwości Unicode w języku Ruby, Java, Perl, PHP, Pyton, C oraz .NET? Chcesz wiedzieć, jak stosować wyrażenia regularne zaimplementowane w różnych językach programowania? Wyrażenia regularne są narzędziem umożliwiającym analizę i modyfikowanie tekstu przez dopasowywanie wzorców. Są one łańcuchem znaków zawierającym kombinację normalnych znaków oraz specjalnych metaznaków i metasekwencji, a dopasowywanie wzorców polega na odszukaniu fragmentu łańcucha opisywanego przez wyrażenie regularne. Wyrażenia te znajdują zastosowanie przy sprawdzaniu wartości zmiennych, zmianie formatu, przeprowadzaniu złożonych operacji wyszukiwania oraz weryfikowaniu poprawności danych tekstowych. Książka "Wyrażenia regularne. Leksykon kieszonkowy" stanowi podręczny niezbędnik dla wszystkich piszących programy przetwarzające teksty. Oprócz zagadnień podstawowych, takich jak składnia wyrażeń regularnych oraz operacje, w których są wykorzystywane, leksykon zawiera inne niezwykle pomocne i bardziej zaawansowane informacje dotyczące na przykład narzędzi obsługi wyrażeń w języku Ruby oraz na serwerze WWW Apache. Czytając tę książkę, nie tylko zdobędziesz konkretną wiedzę, ale również niezbędne umiejętności praktyczne -- między innymi dowiesz się, jak wykorzystać znajomość wyrażeń regularnych we wszystkich środowiskach. Metaznaki, tryby oraz konstrukcje Reprezentacja i klasy znaków Komentarze i modyfikatory trybów Narzędzia obsługi wyrażeń regularnych w języku Ruby oraz na serwerze WWW Apache Operatory wyrażeń regularnych w języku Perl 5.8 Obiekty i metody do obsługi wyrażeń regularnych w języku JavaScript Funkcje obsługi wyrażeń regularnych w języku PHP i edytorze vi Obiekty i funkcje wyrażeń regularnych w języku Pyton Programy obsługiwane z wiersza poleceń Wyrażenia regularne to nieocenione narzędzia w pracy programisty -- nie możesz się bez nich obejść!
Wyrażenia regularne. Receptury
Jan Goyvaerts, Steven Levithan
Poznaj i wykorzystaj możliwości regexpów w codziennej pracy! Jak wyrażenia regularne mogą przyśpieszyć Twoją pracę? Jak sprawdzić poprawność danych? Jak wykorzystać wyrażenia regularne w pracy z plikami XML? Wyrażenie regularne (ang. regexp) to inaczej wzorzec, który określa zbiór dopasowanych łańcuchów znaków. Brzmi to prosto. Jednak przy pierwszym spotkaniu z wyrażeniami wcale tak nie jest. Zbiór znaków i symboli składający się na wyrażenie regularne w niczym nie przypomina rzeczy, którą chciałbyś się zająć. Wyrażenia regularne zawsze kojarzą się początkującemu użytkownikowi co najmniej z wiedzą tajemną, a często wręcz z magią. Warto im się jednak przyjrzeć, poznać je i polubić, a następnie wykorzystać możliwości, jakie w nich drzemią. Jedno jest pewne - te możliwości są spore. Autorzy błyskawicznie zaprzyjaźnią Cię z wyrażeniami regularnymi - książka należy bowiem do znanej serii Receptury, cechującej się tym, że proces nauki jest oparty na analizie rozwiązań prawdziwych problemów. Na samym początku zdobędziesz elementarną wiedzę dotyczącą różnych typów dopasowania oraz dowiesz się, jak unikać najczęstszych problemów. Na kolejnych stronach nauczysz się stosować wyrażenia regularne w różnych językach programowania oraz wykorzystywać je do kontroli poprawności danych i formatowania ciągów znaków. Ponadto dowiesz się, jak operować na słowach, wierszach, znakach specjalnych oraz liczbach. Osobny rozdział został poświęcony operacjom na adresach URL oraz ścieżkach dostępu. Dzięki tej książce szybko zgłębisz tajniki wyrażeń regularnych. Kolejny krok to wykorzystanie tej wiedzy w codziennej pracy! Dopasowanie stałego tekstu Dopasowanie znaków niedrukowanych Dopasowania na początku i końcu wiersza Wyrażenia regularne dla całych wyrazów Wykorzystanie alternatywnych wyrażeń Grupowanie dopasowań Eliminowanie nawrotów Sposoby komentowania wyrażeń Wyrażenia regularne w językach programowania Weryfikacja i formatowanie danych z wykorzystaniem wyrażeń regularnych Dopasowanie kompletnego wiersza Praca z liczbami Operacje na adresach URL, ścieżkach i adresach internetowych Wykorzystanie wyrażeń regularnych w pracy z plikami XML Sprawdź, jak wyrażenia regularne mogą przyśpieszyć Twoją pracę!
Wyrażenia regularne. Wprowadzenie
Michael Fitzgerald
Wyrażenia regularne to wzorce, które pozwalają opisać łańcuchy znaków. Brzmi to groźnie, wygląda jeszcze gorzej, ale każdy programista prędzej czy później się z nimi spotka i… doceni ich potęgę! Ciężko sobie wyobrazić wyszukiwanie, zastępowanie oraz sprawdzanie poprawności danych bez wykorzystania potencjału wyrażeń regularnych. Czas poświęcony na ich opanowanie zwróci się błyskawicznie i z nawiązką! Ta wspaniała książka wprowadzi Cię w świat wyrażeń regularnych szybko i bezboleśnie. Już za chwilę wykorzystasz podstawowe elementy wyrażeń, a każdy kolejny rozdział dostarczy Ci coraz bardziej zaawansowanych narzędzi. W trakcie lektury nauczysz się korzystać z granic, klas znaków, grup i odniesień. Ponadto dowiesz się, jak wykorzystać możliwości Perla w zakresie transformacji tekstów. Książka ta jest wyjątkowym podręcznikiem, który musi znaleźć się na półce każdego programisty! Sprawdź już teraz: potencjał, jaki kryją wyrażenia regularne metody szybkiego wyszukiwania i zastępowania ciągów znaków sposoby korzystania z wyrażeń w różnych językach programowania możliwości wyrażeń regularnych w zakresie kontroli poprawności wprowadzonych danych Zaoszczędź czas dzięki wyrażeniom regularnym!
Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II
Bjorn Andrist, Viktor Sehr
Dzisiejszy C++ jest wyjątkowym językiem programowania. Umożliwia pisanie zwięzłego, stabilnego kodu, który można zoptymalizować pod kątem wydajności w niespotykanym dotychczas stopniu. Język C++ w ciągu ostatnich lat został unowocześniony. W standardzie C++ 20 znalazło się sporo mechanizmów, które pozwalają osiągnąć wysoką efektywność kodu, a równocześnie uprzyjemniają programiście pracę. Poprawiono także ustawienia domyślne kompilatora. To wszystko sprawia, że wielu profesjonalistów wybiera właśnie C++, gdy chce uzyskać kod o wyjątkowej wydajności. Ta książka jest drugim, zaktualizowanym i uzupełnionym wydaniem przewodnika dla programistów. Rozpoczyna się od szczegółowego wprowadzenia do nowoczesnego C++ z uwzględnieniem technik eliminowania wąskich gardeł w kodzie bazowym. Następnie omówiono zagadnienia optymalizacji struktur danych i zarzadzania pamięcią. Przedstawiono również tematykę algorytmów, zasady pisania czytelnego kodu i stosowania niestandardowych iteratorów. Zamieszczono w niej też praktyczne przykłady używania metaprogramowania w języku C++, korutyn, refleksji (do ograniczenia ilości szablonowego kodu), obiektów pośredniczących (do wprowadzania ukrytych optymalizacji), programowania współbieżnego i struktur danych wolnych od blokad. W końcowej części dokonano przeglądu algorytmów równoległych w C++. W książce między innymi: nowe aspekty C++ 20 wyspecjalizowane struktury danych na potrzeby wydajnego kodu metaprogramowanie i niestandardowe zarządzanie pamięcią mechanizm refleksji i programowanie współbieżne bez używania blokad subtelne optymalizacje algorytmów z biblioteki standardowej C++ leniwe generatory i zadania asynchroniczne Twórz wydajny i czysty kod w C++!
Wysoko wydajny Python. Efektywne programowanie w praktyce. Wydanie II
Micha Gorelick, Ian Ozsvald
Python jest językiem łatwym do opanowania i przyjemnym dla programisty. Jednak łatwość projektowania nie przekłada się na szybkość działania kodu. W konsekwencji przetwarzanie dużych wolumenów danych czy próba skalowania aplikacji kończą się problemami z wydajnością lub niezawodnością. Niekiedy rozwiązaniem jest zastosowanie procesów szeregowych, w innych przypadkach warto sięgnąć do architektury wielordzeniowej, klastrów lub układów GPU. Relatywnie często okazuje się, że dobre wyniki uzyskuje się w efekcie takiego zmodyfikowania technik kodowania, aby przy wykorzystaniu potencjału Pythona stosować sprawdzone metody poprawy wydajności kodu. Dzięki drugiemu, poszerzonemu i zaktualizowanemu wydaniu tej książki zdobędziesz wszechstronną wiedzę o czynnikach wpływających na wydajność kodu. Dowiesz się, jakie procesy zachodzą w tle komputera, na jakich zasadach odbywa się przydzielanie pamięci, oraz zyskasz nowe spojrzenie na proces kompilacji do postaci kodu maszynowego. Zapoznasz się z zagadnieniem współbieżności i obliczeń klastrowych. Zaczniesz swobodnie posługiwać się najlepszymi narzędziami Pythona, takimi jak NumPy czy moduł multiprocessing. Z pewnością docenisz techniki zapewniające korzystanie z minimum zasobów, takich jak czas procesora czy pamięć RAM. Opisane tu zagadnienia zilustrowano przykładami kodu oraz poradami najlepszych specjalistów z branży. W książce: narzędzia NumPy, Cython i Docker znajdowanie wąskich gardeł związanych z wykorzystaniem czasu procesora i pamięci wydajność kodu a odpowiednie struktury danych przyspieszanie obliczeń opartych na macierzach i wektorach zarządzanie wieloma operacjami obliczeniowymi i wejścia-wyjścia przetwarzanie współbieżne i uruchamianie kodu w klastrze Programowanie w Pythonie: przede wszystkim wydajność i niezawodność!
Wysoko wydajny Python. Efektywne programowanie w praktyce. Wydanie II
Micha Gorelick, Ian Ozsvald
Python jest językiem łatwym do opanowania i przyjemnym dla programisty. Jednak łatwość projektowania nie przekłada się na szybkość działania kodu. W konsekwencji przetwarzanie dużych wolumenów danych czy próba skalowania aplikacji kończą się problemami z wydajnością lub niezawodnością. Niekiedy rozwiązaniem jest zastosowanie procesów szeregowych, w innych przypadkach warto sięgnąć do architektury wielordzeniowej, klastrów lub układów GPU. Relatywnie często okazuje się, że dobre wyniki uzyskuje się w efekcie takiego zmodyfikowania technik kodowania, aby przy wykorzystaniu potencjału Pythona stosować sprawdzone metody poprawy wydajności kodu. Dzięki drugiemu, poszerzonemu i zaktualizowanemu wydaniu tej książki zdobędziesz wszechstronną wiedzę o czynnikach wpływających na wydajność kodu. Dowiesz się, jakie procesy zachodzą w tle komputera, na jakich zasadach odbywa się przydzielanie pamięci, oraz zyskasz nowe spojrzenie na proces kompilacji do postaci kodu maszynowego. Zapoznasz się z zagadnieniem współbieżności i obliczeń klastrowych. Zaczniesz swobodnie posługiwać się najlepszymi narzędziami Pythona, takimi jak NumPy czy moduł multiprocessing. Z pewnością docenisz techniki zapewniające korzystanie z minimum zasobów, takich jak czas procesora czy pamięć RAM. Opisane tu zagadnienia zilustrowano przykładami kodu oraz poradami najlepszych specjalistów z branży. W książce: narzędzia NumPy, Cython i Docker znajdowanie wąskich gardeł związanych z wykorzystaniem czasu procesora i pamięci wydajność kodu a odpowiednie struktury danych przyspieszanie obliczeń opartych na macierzach i wektorach zarządzanie wieloma operacjami obliczeniowymi i wejścia-wyjścia przetwarzanie współbieżne i uruchamianie kodu w klastrze Programowanie w Pythonie: przede wszystkim wydajność i niezawodność!
Wysoko wydajny Python. Efektywne programowanie w praktyce. Wydanie III
Micha Gorelick, Ian Ozsvald, Hilary Mason
Każdy, kto się zetknął z językiem Python, wie, że jest on prosty i przyjazny dla programistów, ale ma też swoje ograniczenia przy pracy z dużymi wolumenami danych szybko pojawiają się problemy z wydajnością i ze skalowaniem. Niekiedy pomaga mocniejsza konfiguracja sprzętowa, jednak najczęściej kluczowe jest zastosowanie odpowiednich technik programistycznych i właściwych narzędzi. Dzięki kolejnemu, poszerzonemu i zaktualizowanemu wydaniu tego praktycznego podręcznika zdobędziesz wszechstronną wiedzę o czynnikach wpływających na wydajność kodu. Dowiesz się, jak lokalizować wąskie gardła wydajności i optymalizować kod w programach, które przetwarzają duże wolumeny danych. Lepiej też zrozumiesz zasady implementacji kodu Pythona. W książce poruszono takie zagadnienia jak architektury wielordzeniowe, klastry, skalowanie systemu poza limity pamięci RAM lub z wykorzystaniem procesorów graficznych. Zaprezentowano praktyczne sposoby radzenia sobie z różnymi wyzwaniami, przybliżono również optymalizację kodu Pythona w wielu realnych scenariuszach, w tym na przykład w sytuacji wyodrębniania danych generatywnej sztucznej inteligencji i uczenia maszynowego w wersji produkcyjnej. W książce: narzędzia NumPy i Cython, a także narzędzia profilujące wyszukiwanie wąskich gardeł wykorzystania czasu procesora i pamięci dobór odpowiednich struktur danych, macierze i wektory przyspieszanie sieci neuronowych i obliczeń opartych na procesorach GPU zarządzanie wieloma operacjami obliczeniowymi i operacjami wejścia-wyjścia przetwarzanie współbieżne w klastrze To lektura obowiązkowa dla każdego programisty Pythona! Mikhail Timonin, projektant, Engelhart
Kent Beck
Sprawdzone rozwiązania Twoich problemów! Przy nauce programowania warto uczyć się na cudzych błędach. Programiści tworzący aplikację codziennie natykają się na przeróżne problemy oraz zagadnienia do rozwiązania. Rzadko jednak zdarza się, żeby były one wyjątkowe i niespotykane wcześniej. Jeżeli masz problem, możesz być prawie pewien, że ktoś też już go miał - i w dodatku rozwiązał. Właśnie w ten sposób powstały wzorce, które w jasny sposób opisują sposoby rozwiązywania typowych problemów. W tej książce znajdziesz 77 wzorców, które pozwolą Ci uniknąć wielu pułapek oraz rozwiązać najczęściej spotykane problemy. W trakcie lektury dowiesz się, w jaki sposób przechowywać stan oraz gdzie umieścić logikę Twojej aplikacji. Ponadto poznasz najefektywniejsze sposoby sterowania przebiegiem programu oraz wybierzesz rodzaj kolekcji odpowiedni do Twoich potrzeb. Nauczysz się dobierać właściwe nazwy dla zmiennych i metod oraz przekonasz się, że można sprawnie opanować wysyp wyjątków. Książka ta jest obowiązkową lekturą każdego programisty. Dzięki niej Twoje życie stanie się prostsze, a Twoje oprogramowanie bardziej przejrzyste! Dzięki tej książce: poznasz 77 przydatnych wzorców wybierzesz odpowiedni typ kolekcji w zależności od problemu zaprojektujesz przejrzystą hierarchię klas zbudujesz lepszą i bardziej niezawodną aplikację Poznaj najlepsze wzorce, które ulepszą Twoje oprogramowanie!
Wzorce komunikacji. Przewodnik dla programistów i architektów
Jacqui Read
Skuteczna komunikacja jest równocześnie sztuką i nauką. Koszt niewłaściwej komunikacji bywa wysoki, dlatego warto zgłębiać tę umiejętność. Architekci wiedzą, jak ważne w ich fachu są wzorce i antywzorce, które można zastosować (lub rozpoznać) podczas projektowania systemów. Okazuje się, że te same koncepcje doskonale się sprawdzają w odniesieniu do komunikacji. Oto mistrzowski przewodnik, który odblokowuje złożoność kryjącą się za językiem ludzkich interakcji! Mark Richards, architekt oprogramowania Ta książka jest wyjątkowo praktycznym przewodnikiem, dzięki któremu przyswoisz ważną umiejętność skutecznego komunikowania wizji, aby uzyskiwać wsparcie dla swojego projektu, a także wkład ze strony zespołów. Dowiesz się, jak przekonująco prezentować zamierzenia i jak unikać nieporozumień, które mogą prowadzić do wzrostu kosztów, niespełnionych wymagań czy innych niż zakładane efektów pracy. Poprzez konstruktywne przykłady i wzorce poradnik uczy umiejętności niezbędnych do jasnego wyrażania swojego przekazu wobec różnych odbiorców, z którymi ma do czynienia niemal każdy programista i architekt. W książce między innymi: techniki przekazywania zamierzonych informacji, odpowiadających danemu etapowi projektu archetypy osób pełniących różne funkcje i mających szczególne potrzeby techniki komunikacji umożliwiające sukces w środowisku technicznym współpraca z rozproszonymi zespołami stosowanie wzorców komunikacyjnych w rzeczywistych projektach informatycznych Umiejętności prezentowane w tej książce można by nazwać miękkimi, ale nie jest łatwo się ich nauczyć! Rebecca Parsons, emerytowana dyrektor do spraw technologii, Thoughtworks
Wzorce komunikacji. Przewodnik dla programistów i architektów
Jacqui Read
Skuteczna komunikacja jest równocześnie sztuką i nauką. Koszt niewłaściwej komunikacji bywa wysoki, dlatego warto zgłębiać tę umiejętność. Architekci wiedzą, jak ważne w ich fachu są wzorce i antywzorce, które można zastosować (lub rozpoznać) podczas projektowania systemów. Okazuje się, że te same koncepcje doskonale się sprawdzają w odniesieniu do komunikacji. Oto mistrzowski przewodnik, który odblokowuje złożoność kryjącą się za językiem ludzkich interakcji! Mark Richards, architekt oprogramowania Ta książka jest wyjątkowo praktycznym przewodnikiem, dzięki któremu przyswoisz ważną umiejętność skutecznego komunikowania wizji, aby uzyskiwać wsparcie dla swojego projektu, a także wkład ze strony zespołów. Dowiesz się, jak przekonująco prezentować zamierzenia i jak unikać nieporozumień, które mogą prowadzić do wzrostu kosztów, niespełnionych wymagań czy innych niż zakładane efektów pracy. Poprzez konstruktywne przykłady i wzorce poradnik uczy umiejętności niezbędnych do jasnego wyrażania swojego przekazu wobec różnych odbiorców, z którymi ma do czynienia niemal każdy programista i architekt. W książce między innymi: techniki przekazywania zamierzonych informacji, odpowiadających danemu etapowi projektu archetypy osób pełniących różne funkcje i mających szczególne potrzeby techniki komunikacji umożliwiające sukces w środowisku technicznym współpraca z rozproszonymi zespołami stosowanie wzorców komunikacyjnych w rzeczywistych projektach informatycznych Umiejętności prezentowane w tej książce można by nazwać miękkimi, ale nie jest łatwo się ich nauczyć! Rebecca Parsons, emerytowana dyrektor do spraw technologii, Thoughtworks
Wzorce projektowe dla programistów Javy. Udoskonal swoje umiejętności projektowania oprogramowania
Miroslav Wengner
Właściwe stosowanie wzorców projektowych jest umiejętnością, którą bardzo cenią twórcy oprogramowania. Wzorce pozwalają na szybkie opracowanie złożonych zagadnień i umożliwiają tworzenie kodu nadającego się do wielokrotnego użycia. Taki kod jest przy tym wydajny, łatwy w testowaniu i utrzymaniu. Z pewnością wzorce projektowe są świetnym rozwiązaniem dla inżyniera, który chce doskonalić umiejętności projektowania oprogramowania. Książka stanowi zbiór praktycznych informacji dotyczących najpopularniejszych wzorców projektowych. Lekturę rozpoczniesz od zapoznania się z możliwościami korzystania z wzorców projektowych na platformie Javy. Dowiesz się także, jakich zasad trzeba przestrzegać, aby zapewnić czytelność i łatwość utrzymania kodu Javy. W kolejnych rozdziałach znajdziesz praktyczne wskazówki i przykłady dotyczące stosowania wzorców kreacyjnych, strukturalnych, operacyjnych, a także wzorców współbieżności. Nauczysz się ich używać do praktycznego rozwiązywania problemów często spotykanych podczas projektowania oprogramowania. Końcowy rozdział został poświęcony antywzorcom, a zawarte w nim informacje pomogą Ci w ich identyfikacji i podjęciu najlepszych środków zaradczych. W książce: jakie problemy można rozwiązać za pomocą wzorców projektowych w Javie jakie możliwości ma programowanie współbieżne jak wzorzec projektowy Obserwator buduje relację "jeden-do-wielu" między instancjami jakie problemy pomaga rozwiązać wzorzec Odwiedzający jak kontrolować zasoby przy użyciu wzorca Pula wątków jak zaradzić problemom spowodowanym przez antywzorce Wzorce projektowe: niezbędnik najlepszych programistów Javy!