- عنوان: Embracing Modern C++ Safely
- نویسنده/انتشارات: John Lakos
- حوزه: برنامه نویسی ++C
- سال انتشار: 2022
- تعداد صفحه: 1855
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 9.56 مگابایت
خوش آمدی! Embracing Modern C++ Safely یک کتاب مرجع است که برای حرفهایهایی طراحی شده است که سیستمهای نرمافزاری پیچیده C++ در مقیاس بزرگ را توسعه داده و نگهداری میکنند و میخواهند از ویژگیهای مدرن C++ استفاده کنند. این کتاب بر ارزش تولیدی هر ویژگی زبان جدید تمرکز دارد، که با C++11 شروع می شود، به ویژه زمانی که سیستم ها و سازمان های درگیر در مقیاس در نظر گرفته می شوند. ما عمداً ایدهها و اصطلاحات را کنار گذاشتیم – هر چند هوشمندانه و از نظر فکری جذاب – که وقتی برای سیستمهای در مقیاس بزرگ به کار میرفتند، میتوانند به نتیجه آسیب برسانند. درعوض، ما بر روی تصمیم گیری عاقلانه اقتصادی و طراحی، با درک مبادلات اجتناب ناپذیری که در هر رشته مهندسی به وجود می آید، تمرکز می کنیم. در انجام این کار، ما تمام تلاش خود را می کنیم تا از نظرات و توصیه های ذهنی خودداری کنیم. ریچارد فاینمن به قول معروف، «اگر با آزمایش موافق نباشد، اشتباه است. در این بیان ساده، کلید علم است.»1 هیچ راهی بهتر از این که اجازه دهید زمان کار خود را انجام دهد، برای آزمایش یک ویژگی زبان وجود ندارد. ما این را جدی گرفتیم و تصمیم گرفتیم فقط ویژگیهای C++ مدرن را پوشش دهیم که حداقل برای پنج سال بخشی از استاندارد بودهاند، که معتقدیم چشمانداز کافی برای ارزیابی درست تأثیر عملی ویژگیهای جدید فراهم میکند. بنابراین، ما می توانیم از تجربیات عملی استفاده کنیم تا درمان کامل و جامعی را ارائه دهیم که شایسته زمان محدود توسعه حرفه ای شما باشد. اگر به دنبال راههایی برای بهبود بهرهوری خود با استفاده از ویژگیهای آزمایش شده و واقعی C++ هستید، امیدواریم این کتاب کتابی باشد که به آن دست خواهید یافت. توسعه دهنده با تجربه، سرپرست تیم، یا مدیر؛ اینکه شما در حال حاضر تسلط خوبی به C++98/03 کلاسیک دارید. و اینکه به دنبال راههای روشن و هدفمند برای ادغام ویژگیهای C++ مدرن در جعبه ابزار خود هستید. هدف کتابی که اکنون می خوانید این است که عینی، تجربی و عملی باشد. ما به سادگی ویژگیها، کاربرد آنها و مشکلات احتمالی آنها را که با تجزیه و تحلیل میلیونها نفر-ساعت استفاده از C++11 و C++14 در توسعه سیستمهای نرمافزاری در مقیاس بزرگ منعکس شده است، ارائه میکنیم. مسائل ترجیحی شخصی تا حد امکان خنثی شده است. ما حقیقت مقطر باقیمانده را یادداشت کردیم، که باید درک شما را از آنچه C++ مدرن ارائه میدهد بدون اینکه توسط نظرات ذهنی ما یا تمایلات دامنه خاص ما منحرف شود، شکل دهد. تحلیل و تفسیر نهایی آنچه که برای زمینه شما مناسب است به شما، خواننده واگذار می شود. این کتاب، از نظر طراحی، یک سبک C++ یا راهنمای استانداردهای کدگذاری نیست. با این حال، ورودی ارزشمندی را برای هر سازمان توسعه ای که به دنبال ایجاد یا ارتقاء آن است، ارائه می دهد. عملی بودن در دنیای واقعی و اقتصادی برای ما مهم است. ما ویژگی های مدرن C++ را از طریق لنز یک شرکت بزرگ که نرم افزار را در یک محیط رقابتی توسعه و استفاده می کند، بررسی می کنیم. تجزیه و تحلیل ما علاوه بر اینکه به شما نشان میدهد چگونه از یک ویژگی زبان C++ در عمل به بهترین شکل استفاده کنید، هزینههای مربوط به استفاده معمول از آن ویژگی در اکوسیستم یک سازمان توسعه نرمافزار را در نظر میگیرد. اکثر متون هزینه های استفاده از ویژگی های زبان را حذف می کنند. به عبارت دیگر، ما مزایای استفاده موفقیتآمیز از یک ویژگی را در مقابل هزینه پنهان استفاده ناکارآمد (یا استفاده نادرست) گسترده آن و/یا هزینههای مرتبط با آموزش و بازبینی کد مورد نیاز برای اطمینان از عدم وقوع چنین استفادهای نادرست میسنجیم. . ما کاملاً آگاه هستیم که آنچه برای یک فرد یا خدمه کوچکی از افراد همفکر اعمال میشود، کاملاً متفاوت از آن چیزی است که با یک تیم بزرگ و توزیع شده کار میکند. نتیجه این تجزیه و تحلیل، دستهبندی امضای ما از ویژگیها بر اساس میزان ایمن بودن آنها است – یعنی ویژگیهای ایمن، مشروط ایمن یا ناایمن.
Welcome! Embracing Modern C++ Safely is a reference book designed for professionals who develop and maintain large-scale, complex C++ software systems and want to leverage modern C++ features. This book focuses on the productive value of each new language feature, starting with C++11, particularly when the systems and organizations involved are considered at scale. We deliberately left aside ideas and idioms — however clever and intellectually intriguing — that could hurt the bottom line when applied to large-scale systems. Instead, we focus on making wise economic and design decisions, with an understanding of the inevitable trade-offs that arise in any engineering discipline. In doing so, we do our best to steer clear of subjective opinions and recommendations. Richard Feynman famously said, “If it disagrees with experiment, it’s wrong. In that simple statement is the key to science.”1 There is no better way to experiment with a language feature than letting time do its work. We took that to heart and decided to cover only the features of modern C++ that have been part of the Standard for at least five years, which we believe provides enough perspective to properly evaluate the practical impact of new features. Thus, we are able to draw from practical experience to provide a thorough and comprehensive treatment that is worthy of your limited professional development time. If you’re looking for ways to improve your productivity by using tried and true modern C++ features, we hope this book will be the one you’ll reach for. experienced developer, team lead, or manager; that you already have a good command of classic C++98/03; and that you are looking for clear, goaldriven ways to integrate modern C++ features into your toolbox. The goal of the book you’re now reading is to be objective, empirical, and practical. We simply present features, their applicability, and their potential pitfalls as reflected by the analysis of millions of person-hours of using C++11 and C++14 in the development of varied large-scale software systems; personal preference matters have been neutralized to our best ability. We wrote down the distilled truth that remains, which should shape your understanding of what modern C++ has to offer without being skewed by our subjective opinions or domain-specific inclinations. The final analysis and interpretation of what is appropriate for your context is left to you, the reader. This book is, by design, not a C++ style or codingstandards guide; it does, however, provide valuable input to any development organization seeking to author or enhance one. Practicality is important to us in a real-world, economic sense. We examine modern C++ features through the lens of a large company developing and using software in a competitive environment. In addition to showing you how to best utilize a given C++ language feature in practice, our analysis takes into account the costs associated with routinely employing that feature in the ecosystem of a software development organization. Most texts omit the costs of using language features. In other words, we weigh the benefits of successfully using a feature against the hidden cost of its widespread ineffective use (or misuse) and/or the costs associated with training and code review required to reasonably ensure that such ill-conceived use does not occur. We are acutely aware that what applies to one person or a small crew of like-minded individuals is quite different from what works with a large, distributed team. The outcome of this analysis is our signature categorization of features based on how safe they are to adopt — namely, safe, conditionally safe, or unsafe features.
این کتاب را میتوانید بصورت رایگان از لینک زیر دانلود نمایید.
Download: Embracing Modern C++ Safely
نظرات کاربران