کتاب Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code (سی پلاس پلاس زیبا: 30 دستورالعمل اصلی برای نوشتن کدهای تمیز، ایمن و سریع) دستورالعملهای اصلی C++ را از دیدگاه یک توسعهدهنده با تأکید بر اینکه چه مزایایی از پیروی از قوانین به دست میآید و چه کابوسهایی میتواند از نادیده گرفتن آنها حاصل شود، ارائه میکند. کتاب Beautiful C++ برای گیکهای واقعی، خواندن آن آسان و سرگرمکننده است. برای اکثر توسعهدهندگان نرمافزار، چیز جدید و مفیدی ارائه میدهد.
در ادامه مقدمهای از کتاب Beautiful C++ را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Beautiful C++:
پیچیدگی نوشتن ++C با هر استاندارد جدید و هر قطعه جدید از ادبیات تدریس در حال کاهش است. کنفرانسها، وبلاگها و کتابها فراوانند و این چیز خوبی است. دنیا مهندسان کافی با کیفیت کافی برای حل مشکلات واقعی ما را ندارد.
با وجود سادهسازی مداوم زبان، هنوز چیزهای زیادی برای یادگیری در مورد نحوه نوشتن ++C خوب وجود دارد. Bjarne Stroustrup، مخترع C++، و Herb Sutter، گردآورنده بدنه استاندارد که C++ را حفظ میکند، منابع قابل توجهی را برای ایجاد مواد آموزشی برای یادگیری C++ و نوشتن بهتر C++ اختصاص دادهاند. این مجلدات شامل زبان برنامهنویسی C++۱ و A Tour of C++، ۲ و همچنین استانداردهای کدنویسی استثنایی C++۳ و C++ است.
- ۱. Stroustrup، B، ۲۰۱۳. زبان برنامهنویسی C++، ویرایش چهارم. بوستون: ادیسون-وسلی.
- ۲. Stroustrup، B، ۲۰۱۸. A Tour of C++، نسخه دوم. بوستون: ادیسون-وسلی.
- ۳. Sutter، H، ۱۹۹۹. Exceptional C++. ریدینگ، MA: ادیسون-وسلی.
- ۴. Sutter، H، and Alexandrescu، A، ۲۰۰۴. استانداردهای کدگذاری C++. بوستون: ادیسون-وسلی.
مشکل کتابها، حتی این حجم کم، این است که آنها تصویری فوری از وضعیت امور را نشان میدهند، با این حال C++ یک زبان دائماً در حال تکامل است. توصیه خوبی در سال ۱۹۹۸ ممکن است دیگر آنقدر هوشمندانه نباشد. یک زبان در حال تکامل به یک راهنمای در حال تکامل نیاز دارد.
یک منبع آنلاین، C++ Core Guidelines، ۵ در کنفرانس CppCon در سال ۲۰۱۵ توسط Bjarne Stroustrup و Herb Sutter در طی دو سخنرانی کلیدی ۷ خود راهاندازی شد. دستورالعملها توصیههای بسیار عالی و سادهای را برای بهبود سبک ++C شما ارائه میدهند، به گونهای که بتوانید در اولین تلاش خود کد صحیح، کارآمد و کارآمد بنویسید. این راهنمای در حال تکاملی است که پزشکان ++C به آن نیاز دارند و نویسندگان از بررسی درخواستهای کشش با اصلاحات و بهبودها خوشحال خواهند شد. همه، از مبتدی تا پیشکسوت، باید بتوانند از توصیههای آن پیروی کنند.
دستورالعملها توصیههای بسیار عالی و سادهای را برای بهبود سبک ++C شما ارائه میدهند، به گونهای که بتوانید در اولین تلاش خود کد صحیح، کارآمد و کارآمد بنویسید.
در پایان فوریه ۲۰۲۰، در مورد #شامل اختلاف، ۸ کیت گرگوری علاقهمند به تولید کتابی درباره دستورالعملهای اصلی بود و من با احتیاط از این فرصت استفاده نکردم. کیت در CppCon ۲۰۱۷۹ سخنرانی کرد و تنها به ۱۰ مورد از دستورالعملهای اصلی نگاه کرد. من اشتیاق او را برای ترویج برنامهنویسی بهتر به اشتراک میگذارم.
من رئیس بخش مهندسی در Creative Assembly، قدیمیترین و بزرگترین استودیوی بازیسازی بریتانیا هستم، که بیش از ۲۰ سال گذشته را در آنجا صرف کردهام تا مهندسان خوب خود را به مهندسان بزرگتری تبدیل کنم.
مشاهده ما این است که علیرغم در دسترس بودن و سادگی دستورالعملهای اصلی، بسیاری از توسعهدهندگان با آنها آشنایی خاصی ندارند. ما میخواهیم استفاده از آنها را تبلیغ کنیم و تصمیم گرفتیم کتاب Beautiful C++ را بنویسیم زیرا ادبیات کافی در مورد آنها وجود ندارد.
دستورالعملهای اصلی را میتوانید در https://isocpp. github. io/CppCoreGuidelines/CppCoreGuidelines بیابید. آنها کاملاً مملو از توصیههای عالی هستند: در واقع، سخت است که بدانید از کجا شروع کنید. خواندن از بالا به پایین امکانپذیر است، اما درک کل مجموعه توصیهها بدون خواندن مکرر کار سختی است.
آنها در ۲۲ بخش اصلی با عناوینی مانند \”رابط ها\”، \”توابع\”، \”همزمان\” و غیره سازماندهی شدهاند. هر بخش از دستورالعملهای فردی تشکیل شده است، گاهی چند، گاهی دهها. دستورالعملها با حرف بخش اصلی آنها، سپس تعداد آنها در بخش، با یک نقطه از هم جدا میشوند. برای مثال، «F. ۳: توابع را کوتاه و ساده نگه دارید» سومین دستورالعمل در بخش F کتاب Beautiful C++، «توابع» است.
هر دستورالعمل به روشی مشابه سفارش داده شده است. با عنوان راهنما شروع میشود که به عنوان یک عمل (این کار را انجام ندهید، این کار را انجام ندهید، از این کار اجتناب کنید، این را ترجیح دهید) و به دنبال آن یک دلیل و چند مثال و احتمالاً استثنایی از دستورالعمل ارائه میشود.
در نهایت، یادداشتی در مورد نحوه اجرای دستورالعمل وجود دارد. یادداشتهای اجرایی از توصیه به نویسندگان ابزارهای تجزیه و تحلیل استاتیک تا نکاتی در مورد نحوه انجام بازبینی کد را شامل میشود. به نظر میرسد که خواندن آنها مهارت دارد. تصمیمگیری در مورد اولویتبندی کد خود یک موضوع کشف شخصی است. اجازه دهید به شما نشان دهیم که چگونه میتوانید از خرد آنها استفاده کنید.
لبههای تیز در C++ و همچنین گوشههای غبارآلود وجود دارد که در C++ مدرن چندان مورد بازدید قرار نمیگیرند. ما میخواهیم شما را از اینها دور کنیم. ما میخواهیم به شما نشان دهیم که C++ نباید سخت، پیچیده یا چیزی باشد که به اکثر توسعهدهندگان قابل اعتماد نباشد.
درباره کتاب Beautiful C++
در کتاب Beautiful C++ ما ۳۰ مورد از بهترین دستورالعملهای هسته C++ را ارائه میدهیم. با توضیح کامل این دستورالعملها، امیدواریم که حداقل از آنها پیروی کنید، حتی اگر تصمیم به بررسی باقیمانده ندارید.
مجموعهای که ما انتخاب کردهایم لزوماً مهمترین نیستند. با این حال، آنها مطمئناً مجموعهای هستند که بلافاصله کد شما را برای بهتر شدن تغییر میدهند. البته، ماامیدواریم که شما نیز ببینید که بسیاری از دستورالعملهای خوب دیگر نیز وجود دارد که میتوانید آنها را دنبال کنید. ماامیدواریم که بقیه را بخوانید و آنها را در کد خود امتحان کنید. همانطور که دستورالعملهای اصلی تمام توسعهدهندگان ++C با تمام سطوح تجربه را هدف قرار میدهد، کتاب Beautiful C++ نیز برای افراد مشابهی در نظر گرفته شده است.
با پیشرفت کتاب، پیچیدگی مطالب افزایش نمییابد، و همچنین ترتیب لازم برای خواندن فصلها وجود ندارد. آنها مستقل از یکدیگر هستند، اگرچه ممکن است صریحاً به فصلهای دیگر اشاره کنند. ما هر فصل از کتاب Beautiful C++ را در حدود سه هزار کلمه نگه داشتیم، بنابراین ممکن است تصمیم بگیرید که این یک جلد کنار تخت است تا یک کتاب درسی. هدف آموزش ++C به شما نیست، بلکه توصیه به شما است که چگونه سبک خود را بهبود ببخشید.
ما دستورالعملهای کتاب Beautiful C++ را به پنج بخش از شش فصل تقسیم کردیم، به دنبال ارائه اصلی کیت به CppCon در سال ۲۰۱۷.
در بخش ۱ کتاب Beautiful C++، «دوچرخهسازی بد است»، دستورالعملهایی ارائه میکنیم که به شما امکان میدهد به سادگی درباره زمان انجام A یا B تصمیم بگیرید.
مجموعهای خاص از As و Bs، و با کمترین سر و صدا و بحث ادامه دهید. \”Bikeshedding\” ۱۰ از \”قانون بیاهمیتی\” C. Northcote Parkinson مشتق شده است، استدلالی که اعضای سازمان معمولاً وزن نامتناسبی را به مسائل بیاهمیت میدهند، مانند رنگ رنگ کردن یک سطل دوچرخه در مقایسه با معیارهای آزمایش برای نیروگاه هستهای که در آن قرار دارد. پیوست است، زیرا این تنها چیزی است که همه درباره آن چیزی میدانند.
در بخش ۲ کتاب Beautiful C++، «به خودتان آسیب نرسانید»، دستورالعملهایی را برای جلوگیری از آسیب شخصی هنگام نوشتن کد ارائه میکنیم. یکی از مشکلات پیچیدگی باقیمانده C++ این است که چندین مکان وجود دارد که میتوانید به راحتی به پای خود شلیک کنید. برای مثال، در حالی که پر کردن فهرست اولیه سازنده به هر ترتیب قانونی است، انجام این کار هرگز عاقلانه نیست.
بخش ۳ کتاب Beautiful C++ «استفاده از آن را متوقف کنید» نام دارد و به بخشهایی از زبان میپردازد که به دلایل سازگاری عقب مانده، همراه با توصیههایی که قبلاً ارزشمند بودند، اما با پیشرفتهای زبان جایگزین شدهاند، میپردازد.
همانطور که C++ در حال تکامل است، چیزهایی که در آن زمانایده خوبی به نظر میرسیدند، گاهی اوقات خود را کم ارزشتر از آنچه در ابتدا انتظار میرفت نشان میدهند. فرآیند استانداردسازی این موارد را برطرف میکند، اما همه باید در مورد آنها مطلع باشند، زیرا اگر متوجه شوید که با یک پایگاه کد قدیمی کار میکنید، ممکن است با نمونههایی روبرو شوید. ++C تضمینی برای سازگاری با عقب را ارائه میدهد: کدهایی که ۵۰ سال پیش در C نوشته شدهاند باید امروز نیز کامپایل شوند.
بخش ۴ کتاب Beautiful C++ با عنوان \”از این چیز جدید به درستی استفاده کنید\” دنبال میشود. چیزهایی مانند مفاهیم، constexpr، ساختاربندی شده و غیره در هنگام استقرار نیاز به مراقبت دارند. باز هم، C++ یک استاندارد در حال تکامل است و چیزهای جدیدی با هر نسخه ظاهر میشود، که برای پشتیبانگیری از آنها نیاز به آموزش دارد. اگرچه هدف این متن آموزش ویژگیهای جدید C++۲۰ نیست، اما این دستورالعملها به شما طعمی از نحوه درک ویژگیهای جدید میدهد.
بخش ۵ کتاب Beautiful C++، بخش پایانی، با عنوان \”به طور پیش فرض کد را به خوبی بنویسید. \” اینها دستورالعملهای سادهای هستند که در صورت رعایت آنها، منجر به ایجاد کد خوب بدون نیاز به فکر کردن زیاد در مورد آنچه در حال وقوع است، میشود. آنها منجر به تولید C++ اصطلاحی خوب میشوند که توسط همکاران شما قابل درک و قدردانی خواهد بود.
در سراسر کتاب Beautiful C++، مانند هر متن خوب، مضامین ظهور و توسعه یافته است. بخشی از لذت نوشتن کتاب Beautiful C++، که امیدوارم با خواندن آن نیز ترجمه شود، این بوده است که ببینیم چه چیزی باعث انگیزه دستورالعملها میشود و دروننگری درباره کاربرد گستردهتر این انگیزهها. بسیاری از دستورالعملها، هنگامی که با دقت به خورشید در مکان مناسب نگاه میکنند، برخی از حقایق اساسی مهندسی نرمافزار را به روشهای مختلف بازگو میکنند. استخراج این حقایق به میزان زیادی عملکرد برنامهنویسی شما را بهبود میبخشد.
ما واقعاً امیدواریم که از این کتاب لذت ببرید و از آن سود ببرید.
سرفصلهای کتاب Beautiful C++:
- Cover Page
- About This eBook
- Halftitle Page
- Title Page
- Copyright Page
- Pearson’s Commitment to Diversity, Equity, and Inclusion
- Contents
- Selected C++ Core Guidelines
- Foreword
- Preface
- Acknowledgments
- About the Authors
- Section 1: Bikeshedding is bad
- Chapter 1.1. P.2: Write in ISO Standard C++
- Chapter 1.2. F.51: Where there is a choice, prefer default arguments over overloading
- Chapter 1.3. C.45: Don’t define a default constructor that only initializes data members; use in-class member initializers instead
- Chapter 1.4. C.131: Avoid trivial getters and setters
- Chapter 1.5. ES.10: Declare one name (only) per declaration
- Chapter 1.6. NR.2: Don’t insist to have only a single return-statement in a function
- Section 2: Don’t hurt yourself
- Chapter 2.1. P.11: Encapsulate messy constructs, rather than spreading through the code
- Chapter 2.2. 1.23: Keep the number of function arguments low
- Chapter 2.3. 1.26: If you want a cross-compiler ABI, use a C-style subset
- Chapter 2.4. C.47: Define and initialize member variables in the order of member declaration
- Chapter 2.5. CP.3: Minimize explicit sharing of writable data
- Chapter 2.6. T.120: Use template metaprogramming only when you really need to
- Section 3: Stop using that
- Chapter 3.1. 1.11: Never transfer ownership by a raw pointer (T*) or reference (T&)
- Chapter 3.2. 1.3: Avoid singletons
- Chapter 3.3. C.90: Rely on constructors and assignment operators, not memset and memcpy
- Chapter 3.4. ES.50: Don’t cast away const
- Chapter 3.5. E.28: Avoid error handling based on global state (e.g. errno)
- Chapter 3.6. SF.7: Don’t write using namespace at global scope in a header file
- Section 4: Use this new thing properly
- Chapter 4.1. F.21: To return multiple “out” values, prefer returning a struct or tuple
- Chapter 4.2. Enum.3: Prefer class enums over “plain” enums
- Chapter 4.3. ES.5: Keep scopes small
- Chapter 4.4. Con.5: Use constexpr for values that can be computed at compile time
- Chapter 4.5. T.1: Use templates to raise the level of abstraction of code
- Chapter 4.6. T.10: Specify concepts for all template arguments
- Section 5: Write code well by default
- Chapter 5.1. P.4: Ideally, a program should be statically type safe
- Chapter 5.2. P.10: Prefer immutable data to mutable data
- Chapter 5.3. 1.30: Encapsulate rule violations
- Chapter 5.4. ES.22: Don’t declare a variable until you have a value to initialize it with
- Chapter 5.5. Per.7: Design to enable optimization
- Chapter 5.6. E.6: Use RAll to prevent leaks
- Envoi
جهت دانلود کتاب Beautiful C++ میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.