CodeBaz.dev
Відкрити в Telegram
من، محمدرضا کسائی، برنامهنویس فولاستک در تپسی و مدرس پایتون و جنگو در مجتمع فنی تهران هستم. در اینجا قصد دارم تجربیات و دانش خود را در زمینههای مختلف برنامهنویسی با شما به اشتراک بگذارم. https://CodeBaz.dev https://x.com/CodebazDev
Показати більше703
Підписники
Немає даних24 години
-17 днів
-730 день
Архів дописів
703
🚨 نگاهی به یکی از ارورهای کار با pip freeze 🚨
در حین توسعه پروژه، ممکنه تعدادی پکیج نصب کنید. وقتی دستور
pip freeze
رو وارد میکنید، یک لیست بلند از پکیجها نمایش داده میشه. اما سوال اینجاست:
چرا بعضی از پکیجها به نظر شما ناشناختهاند؟ 🤔
دستور pip freeze تمام پکیجهای نصبشده رو نمایش میده، حتی پکیجهایی که بهطور خودکار نصب شدن! این یعنی ممکنه ۲۰ پکیج ببینید، ولی فقط ۷ تا از اونها رو بشناسید. 😯
این پکیجها از کجا اومدن؟
این پکیجهای اضافی، وابستگیهای پکیجهایی هستن که شما نصب کردید. برای مثال، وقتی Django رو نصب میکنید، pip بهطور خودکار پکیجهایی مثل pytz یا sqlparse رو هم نصب میکنه. اینها وابستگیها هستن که برای عملکرد Django ضروری هستن، ولی شما مستقیماً اونها رو نصب نکردید. 📦
مشکلات هنگام انتقال پروژه به سیستم دیگه
حالا فرض کنید پروژهای دارید که روی سیستم خودتون اجرا شده، ولی میخواهید پروژه رو روی یک سیستم دیگه اجرا کنید. با دستور
pip install -r requirements.txt
ممکنه با ارورهای عجیبی مواجه بشید که مثلا میگه فلان پکیج پیدا نمیشه یا نصب نمیشه. 😣
چرا این ارورها پیش میاد؟
این پکیجها وابستگیهای غیرمستقیم هستند. مثلاً در سیستم لینوکس شما از psycopg2 برای اتصال به PostgreSQL استفاده کردید، اما در ویندوز ممکنه pip بهجای اون، psycopg2-binary رو نصب کنه، چون این نسخه برای ویندوز مناسبتره. پس ممکنه با ارور مواجه بشید چون نسخههای متفاوت برای سیستمهای مختلف استفاده میشه. 💻🖥
نتیجهگیری
برای جلوگیری از این مشکلات، پیشنهاد میکنم از ابزارهایی مثل pip-tools یا Poetry استفاده کنید که وابستگیها رو دقیقتر مدیریت میکنن. همچنین فقط پکیجهای ضروری رو در requirements.txt قرار بدید تا از اضافه شدن وابستگیهای غیرضروری جلوگیری بشه. ✅
این روشها کمک میکنن تا همیشه نسخههای سازگار از پکیجها رو داشته باشید و از مشکلات ناسازگاری در سیستمهای مختلف جلوگیری کنید. 🚀
#python #pip
🆔 @CodeBazDev703
💡 بهترین راه برای یادگیری PEP ها چیه؟
برای یادگیری PEPها (Python Enhancement Proposals)، دو راه اصلی وجود داره:
1️⃣ مطالعه به ترتیب PEPها
شما میتونید تمام PEPها رو به ترتیب مطالعه کنید و سعی کنید مفاهیم و استانداردهای مطرح شده در هر کدوم رو به خاطر بسپارید. این روش ممکنه کمی زمانبر باشه، اما در نهایت با درک عمیقتری از زبان پایتون و اصولی که بر اون حاکمه آشنا میشید.
2️⃣ استفاده از ابزارهای خودکار مثل flake8
یک روش عملیتر اینه که از ابزارهایی مثل flake8 یا black استفاده کنید. این ابزارها بهطور اتوماتیک کد شما رو بررسی میکنن و ارورها یا وارنینگها رو نشون میدن.
شما میتونید هر ارور یا وارنینگ رو بررسی کنید و بفهمید که مربوط به کدوم PEP هست. این روش به شما کمک میکنه که یاد بگیرید کد شما چطور باید استانداردهای PEP رو رعایت کنه و در نهایت خودکار به یک کدنویس پایتون حرفهای تبدیل بشید.
🔧 مزایای روش دوم:
✅ بررسی خودکار کد
✅ آشنایی با ارورها و هشدارها بهصورت عملی
✅ سرعت بیشتر در یادگیری استانداردهای پایتون
هر دو روش مفیدن، اما استفاده از ابزارهای خودکار معمولاً سرعت یادگیری رو بالا میبره و شما رو در مسیر بهینهتری قرار میده. 🚀
#python #pep
🆔 @CodeBazDev
703
💡 چرا در PEP 8 طول هر خط کد باید حداکثر ۷۹ کاراکتر باشه؟
قدیما مانیتورهای کامپیوتر خیلی بزرگ نبودن و نهایتاً فقط میشد ۸۰ کاراکتر توی هر خط نمایش داد. به همین دلیل برنامهنویسها تصمیم گرفتن که طول هر خط از کدهاشون بیشتر از ۷۹ کاراکتر نباشه، تا بتونن همه خطوط رو بدون اسکرول افقی ببینن. 📱💻
اما امروزه، با مانیتورهای عریض و رزولوشن بالا، به راحتی میشه حتی ۱۲۰ کاراکتر رو توی یک خط نمایش داد. بنابراین، این مورد در PEP 8 کمی غیرمنطقی به نظر میرسه. 😅
با این حال، در PEP 8 گفته شده که:
"Consistency is more important than perfection."
(یکپارچگی مهمتر از کمال است.) 🔑
یعنی اگه در تیم شما تصمیم گرفته شده که استانداردهایی متفاوت از PEP 8 استفاده بشه، پایبندی به همون استانداردهای تیمی مهمتره. 🧑💻🤝
پس اگر محدودیت ۷۹ کاراکتر براتون اذیتکننده است، میتونید استاندارد جدیدی برای تیمتون وضع کنید و به اون پایبند باشید. 👌
#python #pep
🆔 @CodeBazDev
703
وقتی یه برنامهنویس حرفهای پایتون، کدی ببینه که کلی قانون PEP 8 رو زیر پا گذاشته، حتی اگه چیزی نگه، احتمال زیاد داره تو دلش داره غر میزنه 😅
بخشی از کتاب two scoops of django
🆔 @CodeBazDev
703
یه مشکلی داشتم تو کدا
داشتم فکر میکردم که من این فلو رو قبلا توسعه دادم چرا قبلا مشکل نداشتم!
رفتم کدای قبلیمو خوندم دیدم عه چه راه حل خوبی برای حل این مشکل قبلا به فکرم رسیده! 😂😂
بعد به این نتیجه رسیدم گاهی آدم میتونه از کدایی که قبلا خودش نوشته چیز های خوبی یاد بگیره 🤣🤣
🆔 @CodeBazDev
703
بعد از ۱۵ روز اومدم سر کار
چقدر راندمانم امروز پایینه
پروژه خودمه ولی انگار یکی دیگه نوشته اش 🤣🤣
چقدر به این جمله ایمان آوردم امروز
🆔 @CodeBazDev
703
🧠 «دیباگ کردن (اشکالیابی) دو برابر سختتر از خودِ کدنویسیه!
پس اگه کدت رو زیادی زرنگبازی دربیاری و پیچیده بنویسی، شاید خودت هم نتونی درستش کنی!»
— برایان کرنیگان، یکی از خالقای زبان C
✌️ ساده بنویس که خودت و بقیه بعداً بتونید بفهمیدش!
🆔 @CodeBazDev
703
یک تابع یا متد خوب باید طوری نوشته بشه که برای خوندنش نیازی به اسکرول کردن نباشه
به عبارت دیگه کل بدنه اش در یک اسکرین جا بشه و بدون اسکرول کردن بشه دیدش
✍️ بخشی از کتاب two scoops of django
#django #python #two_scoops_of_django
🆔 @CodeBazDev
703
به نظرم اینکه شب های قدر با سال ۴۰۴ مصادف شده اتفاقی نیست!
سال ۴۰۴ عه خیلی باید مواظب باشیم
بریم فقط دعا کنیم که امسال به خیر بگذره 😂😂
شوخی کردم
سال نو همه تون مبارک
سالی بدون ارور به خصوص ارور ۴۰۴ داشته باشید🙏🏻☘️
@CodeBazDev
