مفاهیم
مفاهیم کلیدی برنامهسازی پیشرفته با پایتون — هرکدام دقیق و با مثال. برای فهم عمیق یا مرور سریع بخوانید.
۳۶ مدخل
پیشنیاز و تفکر برنامهنویسی
۳مفهوم
تابع و مسئولیت واحد
چرا تابعهای کوچک بهترند؟ مسئولیت واحد، نامگذاری و خالصبودن با مثال پایتون.
مفهوم
جهشپذیری و هویت شیء
ارجاع، هویت و جهشپذیری: چرا b = a کپی نمیسازد و is با == چه فرقی دارد.
مفهوم
ماژول و ساختار پروژه
ماژول چیست و نگهبان if __name__ == '__main__' چرا لازم است؛ ساختار تمیز پروژهٔ کوچک.
مبانی برنامهسازی شیءگرا
۴مفهوم
کلاس در برابر شیء
تفاوت کلاس و شیء، ویژگی نمونهای در برابر کلاسی و استقلال حالت با مثال بانکی.
مفهوم
self و سازنده
سازندهٔ __init__، نقش self، ساخت شیء و خطاهای رایج فراموشکردن self.
مفهوم
کپسولهسازی
کپسولهسازی بدون عضو خصوصی اجباری: قرارداد آندرلاین، name mangling و property.
مفهوم
انتزاع
انتزاع در عمل: قرارداد عمومی، پنهانسازی جزئیات و مرز ماژول با مثال فروشگاه.
وراثت و چندریختی
۵مفهوم
وراثت و بازنویسی
وراثت تکی، بازنویسی متد، super و همکاری سازندهها با مثال حیوانات.
مفهوم
چندریختی و ارسال پویا
چندریختی، ارسال پویا و تایپایمنی اردکی: چرا کد عمومی بدون تغییر روی نوعهای تازه کار میکند.
مفهوم
کلاس انتزاعی و پروتکل
abc.ABC و abstractmethod در برابر typing.Protocol: چهوقت کدام و تفاوت با اینترفیس جاوا.
مفهوم
ترکیب در برابر وراثت
چهوقت ترکیب بهتر از وراثت است: قاعدهٔ هست/دارد، تزریق وابستگی و انعطاف تعویض رفتار.
مفهوم
وراثت چندگانه و MRO
وراثت چندگانه، ترتیب حل متد، super مشارکتی و کاربرد درست میکسینها.
طراحی پیشرفته کلاسها و مدل شیء پایتون
۴مفهوم
متد کلاس و متد ایستا
تفاوت classmethod و staticmethod، سازندهٔ جایگزین و حفظ چندریختی در ارثبری.
مفهوم
ویژگیها (property)
property، setter و deleter: چرا قرارداد را پایدار نگه میدارند و دام محاسبات سنگین چیست.
مفهوم
متدهای جادویی (dunder)
مهمترین dunderها: نمایش، برابری، طول، عملگر و پروتکل تکرار با جدول انتخاب.
مفهوم
چرخهٔ عمر شیء و زبالهروبی
شمارش ارجاع، چرخهٔ ارجاعی، __del__ غیرقابلاعتماد و الگوی درست مدیریت منبع.
ماژول، پکیج و برنامهنویسی جنریک
۲مدیریت خطا، اشکالزدایی و آزمون
۴مفهوم
استثناها و جریان انتشار
سلسلهمراتب استثنا، try/except/else/finally، استثنای دامنهای و قانون مرز ترجمه.
مفهوم
زمینهبانها
پروتکل زمینهبان، contextlib، ساختن مدیر سفارشی و الگوی قفل/فایل/اتصال.
مفهوم
تست واحد
آناتومی تست خوب، unittest در برابر pytest، تست استثنا و نامگذاری روشن.
مفهوم
موک و دابلهای تست
unittest.mock، چهوقت موک بزنیم، دام موکزدنِ بیشازحد و تستِ قرارداد.
ساختمان دادهها و الگوریتمهای پایه
۲فایل، ورودی/خروجی و سریالسازی
۲بازآرایی، کد تمیز و الگوهای طراحی
۳مفهوم
بوی کد
رایجترین بوهای کد، علت هر کدام و بازآراییِ متناظر با مثال کوتاه.
مفهوم
سادهسازی شرطها و فراخوانیها
نگهبانها، شرطِ نامدار، حذف پرچم کنترلی و سادهسازی امضای تابع.
مفهوم
الگوهای طراحی به سبک پایتون
الگوهای کاربردی با پیادهسازی تابعی، Singleton مشکوک و ملاکِ «کِی الگو بیاوریم».
رابط گرافیکی و برنامهنویسی رویدادمحور
۱همروندی، موازیسازی و شبکه
۳مفهوم
ریسهها و قفلها
چرخهٔ عمر ریسه، مسابقهٔ دادهای، Lock و قانونِ «کمترین حالت مشترک».
مفهوم
اجراکنندهها و صفها
queue.Queue، تولیدکننده/مصرفکننده و ThreadPoolExecutor با مثال دانلود موازی.
مفهوم
سوکت و TCP
چرخهٔ سوکت TCP، بایت در برابر رشته، مرز پیام و تفاوت TCP و UDP.
بازتاب و مباحث تکمیلی
۳مفهوم
دروننگری و inspect
جعبهابزار بازتاب: type، isinstance، hasattr، getattr، dir و ماژول inspect.
مفهوم
تزئینکنندهها و بستارها
nonlocal، کارخانهٔ تابع، دکوراتور با آرگومان و قانون wraps.
مفهوم
شمارشها (enum)
enum.Enum، auto، رفتار در مقایسه و انتخاب در برابر رشته و ثابت.