Minął ponad rok od czasu opublikowania poprzedniej recenzji. Autorem ostatniej był Sebastian Łaskawiec. Autorem dzisiejszej… Sebastian Łaskawiec :) Tym razem wziął pod lupę książkę Effective Modern C++ autorstwa Scotta Meyersa To już trzecia recenzja na koncie Sebastiana i jednocześnie siódma na koncie wszystkich naszych JUGowiczów.
Effective Modern C++
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively—so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in. It describes how to write truly great software using C++11 and C++14 — i.e. using modern C++.
Scott Douglas Meyers is an American author and software consultant, specializing in the C++ computer programming language. He is known for his Effective C++ book series. He is a frequent speaker at conferences and trade shows. He holds a Ph.D. in computer science from Brown University and M.S. in computer science from Stanford University.
The book describes new language features introduced in C++11 and 14.
The first paragraph explains how type resolution works in C++, which might be considered as an introduction to the second paragraph - auto types. The third paragraph is dedicated to several small improvements in C++11/14, like aliases, nullptrs or function overrides. Next paragraph is fully dedicated to smart pointers and their different use cases. Paragraph number five introduces std::move and std::forward concepts. Lambda expressions are covered in paragraph six and seventh introduces new concurrency API (Atomics). The last paragraph covers some minor tweaks.
The book is organized into items (similarly to “Effective Java”). Multiple items form paragraphs which cover broader topic (such as concurrency). All items are clearly defined and contain a lot of code snippets, which makes them easier to understand. The book is very concise and to-the-point and defiantly dedicated for intermediate or advanced C++ programmers who want to learn new language features.
Conclusion and recommendation
This book is like manual for new C/C++ features. I often get back to it when I want to use something new. Very strict language and a lot of code examples help to understand described concepts. From my perspective the best part was about Atomics. Dealing with multithreded code (especially targeted for multiple runtimes) was a nightmare before introducing concurrency features. It is also worth mentioning that this book is not meant for beginners. The reader needs to have at least some intermediate experience to learn more advanced concepts shown in the book.
Senior Software Developer in Red Hat interested in JEE containers and Caching technologies who spends most of his free time on home brewing, ice skating or skiing.
Szukamy kolejnych odważnych
Jeśli ktoś z Was chciałby otrzymać kopię wybranej przez siebie książki w zamian za jej recenzję, to zapraszamy do odpowiedniego wątku na naszej grupie dyskusyjnej. Dzięki partnerstwu z wydawnictwami Manning Publications Co., O’Reilly Media oraz Packt Publishing macie do wyboru bardzo szeroki wachlarz książek o różnorodnej tematyce.