معرفی و دانلود کتاب کدنویسی تمیز در پایتون
برای دانلود قانونی کتاب کدنویسی تمیز در پایتون و دسترسی به هزاران کتاب و کتاب صوتی دیگر، اپلیکیشن کتابراه را رایگان نصب کنید.
معرفی کتاب کدنویسی تمیز در پایتون
کتاب کدنویسی تمیز در پایتون نوشتهی ماریانو آنایا، ویژگیهای این زبان برنامهنویسی کاربردی را معرفی میکند و تکنیکهای کدنویسی صحیح در آن را میآموزد. این راهنما که هم برای کدنویسان تازهکار و هم برای حرفهایها مناسب است، ابزارهای مهم و اصلی پایتون را مرور میکند، تأثیر آرایشدهندهها و توصیفگرها در بهبود کیفیت و خوانایی کد را توضیح میدهد و از الگوهای طراحی پرکاربرد و برنامهنویسی ناهمگام در آن میگوید.
دربارهی کتاب کدنویسی تمیز در پایتون
یکی از مهارتهای مهم در برنامهنویسی و از دلایل اصلی موفقیت یک پروژهی نرمافزاری، نوشتن کدهای تمیز و مرتب است. به این معنا که کدها به شکلی واضح و درست نوشته شوند تا خطاهای فنی و اشتباهات به حداقل برسند. تجربه نشان داده کد شلخته و در هم باعث میشود نرخ خطا بالاتر برود، زمان حل مشکل و عیبیابی طولانیتر شود و بهتبع آن نیروی انسانی افزایش یابد. در نتیجه هزینهای سرسامآور به سازمان تحمیل خواهد شد و بهرهوری را کاهش خواهد داد. بنابراین خیلی مهم است که مهندسین از همان گام اول کارشان را درست و تمیز انجام دهند. اما کدنویسی به این شکل نیاز به مهارت دارد و اصول آن باید آموخته شود. کتاب کدنویسی تمیز در پایتون (Clean Code in Python) نوشتهی ماریانو آنایا (Mariano Anaya) تلاش دارد همین مهارت را در زبان برنامهنویسی پایتون آموزش دهد. این کتاب که از سطح ابتدایی تا پیشرفته را در برمیگیرد، ابتدا خود پایتون را معرفی میکند و ویژگیهای آن را توضیح میدهد. پسازآن بهمرور به سراغ مفاهیم پیچیدهتر و پیشرفتهتر میرود و آنها تشریح میکند. آنایا در این راهنما به تکنیکهای کدنویسی خوانا در پایتون اشاره میکند و نشان میدهد که چطور میتوان این کار را انجام داد.
پایتون زبانی کاربردی و به نسبت ساده بهحساب میآید. معروف است که میتوان تمام قواعد و اصول آن را ظرف یک عصر یاد گرفت. اما کدنویسی در آن، مخصوصاً نوشتن کدهایی درست در آن نیاز به تمرین بیشتری دارد. ماریانو آنایا کتاب کدنویسی تمیز در پایتون را به همین موضوع اختصاص داده و تلاش کرده با مثالها و تمرینهای متعدد آن را توضیح دهد. او کتابش را در ده فصل تدوین کرده است: نویسنده در فصل اول به مبانی اولیهی پایتون پرداخته و اصولی همچون مستندسازی و بازرسی و قالببندی کد را شرح داده. او در فصل بعدی به ویژگیهای کد پایتونی اشاره میکند و در مورد کیفیت آن حرف میزند. آنایا در ادامه مسألهی کدنویسی تمیز را پیش میکشد و پیادهسازی ایدههای آن در پایتون را میآموزد.
بخش بعدی این کتاب SOLID نام دارد و اصول طراحی نرمافزار شیءگرا را موردبحث قرار میدهد. این تکنیک نشان میدهد که چطور میتوان قابلیت نگهداری کد در پایتون را بهبود داد. فصول بعدی به دو ویژگی بزرگ زبان پایتون، یعنی آرایشدهندهها و توصیفگرها اختصاص مییابد و از این میگوید که چطور باعث خوانایی کدها در پایتون خواهند شد. در ادامه نیز بر روی برنامهنویسی ناهمگام متمرکز میشود و آن را آموزش میدهد. بخشهای پایانی نیز در مورد اهمیت تست کردن و الگوهای مشترک طراحی است و نکاتی دربارهی هر یک بیان میگردد. در فصل نهایی هم ایدهی معماری تمیز مطرح شده و کمی در مورد فلسفهی آن صحبت میشود.
کتاب کدنویسی تمیز در پایتون را ارجاسب محمدی و علیرضا کشاورز باحقیقت ترجمه کردهاند و انتشارات نبض دانش آن را منتشر کرده است.
کتاب کدنویسی تمیز در پایتون برای چه کسانی مناسب است؟
این کتاب راهنما به برنامهنویسان حرفهای و علاقهمندان به زبان برنامهنویسی پایتون پیشنهاد میشود.
در بخشی از کتاب کدنویسی تمیز در پایتون میخوانیم
برنامهنویسی ناهمگام، ارتباطی با کد تمیز ندارد. از اینرو، ویژگیهایی از پایتون که در این بخش ذکر میشوند، تاثیری در قابلیت نگهداری پایگاه کد ندارند. در این بخش، با نحو پایتون برای کار با روتینهای همروند (coroutines)، آشنا میشویم چونکه برای خوانندگان قابل استفاده بوده و مثالهایی از روتینهای همروند بعدا در کتاب ارائه خواهد شد. ایده برنامهنویسی ناهمگام، آنست که بخشهایی از کد (در صورت امکان) موقتا متوقف شده تا بخشهای دیگری از کد، اجرا شوند. بطور نمونه وقتی در حال اجرای دستورات ورودی/خروجی هستیم، میتوانیم از پردازنده برای انجام کارهای دیگر استفاده کنیم.
این مسئله، مدل برنامهنویسی را تغییر میدهد. به جای فراخوانی همگام (سنکرون)، کدهایمان را بصورتی مینویسیم که توسط حلقه رویداد، فراخوانی شوند. حلقه رویداد، مسئول زمانبندی روتینهای همروند برای اجرای همه آنها در یک فرایند و نخ میباشد. ایده آنست که مجموعه روتینهای همروندی بسازیم و آنها را به حلقه رویداد اضافه کنیم. وقتی حلقه رویداد شروع به کار میکند، روتینها را دریافت کرده و آنها را برای اجرا، زمانبندی میکند. در نقطه از زمان، وقتی یکی از روتینهای ما، نیاز به انجام عملیات ورودی/خروجی داشته باشد، میتوانیم حلقه را باخبر ساخته تا مجددا کنترل را بدست گرفته و روتین دیگری در حین اجرای عملیات، زمانبندی کند. دوباره پس از مدتی، حلقه رویداد، به روتینهای متوقف شده بر میگردد و اجرای آنها را از سر میگیرد. بیاد داشته باشید که مزیت برنامهنویسی ناهمگام، عدم مسدودسازی پردازنده در زمان انجام عملیات ورودی/خروجی است. یعنی، در حالی که عملیات ورودی/خروجی در حال انجام بوده، به قسمت دیگری از کد پرش انجام شده و دوباره به قسمت قبلی برمیگردد، پس این امر بدان معنا نیست که همزمان، چندین فرایند اجرا میشود. این مدل اجرا، تک-نخ محسوب میشود.
فهرست مطالب کتاب
دیباچه
این کتابی برای چه کسانی مفید است؟
مطالبی که در کتاب پوشش داده میشوند
حداکثر استفاده مفید از کتاب
دانلود فایلهای کد مثال
دانلود تصاویر رنگی
قراردادهای بکار رفته
با ما در تماس باشید
فصل اول: مقدمه، قالببندی کد و ابزار آن
مفهوم کد تمیز
اهمیت داشتن کد تمیز
برخی استثنائات
قالببندی کد
پیروی از قواعد سبک کدنویسی در پروژهها
مستندات
توضیحات کد (کامنت)
داک استرینگها
نشانهگذاریها
آیا، نشانهگذاری، جایگزینی برای داک استرینگ است؟
بازرسی پایداری نوعها
اعتبارسنجی جامع (جنریک) در کد
قالببندی خودکار
فصل دوم: کدهای پایتونی
ایندکس و اسلایس
ساخت دنبالههای دلخواه
مدیر بافت (کانتکس)
پیادهسازی مدیر بافت
دستورات انتساب و درک
خصوصیات، صفات و انواع مختلف متدها برای اشیاء
زیرخط در پایتون
ساخت کلاس با نحو فشرده تر
اشیای قابل تکرار
ساخت اشیای تکرارپذیر
ساخت دنبالهها
اشیای کانتینر
صفات پویا برای اشیاء
اشیای قابل فراخوانی
خلاصه متدهای جادویی
پیشبینیهای احتیاطی در پایتون
آرگومانهای پیشفرض قابل تغییر
توسعه نوعهای توکار
مقدمهای بر کد ناهمگام (آسنکرون)
فصل سوم: ویژگیهای عمومی کد خوب
طراحی بر اساس قرارداد
پیششرطها
پساشرطها
قراردادهای پایتونی
طراحی بر اساس قرارداد — جمع بندی
برنامهنویسی دفاعی
اداره خطاها
جایگزینی مقدار
اداره استثناها
اداره استثنا در سطح انتزاع مناسب
تریسبکها را برای کاربران نهایی افشا نکنید
پیشگیری از بلوکهای استثنای تهی
لحاظ کردن استثنای اصلی
استفاده از اعلانها (assertion) در پایتون
جداسازی موضوعات (نگرانیها)
پیوستگی (انسجام) و پیوند
مخففهای همیشگی
DRY/OAOO
EAFP/LBYL
وراثت در پایتون
چه زمانی وراثت، تصمیم مناسبی است؟
پادالگوها برای وراثت
وراثت چندگانه در پایتون
ترتیب تبدیل (شناسایی) متد (MRO)
آرگومانها در توابع و متدها
نحوه عملکرد آرگومانهای توابع در پایتون
نحوه کپی آرگومانها در توابع
آرگومانهای با تعداد متغیر
پارامترهای فقط-موقعیتی
آرگومانهای فقط-کلیدواژهای
تعداد آرگومانهای توابع
آرگومانهای توابع و پیوند (COUPLING)
امضاهای فشرده تابع با تعداد زیاد پارامتر
ملاحظات نهایی در زمینه فعالیتهای خوب در طراحی نرمافزار
تعامد در نرمافزار
ساختاربندی کد
فصل سوم: ویژگیهای عمومی کد خوب
طراحی بر اساس قرارداد
پیششرطها
قراردادهای پایتونی
طراحی بر اساس قرارداد—جمع بندی
برنامهنویسی دفاعی
اداره خطاها
جایگزینی مقدار
اداره استثناها
اداره استثنا در سطح انتزاع مناسب
تریسبکها را برای کاربران نهایی افشا نکنید
پیشگیری از بلوکهای استثنای تهی
لحاظ کردن استثنای اصلی
استفاده از اعلانها (assertion) در پایتون
جداسازی موضوعات (نگرانیها)
پیوستگی (انسجام) و پیوند
مخففهای همیشگی
DRY/OAOO
EAFP/LBYL
وراثت در پایتون
پادالگوها برای وراثت
وراثت چندگانه در پایتون
ترتیب تبدیل (شناسایی) متد (MRO)
آرگومانها در توابع و متدها
نحوه عملکرد آرگومانهای توابع در پایتون
نحوه کپی آرگومانها در توابع
آرگومانهای با تعداد متغیر
پارامترهای فقط-موقعیتی
آرگومانهای فقط-کلیدواژهای
تعداد آرگومانهای توابع
آرگومانهای توابع و پیوند (COUPLING)
امضاهای فشرده تابع با تعداد زیاد پارامتر
ملاحظات نهایی در زمینه فعالیتهای خوب در طراحی نرمافزار
تعامد در نرمافزار
ساختاربندی کد
فصل چهارم: اصول SOLID
اصل تک مسئولیتی
یک کلاس با تعداد زیادی مسئولیت
توزیع مسئولیتها
اصل باز/بسته
مثالی از خطرات نگهداری در صورت عدم پیروی از OCP
بازتولید (REFACTORING) سیستم رویداد برای بسطپذیری
بسط سیستم رویداد
ملاحظات نهایی در مورد OCP
اصل جایگزینی لیسکف
تشخیص مسائل LSP با ابزار
استفاده از mypy برای تشخیص امضای متد غلط
تشخیص امضای ناسازگار با PYLINT
موارد ظریفتر نقض LSP
ملاحظاتی در مورد LSP
تفکیک واسط
واسطهای با عملیات خیلی زیاد
واسط کوچکتر، بهتر است
واسط باید چقدر کوچک باشد؟
وارونسازی وابستگی
نمونهای از وابستگیهای محکم
وارونسازی وابستگی
تزریق وابستگی
فصل پنجم: استفاده از آرایشدهندهها برای بهبود کد
آرایشدهنده در پایتون چیست؟
آرایشدهندههای توابع
آرایشدهنده برای کلاس
دیگر انواع آرایشدهندهها
آرایشدهندههای پیشرفتهتر
انتقال آرگومان به آرایشدهندهها
آرایشدهندههای با توابع تودرتو
اشیای آرایشدهنده
آرایشدهندههای با مقادیر پیشفرض
آرایشدهندههای روتینهای همروند
نحو بسط یافته آرایشدهندهها
کاربردهای مفید آرایشدهندهها
سازگاری امضای توابع
اعتبارسنجی پارامترها
ردیابی (تریس) کد
آرایشدهندههای موثر—پیشگیری از اشتباهات معمول
حفاظت دادههای مربوط به شیء اصلیwrapped
مقابله با اثرات جانبی آرایشدهندهها
اداره نادرست اثرات جانبی آرایشدهندهها
نیاز به آریش دهندههای دارای اثرات جانبی
ساخت آرایشدهندههایی که همیشه کار میکنند
مشکل چیست؟
آرایشدهندهها و کد تمیز
برتری ترکیب بر وراثت
اصل DRY با آرایشدهندهها
آرایشدهندهها و تفکیک نگرانیها (مسائل)
تحلیل آرایشدهندههای خوب
فصل ششم: بهرهبرداری بیشتر از اشیاء با کمک توصیفگرها
نگاهی به توصیفگرها
سازوکار زیرین توصیفگرها
بررسی متدهای پروتکل توصیفگر
متد DELETE
متد SET NAME
انواع توصیفگرها
توصیفگرهای غیردادهای
توصیفگرهای دادهای
توصیفگرها در عمل
کاربردی از توصیفگرها
حالت اول بدون استفاده از توصیفگر
پیادهسازی ایدیوماتیک
اشکال مختلف پیادهسازی توصیفگرها
مسئله وضعیت اشتراکی
دستیابی به دیکشنری شیء
استفاده از ارجاع ضعیف
ملاحظات بیشتری در مورد توصیفگرها
استفاده مجدد کد
گزینهای در برابر آرایشدهندههای کلاس
تحلیل توصیفگرها
پایتون چطور از توصیفگرهای داخلی استفاده میکند؟
توابع و متدها
آرایشدهندههای توکار برای متدها
صفتهای SLOT
پیادهسازی توصیفگرها در آرایشدهنده
ملاحظات نهایی توصیفگرها
واسط توصیفگرها
طراحی شیءگرای توصیفگرها
نشانهگذاری نوع بر روی توصیفگرها
فصل هفتم: مولدها، تکرارگرها و برنامه نویسی ناهمگام (آسنکرون)
پیش نیازهای فنی
ساخت مولدها
نگاهی به مولدها
عبارت یا (دستور) مولد
تکرار ایدیوماتیک
ایدیومها برای تکرار
استفاده از یک مولد
سادهسازی کد بوسیله تکرارگرها
تکرارهای مکرر (repeated iterations)
حلقههای تودرتو
الگوی تکرارگر در پایتون
اشیای دنباله بعنوان تکرارپذیر
روتینهای همروند
متدهای واسط مولد
SEND (VALUE)
روتینهای مشترک پیشرفتهتر
برگشت مقدار در روتینهای مشترک
محولسازی در روتینهای مشترک کوچکتر—نحو YIELD FROM
سادهترین کاربرد YIELD FROM
دریافت مقدار برگشتی مولد فرعی
ارسال و دریافت داده به/از مولد فرعی
برنامهنویسی ناهمگام
متدهای جادویی ناهمگام
مدیر بافت ناهمگام
دیگر متدهای جادویی
تکرار ناهمگام
مولدهای ناهمگام
فصل هشتم: تست واحد و بازتولید (REFACTORING)
اصول طراحی و تست واحد
نکتهای در مورد دیگر اشکال تست خودکار
تست واحد و توسعه نرمافزار چابک
تست واحد و طراحی نرمافزار
تعریف مرزهای آنچه که باید تست شود
ابزار تست
چارچوبها و کتابخانههای تست واحد
UNITTEST
تستهای پارامتری
موارد تست ساده با استفاده از PYTEST
تستهای پارامتری
FIXTUREها (ثابت)
پوششدهی کد
راه اندازی rest coverage
ملاحظات پوشش تست
اشیای MOCK (تقلیدی، شبیهسازی ساختگی)
هشداری در مورد PATCHING و MOCK
استفاده از اشیای MOCK
انواع اشیای MOCK
یک مورد کاربرد دابل تستها
بازتولید (REFACTORING)
تکامل کد
تکامل فقط مربوط به تولید کد نیست
اطلاعاتی بیشتری در مورد تست
تست مبتنی بر خصوصیت
تست جهش (یا تغییر)
موضوع عمومی در تست
مرز یا مقادیر حدی (مرزی)
کلاسهای معادل (هم ارز)
موارد حاشیهای
مقدمهای بر توسعه تست-محور
فصل نهم: الگوهای طراحی پرکاربرد
ملاحظات الگوی طراحی در پایتون
الگوهای طراحی در عمل
الگوهای ساختنی
فاکتوریها
یکتاییها و حالت اشتراکی (تک حالتی)
حالت (یا وضعیت) اشتراکی
الگوی BORG
سازنده (BUILDER)
الگوهای ساختاری
آداپتور (وفق دهنده)
ترکیب (کامپوزیت)
آرایش دهنده
FACADE (نمای خارجی)
الگوهای رفتاری
زنجیره مسئولیت
متد قالب (تمپلیت)
فرمان (COMMAND)
حالت (یا وضعیت state)
الگوی شیء تهی
ملاحظات نهایی در مورد الگوهای طراحی
تاثیر الگوها بر طراحی
الگوهای طراحی در سطح تئوری
فصل دهم: معماری تمیز
از کد تمیز تا معماری تمیز
تفکیک نگرانیها (موضوعات)
برنامههای کاربردی یکنواخت (مونولیتیک) و میکروسرویسها
مولفههای نرمافزار
بستهها (پکیج)
مدیریت وابستگیها
دیگر ملاحظات در مدیریت وابستگیها
نسخههای ساخته شده (ساختگی یا جانبی)
کانتینرهای DOCKER
یک مورد استفاده (USE CASE)
مدلهای دامنه
فراخوانی از برنامه کاربردی
آداپتورها (وفق دهنده)
سرویسها
جریان وابستگی
محدودیتها
تست پذیری
آشکارسازی نیات
جمع بندی کلی
مشخصات کتاب الکترونیک
نام کتاب | کتاب کدنویسی تمیز در پایتون |
نویسنده | ماریانو آنایا |
مترجم | ارجاسب محمدی، علیرضا کشاورز باحقیقت |
ناشر چاپی | انتشارات نبض دانش |
سال انتشار | ۱۴۰۲ |
فرمت کتاب | |
تعداد صفحات | 393 |
زبان | فارسی |
شابک | 978-622-7848-13-7 |
موضوع کتاب | کتابهای برنامه نویسی پایتون |
کلا این ناشر کتابای خوبی داره