C++

145
Loading...
EBOOK

Modern C++ Programming Cookbook. Master C++ core language and standard library features, with over 100 recipes, updated to C++20 - Second Edition

Marius Bancila

C++ has come a long way to be one of the most widely used general-purpose languages that is fast, efficient, and high-performance at its core.The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers.The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices.Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2.By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.

146
Loading...
EBOOK

Modern C++ Programming Cookbook. Recipes to explore data structure, multithreading, and networking in C++17

Marius Bancila

C++ is one of the most widely used programming languages. Fast, efficient, and flexible, it is used to solve many problems. The latest versions of C++ have seen programmers change the way they code, giving up on the old-fashioned C-style programming and adopting modern C++ instead.Beginning with the modern language features, each recipe addresses a specific problem, with a discussion that explains the solution and offers insight into how it works. You will learn major concepts about the core programming language as well as common tasks faced while building a wide variety of software. You will learn about concepts such as concurrency, performance, meta-programming, lambda expressions, regular expressions, testing, and many more in the form of recipes. These recipes will ensure you can make your applications robust and fast.By the end of the book, you will understand the newer aspects of C++11/14/17 and will be able to overcome tasks that are time-consuming or would break your stride while developing.

147
Loading...
EBOOK

Modern CMake for C++. Discover a better approach to building, testing, and packaging your software

Rafał Świdziński

Creating top-notch software is an extremely difficult undertaking. Developers researching the subject have difficulty determining which advice is up to date and which approaches have already been replaced by easier, better practices. At the same time, most online resources offer limited explanation, while also lacking the proper context and structure.This book offers a simpler, more comprehensive, experience as it treats the subject of building C++ solutions holistically. Modern CMake for C++ is an end-to-end guide to the automatization of complex tasks, including building, testing, and packaging. You'll not only learn how to use the CMake language in CMake projects, but also discover what makes them maintainable, elegant, and clean. The book also focuses on the structure of source directories, building targets, and packages. As you progress, you’ll learn how to compile and link executables and libraries, how those processes work, and how to optimize builds in CMake for the best results. You'll understand how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll get to grips with exporting, installing, and packaging for internal and external purposes.By the end of this book, you’ll be able to use CMake confidently on a professional level.

148
Loading...
EBOOK

Modern CMake for C++. Effortlessly build cutting-edge C++ code and deliver high-quality solutions - Second Edition

Rafał Świdziński, Alexander Kushnir

Modern CMake for C++ isn't just another reference book, or a repackaging of the documentation, but a blueprint to bridging the gap between learning C++ and being able to use it in a professional setting. It's an end-to-end guide to the automation of complex tasks, including building, testing, and packaging software.This second edition is significantly rewritten, restructured and refreshed with latest additions to CMake, such as support of C++20 Modules.In this book, you'll not only learn how to use the CMake language in CMake projects but also discover how to make those projects maintainable, elegant, and clean. As you progress, you'll dive into the structure of source directories, building targets, and packages, all while learning how to compile and link executables and libraries. You'll also gain a deeper understanding of how those processes work and how to optimize builds in CMake for the best results. You'll discover how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll gain profi ciency in exporting, installing, and packaging for internal and external purposes.By the end of this book, you'll be able to use CMake confi dently at a professional level.

149
Loading...
EBOOK

Nowoczesne aplikacje internetowe. MongoDB, Express, AngularJS, Node.js

Jeff Dickey

Poznaj nowe podejście do aplikacji internetowych! Tradycyjne aplikacje internetowe składały się z dwóch elementów — ciężkiego back-endu odpowiadającego za przetwarzanie danych, ich walidację i przechowywanie oraz z klienta, którego zadaniem była prosta komunikacja z użytkownikiem. To rozwiązanie rodziło liczne kłopoty — przede wszystkim ze skalowaniem. Od nowoczesnych aplikacji użytkownicy wymagają najwyższej wydajności, niezawodności, możliwości działania w trybie offline oraz wygody użytkowania. Tradycyjne podejście do tworzenia aplikacji już się nie sprawdza. Potrzebujesz czegoś nowego! Na ratunek przychodzi drużyna — MongoDB, Express, AngularJS oraz Node.js. Dzięki temu zestawowi narzędzi będziesz w stanie stworzyć zaawansowaną aplikację z wygodnym interfejsem użytkownika oraz szerokimi możliwościami skalowania. Wystarczy, że sięgniesz po tę książkę i przyswoisz sobie zawartą w niej wiedzę. W publikacji znajdziesz odpowiedź na wiele pytań: Dlaczego warto wybrać AngularJS? Czym się charakteryzują bazy NoSQL? W jakich sytuacjach bazy NoSQL są lepsze od tradycyjnych baz relacyjnych? Dlaczego Node.js jest tak szybki? Ponadto nauczysz się budować wydajne API, integrować Node.js z AngularJS, automatyzować zadania za pomocą pakietu Gulp oraz korzystać z zaawansowanych mechanizmów autoryzacji. Na sam koniec zaznajomisz się z dobrymi praktykami — testami API, klienta oraz uruchomisz przygotowaną aplikację na serwerze produkcyjnym. Ta książka jest doskonałą lekturą, która zaprezentuje Ci każdy z elementów nowoczesnej aplikacji internetowej. Dzięki tej książce: Poznasz możliwości AngularJS oraz Node.js Przekonasz się, dlaczego warto wybrać MongoDB Przygotujesz praktyczne API w Node.js Poznasz narzędzie Gulp Wykorzystasz JSON Web Token do uwierzytelniania Przetestujesz aplikację Nauczysz się tworzyć nowoczesne aplikacje internetowe! Aplikacje internetowe już nigdy nie będą takie same! Jeff Dickey — wszechstronny programista sieciowy. Doświadczenie zdobywał przy pracy z licznymi start-upami z okolic San Francisco i Los Angeles. Obecnie prowadzi zespoły programistów i opracowuje projekty. Unika biurokracji, jest zaangażowany w serię spotkań Code for America Brigade w Los Angeles.

150
Loading...
EBOOK

Nowoczesny C++. Zbiór praktycznych zadań dla przyszłych ekspertów

Marius Bancila

C++ jest dojrzałym językiem programowania, od wielu lat wykorzystywanym przez profesjonalnych programistów do wielu różnych zastosowań, włączając w to pisanie gier, programowanie GUI czy tworzenie złożonych aplikacji użytkowych. Zaprojektowano go pod kątem maksymalizowania wydajności, jest więc najczęściej wybieranym językiem w sytuacjach, w których najważniejsza jest efektywność działania kodu. Aby jednak wykorzystać te zalety C++, trzeba nauczyć się nim posługiwać. A biegłość w posługiwaniu się językiem programowania przychodzi dzięki regularnym ćwiczeniom i ciągłemu testowaniu nabytych umiejętności. Innymi słowy, trzeba rozwiązywać jak najwięcej różnorodnych, rzeczywistych i praktycznych zadań problemowych. W tej książce zawarto zestaw 100 zadań o różnym poziomie trudności, ułożonych w taki sposób, aby podczas rozwiązywania móc skorzystać z bogactwa standardowej biblioteki C++ oraz z wielu zewnętrznych bibliotek wieloplatformowych. Zadania rozmieszczono w 12 rozdziałach, z których każdy dotyczy określonego tematu. Są to problemy, których odpowiednie rozwiązanie warunkuje poprawne działanie aplikacji, takie jak bezpieczna komunikacja, szyfrowanie i autoryzacja danych, korzystanie z wątków i funkcji asynchronicznych czy implementacja algorytmów współbieżnych. Proponowane zagadnienia zostały dokładnie opisane, uwzględniono również szereg zaleceń, wyjaśnień i wskazówek. Na wypadek gdyby wykonanie któregoś zadania sprawiało trudności, do książki dołączono kod źródłowy przykładowych rozwiązań. Ważniejsze zagadnienia ujęte w książce: serializacja i deserializacja danych JSON i XML praca z bazą danych SQLite implementacja takich struktur jak bufor cykliczny i kolejka priorytetowa usługi REST i HTTP wzorce projektowe w rozwiązywaniu problemów Oto C++. Podejmiesz wyzwanie i napiszesz kod!

151
Loading...
EBOOK

Nowoczesny C++ do zastosowań finansowych. Podstawy programowania ilościowego

Daniel Hanson

Książka ta demonstruje, dlaczego C++ jest nadal jednym z dominujących języków, którego jakość pozwala na wytwarzanie aplikacji i systemów finansowych. Wielu programistów uważa język C++ za zbyt trudny do opanowania. Autor, Daniel Hanson, zaprzecza tym opiniom, pokazując nowoczesne cechy standardu C++ dodawane od 2011 roku. Programiści finansowi dowiedzą się, jak wykorzystać abstrakcje C++ umożliwiające bezpieczną implementację modeli finansowych. Poznasz również popularne biblioteki open source, które zapewniają dodatkowe środki do atakowania problemów matematycznych. Programiści C++ nieznający aplikacji finansowych również skorzystają z tego poręcznego przewodnika. - Nauka podstaw języka C++ z nowoczesnej perspektywy: składnia, dziedziczenie, polimorfizm, kompozycja, kontenery STL i algorytmy - Zanurzenie w nowszych cechach i abstrakcjach, w tym programowaniu funkcyjnym przy użyciu wyrażeń lambda, współbieżności opartej na zadaniach, a także inteligentnych wskaźnikach - Implementacja podstawowych procedur numerycznych w nowoczesnym C++ - Zrozumienie najlepszych praktyk w zakresie pisania czystego i wydajnego kodu Daniel Hanson przez ponad dwie dekady zajmował się modelowaniem finansowym i wytwarzaniem oprogramowania, głównie przy implementacji modeli wyceny opcji i ryzyka portfelowego w języku C++. Następnie został wykładowcą kierunku Computational Finance and Risk Management na Uniwersytecie Waszyngtońskim, gdzie prowadził zajęcia z programowania ilościowego w językach C++ i R, a także szkolenia z modelowania finansowego i strategii handlowych.

152
Loading...
EBOOK

Od matematyki do programowania. Wszystko, co każdy programista wiedzieć powinien

Wiesław Rychlicki

"Wędrówka do źródła kodu" Popularna definicja programowania określa je jako "proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych".   Wspomniany kod źródłowy może być napisany w różnych językach programowania, z użyciem określonych reguł. Każdy z języków pozwala na wykorzystanie odpowiednich stylów programowania, a wybór konkretnego języka może zależeć od indywidualnych upodobań, polityki firmy lub funkcji, jakie końcowa aplikacja ma realizować. W zasadzie nie istnieje odpowiedź na pytanie, który z języków jest najlepszy. Dlatego w tej książce nie znajdziesz typowego abecadła. Zapoznasz się za to z danym problemem, a następnie programem komputerowym służącym do jego rozwiązania. Jeśli chcesz wreszcie rozpocząć przygodę z programowaniem i nawiązać dialog ze swoim komputerem, ta publikacja jest właśnie dla Ciebie! Różnorodne obliczenia, mniej lub bardziej skomplikowane, znane Ci z lekcji matematyki lub nieznacznie wykraczające poza program nauczania, stanowią tutaj podstawę do zdobywania informacji na temat programowania w wybranych językach. Wybrane zadania zaprezentowane są w popularnych językach programowania: Pascal, C i C++. Stosowane algorytmy wymagają także sięgnięcia po różne funkcje matematyczne, dostępne standardowo w bibliotekach języków programowania oraz konstruowane na podstawie wzorów. Zostań informatycznym poliglotą. Programuj każdego dnia!