Rich Yonts

#Cpp
👨💻 با کاوش در رایجترین اشتباهاتی که در کدهای C++ در محیط عملیاتی (production) پیدا میکنید، یاد بگیرید که چگونه با خطاها، ناکارآمدیها و پارادایمهای منسوخ دست و پنجه نرم کنید.
📖 کتاب «۱۰۰ اشتباه در C++ و نحوه اجتناب از آنها» مشکلاتی را که به ناچار هنگام نوشتن کدهای جدید C++ و عیبیابی اپلیکیشنهای قدیمی (legacy) با آنها روبرو میشوید، به همراه تکنیکهای عملی مورد نیاز برای حل آنها، آشکار میسازد.
💡 در کتاب «۱۰۰ اشتباه در C++ و نحوه اجتناب از آنها» یاد خواهید گرفت که چگونه:
🏛️ کلاسهای مستحکم و اصولی طراحی کنید.
🗑️ مشکلات مربوط به تخصیص و آزادسازی منابع را به حداقل برسانید.
✨ از ویژگیهای جدید C++ استفاده کنید.
🔬 تفاوتهای بین مشکلات زمان کامپایل (compile-time) و زمان اجرا (runtime) را تشخیص دهید.
🧐 اصطلاحات رایج به سبک زبان C را که از قابلیتهای C++ بیبهرهاند، شناسایی کنید.
🙌 از استثناها (Exceptions) به درستی استفاده کنید.
🥋 کتاب «۱۰۰ اشتباه در C++ و نحوه اجتناب از آنها» بینشها و تکنیکهای عملی را برای بهبود «کونگفوی کدنویسی» شما در C++ ارائه میدهد. نویسنده، ریچ یانتس (Rich Yonts)، از زمان اختراع C++ در دهه ۱۹۸۰ از آن استفاده کرده است. این کتاب آن تجربه را در قالب توصیههای عملی و قابل استفاده مجدد خلاصه میکند تا برنامهنویسان C++ در هر سطحی از مهارت بتوانند کد خود را بهبود بخشند.
🚀 برخلاف بسیاری از کتابهای C++ که بر تئوری زبان و تمرینهای ساده و غیرواقعی تمرکز دارند، این کتاب مملو از مثالهای واقعی از پایگاههای کد (codebases) در محیط پروداکشن است.
🌍 بیش از ده میلیارد خط کد C++ در اپلیکیشنهای عملیاتی در حال اجرا هستند و توسعهدهندگان هر روز در حال پیدا کردن و رفع اشتباهات موجود در آنها هستند.
🐞 حتی اپلیکیشنهای حیاتی و بسیار حساس (mission-critical) نیز دارای باگ، ناکارآمدی در عملکرد و مشکلات خوانایی هستند. این کتاب به شما کمک میکند تا این مشکلات را در کدهایی که نگهداری میکنید شناسایی کرده و از بروز آنها در کدهایی که مینویسید، جلوگیری کنید.
🛠️ کتاب «۱۰۰ اشتباه در C++ و نحوه اجتناب از آنها» تکنیکهای عملی برای بهبود کد C++ ارائه میدهد؛ از اپلیکیشنهای قدیمی گرفته تا پایگاههای کد مدرن که از C++11 و نسخههای جدیدتر استفاده میکنند.
👨🏫 نویسنده، ریچ یانتس، برای هر موضوع یک مثال مشخص برای توضیح مشکل ارائه میدهد و به دنبال آن یک راهنمای گام به گام برای بهبود خوانایی، کارایی و عملکرد ارائه میکند. در طول مسیر، شما حتی یاد خواهید گرفت که چگونه و در کجا الگوها و اصطلاحات منسوخ را با C++ مدرن جایگزین کنید.
🏗️ طراحی کلاسهای مستحکم
♻️ مشکلات تخصیص/آزادسازی منابع
⚙️ مشکلات زمان کامپایل و زمان اجرا
🔄 جایگزینی اصطلاحات سبک C با C++ مناسب
🎯 برای چه کسانی مناسب است؟
این کتاب نسخههای C++98 تا C++23 را پوشش میدهد، با تاکید ویژه بر عیبیابی و بهبود کدهای قدیمی (legacy).
بخش ۱. C++ مدرن
بخش ۲. C++ انتقالی
بخش ۳. C++ کلاسیک (پیشامدرن)
ریچ یانتس یک مهندس نرمافزار ارشد در Teradata و یک مهندس نرمافزار با سابقه طولانی در استفاده از C++، جاوا و پایتون است. ریچ در طول سالها فعالیت خود در IBM و Sony، تعدادی از نقشهای فنی و مدیریتی را بر عهده داشته است. او به عنوان استادیار، با سوالات و مشکلات دانشجویان کارشناسی و کارشناسی ارشد در حال یادگیری برنامهنویسی سر و کار داشته است. او تجربهی عمیقی در کار با پایگاههای کد بزرگ دارد و خود را هم یک دانشآموز و هم یک معلم C++ میداند.
Learn how to handle errors, inefficiencies, and outdated paradigms by exploring the most common mistakes you’ll find in production C++ code.
100 C++ Mistakes and How To Avoid Them reveals the problems you’ll inevitably encounter as you write new C++ code and diagnose legacy applications, along with practical techniques you need to resolve them.
Inside 100 C++ Mistakes and How To Avoid Them you’ll learn how to:
• Design solid classes
• Minimize resource allocation/deallocation issues
• Use new C++ features
• Identify the differences between compile and runtime issues
• Recognize C-style idioms that miss C++ functionality
• Use exceptions well
100 C++ Mistakes and How To Avoid Them gives you practical insights and techniques to improve your C++ coding kung fu. Author Rich Yonts has been using C++ since its invention in the 1980s. This book distills that experience into practical, reusable advice on how C++ programmers at any skill level can improve their code. Unlike many C++ books that concentrate on language theory and toy exercises, this book is loaded with real examples from production codebases.
About the technology
Over ten billion lines of C++ code are running in production applications, and 98-developers find and fix mistakes in them every day. Even mission-critical applications have bugs, performance inefficiencies, and readability problems. This book will help you identify them in the code you’re maintaining and avoid them in the code you’re writing.
About the book
100 C++ Mistakes and How To Avoid Them presents practical techniques to improve C++ code, from legacy applications to modern codebases that use C++ 11 and beyond. Author Rich Yonts provides a concrete example to illustrate each issue, along with a step-by-step walkthrough for improving readability, effectiveness, and performance. Along the way, you’ll even learn how and where to replace outdated patterns and idioms with modern C++.
What's inside
• Design solid classes
• Resource allocation/deallocation issues
• Compile and runtime problems
• Replace C-style idioms with proper C++
About the reader
Covers C++ 98 through 23, with an emphasis on diagnosing and improving legacy code.
About the author
Rich Yonts is a Senior Software Engineer at Teradata and a long-time software engineer using C++, Java, and Python. He has held a number of technical and leadership roles during his many years at IBM and Sony.
Table of Contents
1. C++: With great power comes great responsibility
Part 1. Modern C++
2. Better modern C++: Classes and types
3. Better modern C++: General programming
4. Better modern C++: Additional topics
Part 2. Transitional C++
5. C idioms
6. Better premodern C++
Part 3. Classic (premodern) C++
7. Establishing the class invariant
8. Maintaining the class invariant
9. Class operations
10. Exceptions and resources
11. Functions and coding
12. General coding
About the Author
Rich Yonts is a Senior Software Engineer at Teradata and a long-time software engineer using C++, Java, and Python. Rich held a number of technical and leadership roles during his many years at IBM and Sony. As an assistant professor, he has dealt with questions and issues of undergraduate and graduate students learning programming. He has deep experience on large code bases and considers himself both a student and a teacher of C++.









