C++ الفعال: 55 طريقة صحيحة لتحسين برامجك
320 صفحات
Arabic
PDF
4.5

C++ الفعال: 55 طريقة صحيحة لتحسين برامجك

C++ الفعال: 55 طريقة صحيحة لتحسين برامجك

المؤلف:

السنة:

ملخص:

مقدمة

كتاب «Effective C++: 55 Specific Ways to Improve Your Programs and Designs» (في الترجمة الروسية — «C++ الفعال: 55 طريقة صحيحة لتحسين برامجك») لسكوت مايرز ليس مجرد كتاب دراسي، بل هو كتاب مرجعي لكل من يكتب بلغة C++ بشكل احترافي. صدر في عام 2005 (الطبعة الثالثة)، ولا يزال ذا صلة حتى يومنا هذا، على الرغم من ظهور C++11 وC++14 وC++17 وC++20. لماذا؟ لأن مايرز لا يعلم بناء الجملة، بل يعلم التفكير — كيفية تجنب الفخاخ، وكتابة كود C++ موثوق وفعال وقابل للصيانة.

الكتاب مبني كمجموعة من 55 قاعدة محددة (items)، كل منها عبارة عن درس مستقل، مدعوم بأمثلة وشروحات وإشارات إلى المعيار. إنها ليست قراءة «من الغلاف إلى الغلاف» (على الرغم من أنه يمكن القيام بذلك أيضًا)، بل هي أشبه بدليل للعمل اليومي: افتح القاعدة المناسبة — تذكر كيف تفعلها بشكل صحيح.

عن ماذا يتحدث هذا الكتاب؟

الفكرة الرئيسية للكتاب هي إظهار كيفية استخدام C++ بشكل صحيح. لا يعلم مايرز أساسيات اللغة (من المفترض أن القارئ يعرف بالفعل بناء الجملة والمفاهيم الأساسية)، بل يركز على التعابير الاصطلاحية والأنماط والدقائق التي تميز المبرمج العادي عن الخبير.

يغطي الكتاب المواضيع التالية (حسب الأقسام):

  • إدارة الموارد (القواعد 13–17): RAII، المؤشرات الذكية، منع تسرب الذاكرة.
  • المنشئات، المدمرات، وعوامل الإسناد (القواعد 5–12): كيفية تنفيذ النسخ والإسناد والمدمرات الافتراضية بشكل صحيح.
  • تصميم الفئات والواجهات (القواعد 18–25): واجهات يصعب استخدامها بشكل خاطئ، const-correctness، تمرير المعاملات.
  • الكفاءة (القواعد 26–31): inline، الكائنات المؤقتة، التحسين.
  • الوراثة والبرمجة كائنية التوجه (القواعد 32–40): الدوال الافتراضية، الوراثة المتعددة، الواجهات.
  • القوالب والبرمجة العامة (القواعد 41–48): البرمجة الفوقية، traits، السياسات.
  • إدارة الذاكرة (القواعد 49–52): new، delete، placement new.
  • أخرى (القواعد 53–55): التوافق مع C، الاستثناءات، نصائح حول الأسلوب.

لمن هذا الكتاب؟

الكتاب موجه لـ المبرمجين الملمين بالفعل بلغة C++ الذين يرغبون في الانتقال إلى المستوى التالي. إذا كنت قد بدأت للتو في تعلم C++ — اقرأ أولاً كتابًا دراسيًا (مثل «C++ Primer» لليپمان)، ثم تناول كتاب مايرز. أما إذا كنت تكتب بالفعل بلغة C++ وتشعر أن كودك «يعمل، لكنه غير منظم» — فهذا الكتاب لك.

سيكون الكتاب مفيدًا أيضًا لـ مطوري اللغات الأخرى (Java، C#، Python) الذين ينتقلون إلى C++ ويريدون فهم خصائصه ونقاط خطورته.

ماذا سيتعلم القارئ؟

بعد قراءة الكتاب، ستتعلم:

  • تجنب تسرب الذاكرة والموارد الأخرى باستخدام RAII والمؤشرات الذكية.
  • تصميم الفئات بشكل صحيح: متى تجعل المدمر افتراضيًا، ومتى تعلن المنشئ explicit، وكيف تنفذ النسخ.
  • كتابة كود فعال: تقليل الكائنات المؤقتة، استخدام inline بحكمة، الاختيار بين التمرير بالقيمة والتمرير بالمرجع.
  • العمل مع الوراثة دون مفاجآت غير متوقعة (على سبيل المثال، لماذا الدوال الافتراضية في المنشئ فكرة سيئة).
  • استخدام القوالب لإنشاء حلول مرنة وآمنة من حيث النوع.
  • إدارة الذاكرة يدويًا عند الضرورة (placement new، المخصصات المخصصة).
  • فهم تعابير C++ الاصطلاحية: pimpl، non-virtual interface (NVI)، copy-and-swap وغيرها.

نقاط القوة في الكتاب

1. التوجه العملي. كل قاعدة هي درس

توصيات