جنگولرن
3.94K subscribers
297 photos
77 videos
32 files
567 links
آموزش Django و بستگان
-مفاهیم پر کاربرد پایتون
-مفاهیم مهندسی نرم افزار
-آشنایی با تجربه حرفه ای ها
-آشنایی با راهکارهای حرفه ای ها برای افزایش پرفورمنس
و...

جهت تبلیغ دایرکت کانال پیام بدید
Download Telegram
💎 ـPartial Functions در پایتون 💎

تا حالا شده یه تابع بنویسی که پر از آرگومان باشه و همیشه بخوای یه سری از اون آرگومان‌ها مقدار ثابتی داشته باشن؟ مثلا فرض کن توی یه پروژه مدام داری درخواست HTTP می‌فرستی و همیشه متد رو روی POST می‌ذاری. به جای تکرار این مقدار ثابت، Partial Functions به کمکت میان و کدتو خیلی حرفه‌ای‌تر می‌کنن.


🔎 ـPartial Functions چی هست؟

خیلی ساده، Partial Function بهت اجازه می‌ده یه نسخه سفارشی‌شده از تابع اصلی بسازی که یه سری از آرگومان‌هاش از قبل مقداردهی شده. این کار با functools.partial انجام می‌شه.

🧠 چرا Partial Functions مفیدن؟

سادگی و تمیزی کد: به
جای تکرار، یه بار آرگومان ثابت رو تعریف می‌کنی.


کاهش خطا:
آرگومان‌های ثابت توی یه جای مشخص مقداردهی می‌شن.



ایجاد نسخه‌های شخصی‌سازی‌شده از توابع:
بدون نیاز به تعریف تابع جدید.



🛠️ چطور Partial Functions بسازیم؟
from functools import partial  

def multiply(x, y):
return x * y

double = partial(multiply, y=2)
print(double(5)) # خروجی: 10



اینجا double نسخه‌ای از multiply شده که مقدار y همیشه 2 هست. فقط لازمه x رو بهش بدی.

🚀 کاربردهای Partial Functions

1⃣ ساده‌سازی توابع با آرگومان‌های زیاد
وقتی توابع زیادی با پارامترهای تکراری داری، Partial Functions می‌تونه کمکت کنه:

def send_request(method, url, headers, data):  
# ارسال درخواست
pass

post_request = partial(send_request, method='POST')
post_request(url='/api/data', headers={}, data={})

2⃣ انعطاف بیشتر با توابع دیگر
ـPartial Functions می‌تونه با توابعی مثل map و filter خیلی خوب کار کنه:

from functools import partial  

def power(base, exponent):
return base ** exponent

square = partial(power, exponent=2)

numbers = [1, 2, 3, 4]
squared_numbers = list(map(square, numbers))
print(squared_numbers) # خروجی: [1, 4, 9, 16]

3⃣ بهبود خوانایی کد در سیستم‌های بزرگ

وقتی پروژه‌هات پیچیده می‌شن، Partial Functions بهت کمک می‌کنن توابعی بسازی که واضح‌ترن:
from functools import partial  

def logger(log_level, message):
print(f"[{log_level}] {message}")

info_logger = partial(logger, log_level='INFO')
info_logger("This is an info message") # خروجی: [INFO] This is an info message

⚖️ مقایسه با دیگر روش‌ها
ـPartial Functions یه جایگزین سبک‌تر برای تعریف کلاس‌های خاص یا توابع جدیده. اما وقتی منطق خیلی پیچیده‌ای داری یا نیاز به شرط‌های مختلف هست، بهتره به جای Partial Functions از کلاس‌ها یا Wrapper Functions استفاده کنی.


✍️ جمع‌بندی
فهمیدیم Partial Functions ابزاری ساده اما قدرتمند در پایتون هستن که می‌تونن کدهای تکراری رو حذف کنن و انعطاف بالایی بهت بدن.

امید وارم مفید بوده باشه :)

#python #programing


🔆 CHANNEL | GROUP
👍13👏2🤮21
خب خب خب Sentry چیه؟ 🔍

اگه برنامه نویسی میکنی احتمالاً این سناریو برات آشناست:
کلی وقت می‌ذاری، کد می‌نویسی، تست می‌کنی، همه‌چی درست کار می‌کنه. ولی وقتی می‌دی دست کاربر، یهو یه ارور عجیب غریب میاد که اصلاً نمی‌دونی از کجا دراومده اینجاست که Sentry وارد بازی میشه.

ـSentry چیه اصلاً؟
ـSentry یه ابزار خطایاب (Error Tracking) که کمک می‌کنه باگ‌ها و خطاهای پروژه‌ت رو همون لحظه‌ای که اتفاق میفتن، پیدا کنی.
این ابزار نه‌تنها ارورها رو جمع‌آوری می‌کنه، بلکه یه گزارش دقیق و کامل ازشون می‌ده؛ از جزئیات خطا گرفته تا شرایطی که باعث شده ارور پیش بیاد.
فرض کن یه باگ تو اپلیکیشن‌ ته که اصلاً قابل پیش‌بینی نبوده. به‌جای اینکه کاربر بیاد غر بزنه یا خودت بری تو لاگ‌ها دنبال مشکل بگردی، Sentry خودش ارور رو تشخیص می‌ده و گزارشش رو مستقیم برات می‌فرسته.

چرا Sentry محبوبه؟ 🌟
1⃣ گزارش ارور دقیق و کاربردی 🛠️
وقتی یه ارور اتفاق میفته، Sentry دقیقاً بهت میگه مشکل کجاست. جزئیاتی مثل:
فایل و خط کدی که ارور داده
نوع خطا (Exception)
اطلاعات مرورگر یا دستگاه کاربر
وضعیت سرور (مثلاً رم و CPU)
حتی مراحل درخواست کاربر تا لحظه‌ای که ارور رخ داده

2⃣ پشتیبانی از پلتفرم‌های مختلف 📱
هرچی فکرش رو بکنی، Sentry ساپورتش میکنه.
Backend: Python (جنگو، فلاسک و ...)، Node.js
Frontend: React، Vue.js
Mobile: اندروید و iOS
DevOps: Docker، Kubernetes


3⃣ دسته‌بندی ارورها 🗂️
وقتی تعداد ارورها زیاد بشه، Sentry اونا رو گروه‌بندی می‌کنه. مثلاً یه باگ اگه صد بار اتفاق بیفته، همشون رو زیر یه گزارش می‌ذاره که بتونی راحت مدیریت کنی.

4⃣ هشدار و نوتیفیکیشن 🔔

به محض اینکه یه ارور جدید اتفاق بیفته، سریع بهت خبر می‌ده. از ایمیل گرفته تا Slack یا حتی پیامک.


5⃣ـ Release Tracking 🚀
یه قابلیت جالبش اینه که می‌تونی ارورها رو به نسخه‌های پروژت وصل کنی و بفهمی کدوم تغییرات باعث مشکل شده.


6⃣ـPerformance Monitoring
علاوه بر ارورها، می‌تونی بفهمی اپلیکیشن کجاها کنده.


چطور از Sentry استفاده کنیم؟
ثبت‌نام کن:
تو سایت Sentry.io یه اکانت بساز. نسخه رایگانش برای شروع کافیه.

نصب کن:
ـSDK مخصوص زبان پروژه‌ت رو نصب کن. مثلاً برای Django این دستور کافیه:
 pip install sentry-sdk 

تنظیمش کن:
با چند خط کد ساده Sentry رو به پروژه وصل کن:
import sentry_sdk
sentry_sdk.init(
dsn="لینک DSN که Sentry می‌ده",
traces_sample_rate=1.0
)

ارورها رو مدیریت کن:
حالا هر اروری اتفاق بیفته، مستقیم تو داشبورد Sentry میره.

چند نکته مهم:
نسخه رایگان Sentry محدودیت داره (مثلاً تعداد ارورهای ماهانه). برای پروژه‌های بزرگ باید پلن‌های پولیش رو بگیری.
می‌تونی از مستندات رسمی کمک بگیری تا تنظیمات حرفه‌ای‌تر انجام بدی.

جمع‌بندی
اگه می‌خوای ارورهای پروژه‌ت رو حرفه‌ای مدیریت کنی و حتی قبل از اینکه کاربر بفهمه، خودت رفعشون کنی، Sentry بهترین انتخابه. هم راحت نصب میشه، هم کلی قابلیت خفن داره.
تا حالا از Sentry استفاده کردی؟ نظرت چیه؟ 👀

#programming #python #sentry



🔆 CHANNEL | GROUP
👍211