کتاب Effective C, 2nd Edition: An Introduction to Professional C Programming (C مؤثر، ویرایش دوم: مقدمهای بر برنامهنویسی حرفهای C) یک راهنمای جامع و کاربردی برای علاقهمندان به یادگیری زبان برنامهنویسی C است.
کتاب Effective C با رویکردی عملی و مثالهای کاربردی، شما را از مبانی اولیه برنامهنویسی C تا ساخت سیستمهای پیچیده هدایت میکند. با مطالعه این کتاب، نه تنها مفاهیم اساسی زبان C را فرا میگیرید، بلکه بهترین روشها برای نوشتن کدهای ایمن، کارآمد و قابل نگهداری را نیز یاد خواهید گرفت.
در ادامه مقدمهای از کتاب Effective C را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Effective C:
زبان برنامه نویسی C
زبان C در دهه 1970 به عنوان یک زبان برنامه نویسی سیستمعامل توسعه یافت و حتی پس از گذشت این همه سال، همچنان بسیار محبوب است. زبانهای سیستمعامل برای عملکرد بالا و دسترسی آسان به سختافزار زیربنایی در عین حال ارائه ویژگیهای سطح بالای برنامهنویسی طراحی شدهاند. در حالی که ممکن است سایر زبانها ویژگیهای جدیدتری ارائه دهند، کامپایلرها و کتابخانههای آنها معمولاً با C نوشته شدهاند.
کارل سیگن (Carl Sagan) زمانی گفت: «اگر میخواهید یک پای سیب از ابتدا درست کنید، ابتدا باید جهان را اختراع کنید.» ابداع کنندگان C جهان را اختراع نکردند؛ آنها C را برای کار با سختافزار و معماریهای محاسباتی متنوعی طراحی کردند که به نوبه خود توسط فیزیک و ریاضی محدود شدهاند. C مستقیماً روی سختافزار رایانه قرار میگیرد و آن را نسبت به زبانهای سطح بالاتر که معمولاً برای کارایی خود به C متکی هستند، نسبت به ویژگیهای در حال تکامل سختافزار، مانند دستورالعملهای برداری، حساستر میکند.
طبق شاخص TIOBE (https://www.tiobe.com/tiobe-index/) – که رتبهبندی آن بر اساس تعداد مهندسان ماهر، دورهها و فروشندگان شخص ثالث برای هر زبان است – C از سال 2001 محبوبترین یا دومین زبان برنامهنویسی محبوب بوده است. محبوبیت زبان برنامه نویسی C را به احتمال زیاد میتوان به چند اصل از این زبان که به عنوان روح C شناخته میشود، نسبت داد:
- به برنامهنویس اعتماد کنید. زبان C فرض میکند که شما میدانید چه کاری انجام میدهید و به شما اجازه میدهد. این همیشه چیز خوبی نیست (مثلاً اگر نمیدانید چه کار میکنید).
- مانع برنامهنویس برای انجام کارهای مورد نیاز نشوید. از آنجایی که C یک زبان برنامه نویسی سیستمعامل است، باید انواع کارهای سطح پایین را مدیریت کند.
- زبان را کوچک و ساده نگه دارید. این زبان برای نزدیک بودن به سختافزار و داشتن ردپای کوچک طراحی شده است.
- فقط یک روش برای انجام یک عملیات ارائه دهید. همچنین به عنوان حفظ مکانیزم شناخته میشود، زبان C سعی میکند معرفی مکانیزمهای تکراری را محدود کند.
- آن را سریع کنید، حتی اگر قابل انتقال نباشد. اولویت اصلی این است که به شما امکان نوشتن کد با کارایی بهینه را بدهد. مسئولیت اطمینان از قابل انتقال، ایمن و امن بودن کد به شما، برنامه نویس، تفویض شده است.
C به عنوان زبان هدف برای کامپایلرهای ساخت سیستمعامل، آموزش اصول محاسبات، و برای برنامه نویسی توکار و کاربردی عمومی استفاده میشود.
مقدار زیادی کد قدیمی با C نوشته شده است. کمیته استانداردهای C بسیار مراقب است که کد موجود را خراب نکند و یک گذر نرم برای نوسازی این کد برای استفاده از ویژگیهای زبان مدرن ارائه دهد.
C اغلب در سیستمهای توکار استفاده میشود زیرا یک زبان کوچک و کارآمد است. سیستمهای توکار رایانههای کوچکی هستند که در دستگاههای دیگر مانند خودرو، لوازم خانگی و تجهیزات پزشکی تعبیه شدهاند.
زبان برنامه نویسی و کتابخانه مورد علاقه شما با C نوشته شده است (یا زمانی نوشته شده بود). کتابخانههای زیادی برای C در دسترس هستند. این امر یافتن کتابخانههایی را که میتوان برای انجام کارهای رایج استفاده کرد، آسان میکند.
در مجموع، C یک زبان قدرتمند و همه کاره است که هنوز هم به طور گسترده مورد استفاده قرار میگیرد. این زبان برای برنامهنویسانی که به یک زبان سریع، کارآمد و قابل انتقال نیاز دارند، انتخاب مناسبی است.
کتاب Effective C برای چه کسانی مناسب است؟
این کتاب یک مقدمه برای یادگیری زبان برنامه نویسی C است. هدف آن ارائه روشی قابل دسترس برای هر کسی است که میخواهد برنامهنویسی C را بدون سادهسازی بیش از حد یاد بگیرد. به عبارت دیگر، برخلاف بسیاری از کتابها و دورههای مقدماتی دیگر، ما برنامهنویسی C را بیش از حد ساده نکردهایم. این منابع بسیار ساده فقط به شما نحوه کامپایل و اجرای کد را آموزش میدهند، اما ممکن است خود کد نادرست باشد.
توسعهدهندگانی که با چنین منابعی برنامهنویسی C را یاد میگیرند، معمولاً کدهای ناقص، غیرحرفهای و ناامن ایجاد میکنند که در نهایت (اغلب به زودی) نیاز به بازنویسی دارند. امیدواریم این توسعهدهندگان در نهایت از توسعهدهندگان ارشد سازمان خود بهرهمند شوند که به آنها کمک کنند تا این برداشتهای نادرست و مضر در مورد برنامهنویسی C را فراموش کنند و به آنها در شروع توسعه کد با کیفیت حرفهای C کمک کنند.
از طرف دیگر، کتاب Effective C به سرعت به شما یاد میدهد که چگونه کد صحیح، قابل حمل، حرفهای و باکیفیت را توسعه دهید؛ برای توسعه سیستمهای حیاتی امنیتی و حیاتی ایمنی، پایه و اساس ایجاد کنید؛ و شاید حتی چیزهایی را به شما یاد دهد که حتی توسعهدهندگان ارشد سازمانتان هم نمیدانند.
“Effective C: An Introduction to Professional C Programming”, ویرایش دوم، یک مقدمه مختصر برای برنامهنویسی ضروری به زبان C است که به زودی شما را قادر میسازد تا برنامه بنویسید، مشکلات را حل کنید و سیستمهای کارآمد بسازید. نمونههای کد واقعی و سرراست هستند. شما همچنین در مورد شیوههای مهندسی نرمافزار خوب برای توسعه کد C صحیح و امن اطلاعات کسب میکنید.
در کتاب Effective C، شما در مورد مفاهیم برنامهنویسی ضروری در C یاد خواهید گرفت و با تمرینهایی برای هر موضوع، نوشتن کد با کیفیت بالا را تمرین خواهید کرد. لیست کدهای این کتاب و منابع اضافی را میتوانید در GitHub در آدرس https://github.com/rcseacord/effective-c پیدا کنید.
کتاب Effective C چه چیزی در خود دارد؟
این کتاب با یک فصل مقدماتی شروع میشود که به اندازهای مطالب را پوشش میدهد که شما از همان ابتدا بتوانید برنامهنویسی را شروع کنید. پس از آن، ما به عقب برمیگردیم و به بررسی بلوکهای سازنده اولیه زبان میپردازیم.
کتاب Effective C با دو فصل به پایان میرسد که به شما نشان میدهد چگونه از این بلوکهای سازنده، سیستمهای واقعی را بسازید و چگونه کد نوشته شده خود را اشکالزدایی، تست و تجزیه و تحلیل کنید. فصلها به شرح زیر هستند:
فصل ۱: شروع با C
شما یک برنامه C ساده مینویسید تا با استفاده از تابع اصلی (main function) آشنا شوید. همچنین به چند گزینه برای ویرایشگرها و کامپایلرها نگاهی خواهید انداخت.
فصل ۲: اشیاء، توابع و انواع (Objects, Functions, and Types)
این فصل از کتاب Effective C به اصول اولیهای مانند اعلام متغیرها و توابع میپردازد. شما همچنین اصول استفاده از انواع اساسی را بررسی خواهید کرد.
فصل ۳: انواع دادههای حسابی (Arithmetic Types)
شما در مورد انواع داده حسابی صحیح و ممیز شناور (integer and floating-point) یاد خواهید گرفت.
فصل ۴: عبارات و عملگرها (Expressions and Operators)
شما در مورد عملگرها و نحوه نوشتن عبارات ساده برای انجام عملیات روی انواع مختلف اشیاء یاد خواهید گرفت.
فصل ۵: جریان کنترل (Control Flow)
شما یاد خواهید گرفت که چگونه ترتیبی را که عبارات فردی ارزیابی میشوند، کنترل کنید. ما عبارات و عبارات مرکب را که کار انجامشده را تعریف میکنند، معرفی خواهیم کرد. سپس به سراغ دستورات کنترلی میرویم که مشخص میکنند کدام بلوکهای کد و به چه ترتیبی اجرا میشوند: دستورات انتخاب، تکرار و پرش.
فصل ۶: حافظه اختصاص یافته پویا
در این فصل از کتاب Effective C، با حافظه اختصاص یافته پویا آشنا خواهید شد که در زمان اجرای برنامه از فضایی به نام «پشته» (heap) اختصاص مییابد. زمانی که نیازهای دقیق ذخیرهسازی برای یک برنامه قبل از اجرا مشخص نباشد، استفاده از حافظه اختصاص یافته پویا مفید است.
فصل ۷: کاراکترها و رشتهها
این فصل از کتاب Effective C به مجموعه کاراکترهای مختلف، از جمله ASCII و یونیکد، که برای ساختن رشتهها (string) قابل استفاده هستند، میپردازد. شما یاد خواهید گرفت که چگونه رشتهها با استفاده از توابع قدیمی کتابخانه استاندارد C، رابطهای بررسی مرز (bounds-checking) و رابطهای برنامهنویسی کاربردی (API) سیستمهای عامل POSIX و ویندوز نشان داده و دستکاری میشوند.
فصل ۸: ورودی/خروجی
این فصل از کتاب Effective C، به شما نحوه انجام عملیات ورودی/خروجی (I/O) برای خواندن داده از پایانهها و سیستمهای فایل یا نوشتن داده در آنها را آموزش میدهد. ورودی/خروجی شامل تمام روشهایی است که اطلاعات وارد یا خارج از یک برنامه میشود. ما تکنیکهایی را پوشش خواهیم داد که از جریانهای استاندارد C و توصیفگرهای فایل POSIX استفاده میکنند.
فصل ۹: پیشپردازنده
شما یاد خواهید گرفت که چگونه از پیشپردازنده برای درج فایلها، تعریف ماکروهای شبیه شیء و تابع، و درج شرطی کد بر اساس ویژگیهای خاص پیادهسازی استفاده کنید.
فصل ۱۰: ساختار برنامه
شما یاد خواهید گرفت که چگونه برنامه خود را به چندین واحد ترجمه (translation unit) که شامل هر دو فایل منبع و فایلهای الحاقی (include) است، ساختاربندی کنید. همچنین یاد خواهید گرفت که چگونه چندین فایل شیء (object file) را برای ایجاد کتابخانهها و فایلهای اجرایی به هم پیوند دهید.
فصل ۱۱: اشکالزدایی، تست و تحلیل
این فصل از کتاب Effective C ابزارها و تکنیکهای تولید برنامههای بدون خطا را شرح میدهد، از جمله قضاوتهای زمان کامپایل و زمان اجرا، اشکالزدایی، تست، تحلیل ایستا (static analysis) و تحلیل پویا (dynamic analysis). این فصل کتاب Effective C همچنین در مورد اینکه کدام پرچمهای کامپایلر برای استفاده در مراحل مختلف فرآیند توسعه نرمافزار توصیه میشوند، بحث میکند.
پیوست: ویرایش پنجم استاندارد C (C23)
این پیوست برخی از الحاقات و تغییرات در C23 را برمیشمرد. این یک راه آسان برای یادگیری موارد جدید در C و شناسایی تغییرات نسبت به استاندارد C قبلی (C17) است. کتاب Effective C از نسخه قبلی به روز رسانی شده است تا ویژگیها و رفتارهای C23 را پوشش دهد. طبق دادههای نظرسنجی 2022 از JetBrains، 44 درصد از برنامهنویسان C از C99، 33 درصد از C11، 16 درصد از C17 و 15 درصد از نسخه تعبیهشده C استفاده میکنند.
شما در حال قدم گذاشتن به سفری هستید که از آن به عنوان یک توسعهدهنده C حرفهای و تازه فارغالتحصیل خارج خواهید شد.
سرفصلهای کتاب Effective C:
- Praise for Effective C
- Title Page
- Copyright
- Dedication
- About the Author, Contributor and Technical Reviewer
- Foreword to the Second Edition
- Foreword to the First Edition
- Acknowledgments
- Introduction
- 1. Getting Started With C
- 2. Objects, Functions, and Types
- 3. Arithmetic Types
- 4. Expressions and Operators
- 5. Control Flow
- 6. Dynamically Allocated Memory
- 7. Characters and Strings
- 8. Input/Output
- 9. Preprocessor
- 10. Program Structure
- 11. Debugging, Testing, and Analysis
- Appendix: The Fifth Edition of the C Standard (C23)
- References
- Index
جهت دانلود کتاب Effective C میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.