- عنوان کتاب: Better Python Code
- نویسنده: David Mertz
- حوزه: برنامه نویسی پایتون
- سال انتشار: 2024
- تعداد صفحه: 289
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 36.6 مگابایت
پایتون یک زبان برنامه نویسی بسیار خوب طراحی شده است. در بسیاری از موارد بهطور شگفتانگیزی، این زبان موفق میشود یکی از کلمات قصار در ذن پایتون اثر تیم پیترز را برآورده کند: «یک راه واضح و ترجیحاً تنها یک راه برای انجام آن باید وجود داشته باشد». اگر تنها یک راه برای انجام آن وجود داشته باشد، اشتباه کردن سخت است. البته آن قصیده آرمانی است که به طور یکسان برآورده نمی شود. اغلب راههای زیادی برای انجام یک کار در پایتون وجود دارد، بسیاری از آنها به سادگی اشتباه هستند، بسیاری از آنها بیظرافت هستند، بسیاری از آنها بهجای پایتونیک بودن، به شدت به اصطلاحات زبانهای برنامهنویسی دیگر تکیه میکنند، و برخی از آنها دقیقاً اشتباه نیستند، اما همچنان به شدت ناکارآمد هستند. تمام مشکلاتی که در این کتاب توضیح داده شده مشکلاتی هستند که من در کدهای واقعی دیده ام، گاهی اوقات در طبیعت، گاهی اوقات در حین بررسی کد، و مسلماً اغلب در کدهایی که خودم قبل از فکر کردن به ایرادات آن نوشتم، بسیار زیاد دیده ام. درباره کتاب بخشهای این کتاب هر کدام خطا، دام یا نقصی را نشان میدهند که توسعهدهندگان به راحتی میتوانند در آن قرار بگیرند، و همراه با شرح راههایی برای جلوگیری از انجام آنها هستند. گاهی اوقات این راهحلها به سادگی شامل یک تغییر جزئی در “املا” هستند، اما در بیشتر موارد نیاز به کمی تفکر و طراحی در کد شما دارند. بسیاری از بحثها چیز دیگری را نیز انجام میدهند… من امیدوار نیستم فقط چیزی را به شما نشان دهم که شما نمیدانستید، بلکه در بسیاری از موارد امیدوارم چیزی را به شما نشان دهم که نمیدانستید چیزی برای دانستن وجود دارد. من معتقدم که مؤثرترین نگارش و تدریس نه تنها اطلاعات، بلکه راههای خوب تفکر درباره مشکلات و استدلال درباره راهحلهای خاص آنها را به خوانندگان یا دانشآموزان منتقل میکند. جعبههای اطلاعات، پاورقیها و انحرافات احمقانه در این کتاب، همگی امیدوارند که به شما این امکان را بدهند که در مورد یک دامنه خاص، یا یک کار خاص یا یک سبک برنامهنویسی عمیقتر فکر کنید. نیازی به خواندن این کتاب از جلد تا جلد نیست (اما معتقدم خوانندگانی که این کار را انجام دهند سود خواهند برد). هر فصل به یک دسته از مفاهیم مرتبط می پردازد، اما به تنهایی می ایستد. علاوه بر این، هر بخش در یک فصل نیز مستقل است. هر کدام را می توان مستقل از دیگران خواند و بیشتر خوانندگان در هر یک چیز جالبی یاد خواهند گرفت. برخی از بخشها پیشرفتهتر از سایر بخشها هستند، اما حتی در آنهایی که مقدماتی به نظر میرسند، فکر میکنم نکات ظریفی را خواهید یافت که نمیدانستید. و حتی در مواردی که پیشرفته به نظر می رسند، امیدوارم که بحث ها در دسترس و روشنگر باشد. علیرغم اینکه هر بخش نوعی خط مشی را تشکیل می دهد، فصل ها به طور کلی به ترتیبی با پیچیدگی فزاینده سازماندهی می شوند و بخش ها به راحتی بر روی یکدیگر بنا می شوند. در مواردی که مفید است، بسیاری از بحثها به بخشهای دیگری ارجاع میدهند که ممکن است پیشزمینهای را ارائه دهند یا در بخشهای بعدی توضیحی را پیشبینی کنند. به طور کلی، هدف من خوانندهای است که یک توسعهدهنده پایتون در سطح متوسط یا شاید یک مبتدی پیشرفته باشد. من فرض می کنم که شما اصول اولیه زبان برنامه نویسی پایتون را می دانید. این بحثها ابتداییترین نحو و معناشناسی را که در اولین دوره یا اولین کتاب پایتون پیدا میکنید، آموزش نمیدهند. اغلب من به سادگی فرض می کنم که شما ذهن کنجکاوی دارید و می خواهید کدی زیبا، کارآمد و صحیح بنویسید. این کتاب با در نظر گرفتن پایتون 3.12 نوشته شده است که در اکتبر 2023 منتشر شد. کد نشان داده شده در برابر نسخه بتای 3.12 آزمایش شده است. اکثر نمونههای کد در پایتون 3.8 کار میکنند، که اولین نسخهای است که از اواسط سال 2023 به پایان نرسیده است. در برخی موارد، توجه می کنم که کد حداقل به پایتون 3.10 نیاز دارد که در 4 اکتبر 2021 منتشر شد. یا گهگاه حداقل پایتون 3.11، منتشر شده در 24 اکتبر 2022. اکثریت بزرگی از اشتباهات مورد بحث در این کتاب، اشتباهاتی بودند که قبلاً در پایتون 3.8 وجود داشت، اگرچه تعدادی از آنها نشان دهنده بهبود نسخه های بعدی پایتون است. اسنادی با عنوان “چیزهای جدید در پایتون M.m.μ”1 حداقل از زمان پایتون 1.4 روز (در سال 1996) نگهداری شده است.
Python is a very well-designed programming language. In surprisingly many cases, the language manages to meet one of the aphorisms in Tim Peters’ The Zen of Python: “There should be one—and preferably only one—obvious way to do it.” If there is only one way to do it, it’s hard to make mistakes. Of course, that aphorism is an aspiration that is not uniformly met. Often there are many ways to perform a task in Python, many of them simply wrong, many inelegant, many leaning heavily on idioms of other programming languages rather than being Pythonic, and some of them not exactly wrong but still grossly inefficient. All the problems described in this book are ones that I’ve seen in real-life code, sometimes in the wild, sometimes caught during code review, and admittedly far too often in code I wrote myself before reflecting upon its flaws. About the Book The sections of this book each present some mistake, pitfall, or foible that developers can easily fall into, and are accompanied by descriptions of ways to avoid making them. At times those solutions simply involve a minor change in “spelling,” but in most cases they require a nuance of thought and design in your code. Many of the discussions do something else as well… I do not hope only to show you something you did not know, but in a great many cases I hope to show you something about which you did not know there was something to know. I believe that the most effective writing and teaching conveys to readers or students not only information, but also good ways of thinking about problems and reasoning about their particular solutions. The info boxes, footnotes, and silly digressions within this book all hope to allow you to think deeper about a particular domain, or a particular task, or a particular style of programming. There is no need to read this book from cover to cover (but I believe that readers who do so will benefit). Each chapter addresses a related cluster of concepts, but stands alone. Moreover, each section within a chapter is also self-contained. Each can be read independently of the others, and most readers will learn something interesting in each one. Some of the sections are more advanced than others, but even in those that seem introductory, I think you will find nuances you did not know. And even in those that seem advanced, I hope you will find the discussions accessible and enlightening. Notwithstanding that each section forms a sort of vignette, the chapters are generally organized in sequence of increasing sophistication, and the sections loosely build upon each other. Where it feels helpful, many discussions refer to other sections that might provide background, or foreshadow elaboration in later sections. In general, I am aiming at a reader who is an intermediate-level Python developer, or perhaps an advanced beginner. I assume you know the basics of the Python programming language; these discussions do not teach the most basic syntax and semantics that you would find in a first course or first book on Python. Mostly I simply assume you have an inquisitive mind and a wish to write code that is beautiful, efficient, and correct. This book is written with Python 3.12 in mind, which was released in October 2023. Code shown has been tested against 3.12 betas. The large majority of the code examples will work in Python 3.8, which is the earliest version that has not passed end-of-life as of mid-2023. In some cases, I note that code requires at least Python 3.10, which was released on October 4, 2021; or occasionally at least Python 3.11, released on October 24, 2022. The large majority of the mistakes discussed within this book were mistakes already in Python 3.8, although a few reflect improvements in later versions of Python. Documents titled “What’s new in Python M.m.μ”1 have been maintained since at least the Python 1.4 days (in 1996)
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: Better Python Code
نظرات کاربران