Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Accio
Moodist | Compose your own ambient sounds to focus
You can share your presets with others or even self-host the project since it's open-source.
https://moodist.mvze.net

Github repository
من تقریبا بیش از یک ماهه که دارم از دستیار هوش مصنوعی برای کد زدن استفاده می‌کنم(اینجا رو بخونید) گفتم تجربه‌ام رو باهاتون به اشتراک بگذارم شاید به دردتون بخوره.
کار کردن با این ابزار برای من در کل واقعا آورده‌های خوبی داشته. اون هم نه صرفا به چشم یک چیزی که برام کد می‌زنه، بلکه توی کلی از جنبه‌ها. من اینجا به صورت لیستوار بهشون اشاره می‌کنم و هر کدوم رو هم کمی توضیح می‌دم.

- کدنوشتن: توی تکمیل کدهایی که می‌خوام بنویسم در حالت auto-complete واقعا می‌تونه سرعت کد زدن رو ببره بالا. دسترسی به متغییرها و فانکشن‌ها بهش این اجازه رو می‌ده که کدی رو که دارید می‌نویسید با جزئیات خیلی خوبی بنویسه(نال‌ها رو چک کنه، تایپ کستینگ انجام بده و از این کارها.) ضمن این که توی بازنویسی و ری‌فکتور هم عصای دست خوبی به حساب میاد. یا مثلا برای نوشتن دیتا کلاس‌ها، صرفا چیزی که می‌خوام رو حتی به فارسی براش می‌نویسم و اون برام پراپرتی‌ها، سازنده‌ها و ... رو می‌نویسه و من صرفا خروجی رو چک می‌کنم. یا مثلا یه جی‌سون بهش می‌دم که این خروجی این API هستش بیا برام یه کلاس بنویس که این ریسپانس تبدیل به آبجکت اون بشه و.... .

- کارهای گِل: یه سری کارهای گل هست مثل نوشتن فانکشن‌هایی که لاجیک ساده دارن، تغییر فرمت یه کلاس، تغییر توی یه فایل جی‌سون یا تکست و از این دست کارها که نیاز به فکر کردن ندارن ولی خب یه حجم خوبی از کار هستن به سرعت انجام می‌شن. فقط کافیه یه پرامپت بنویسید که چی نیاز دارید، توی پروژه اعمال می‌شه. می‌تونید تغییرات رو هم تایید یا رد کنید. این بهتون کمک می‌کنه که تغییری خارج از کنترل شما اتفاق نیفته.

- پرسیدن سوالات: یه بخش چت توی این اکستنشن وجود داره که شما به راحتی می‌تونی سوالاتتون رو حتی از کدهای پروژه بپرسید و اون با خروجی فرمت‌دار بهتون جواب بده یا جواب رو اعمال کنه روی کد براتون.

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

در مورد زبان‌هایی که کمتر باهاشون کار می‌کنم(پایتون مثلا یا Go) بهبود عملکرد بیشتری رو حس می‌کنم تا زبان‌هایی مثل جاوا یا جاوااسکریپت که بیشتر باهاشون سروکار دارم.
نظر و تجربه شما چیه؟ به شما در چه کارایی بیشتر کمک کرده؟
برای بهبود محتوای این کانال و یوتوب چه پیشنهاداتی دارید؟

#موقت
سن من و شاید بیشتر شما قد نده ولی یک مرورگری بود به اسم نت‌اسکیپ که اون موقع محبوبیت زیادی داشت و بعد از چندی رقابت با اینترنت اکسپلورر کلا محو شد.


انگاری جدیداً یک مرورگر برپایه کرومیوم به اسم نت‌اسکیپ دارن میدن بیرون :))



@SohrabContents
دزدی اطلاعات به سبک مدرن
@z1cast
🎙 اپیزود دوم z1cast منتشر شد! 🎙

-‌‏ I-XRAY دزدی اطلاعات به سبک مدرن

این قسمت درباره یه دزدی عجیب و غریب حرف می‌زنیم؛ یه هشدار جدی برای همه‌مون که بیشتر حواس‌مون به هویتمون، زندگی‌مون، مالمون و از همه مهم‌تر دیتامون و خانوادمون باشه!

اگه می‌خواید بدونید چطوری می‌تونید از خودتون و عزیزانتون محافظت کنید، حتماً این اپیزود رو از دست ندید. 🌟

لیست سرویس های استفاده شده در IXRAY : 👁

‏- FastPeopleSearch
‏- CheckThem
-‏ Instant Checkmate‌‌‏
- لینک کامل تمام سرچ انجین های جستجوی چهره

ابزار های مفید برای حذف اطلاعات :

- ‏Secure Eraser
‏- Jumbo Privacy
‏- Delete Me

📹 دست اندرکاران:

گویندگان و متن : فرهان و شایان

گرافیست : مهیب

کاور آرت، تدوینگر و پروداکشن: فرهان

شعر و متن ترانه: شایان

مجری و متن نمایشنامه: فرهان، اجراکنندگان: فرهان و شایان

میکس و مستر آهنگ: شروین

بازبین گران:
بازبینگر شعر: فرهام
بازبین‌گر پادکست: صادق

@z1cast #podcast #ep2 #single
من این ابزار دیشب دیدم و یکمی هم نظرات رو خوندم. برای تست وب سایت های ری‌اکت خوبه ولی باید مراقب هم بود باعث نشه کلی کار اضافه کرد. بی خودی مهندسی اضافه نباید کرد خیلی از ری رندر ها حتی خیلی خیلی منطقی هم نباشه بازم مشکلی ایجاد نمی کنه
https://github.com/aidenybai/react-scan


@DevTwitter | <Tagarg/>
تبلیغات تمام صفحه برای ویندوز ۱۱

البته رو مخی اینو احتمالا موقع ویندوز ۸ درک کرده باشید :)))


@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 خواهشا ردیس را به عنوان Primary Database استفاده نکنید!

یکی از جذاب‌ترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارش‌ها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!

در شروع کار، به این فکر می‌کردم که چگونه می‌توانم ۴۰ گیگابایت رم را آزاد کنم. اولین راه‌حلی که به ذهنم رسید، فشرده‌سازی داده‌ها بود. اما هیچ کامپرسوری نمی‌توانست به اندازه کافی این حجم داده را فشرده کند، و هزینه‌ی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.

هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K می‌رسید و Redis ۴۰ گیگابایتی را مصرف می‌کرد. هیچ اپلیکیشنی نمی‌توانست این حجم Request را با منابع پایین و زمان پاسخ‌دهی ۱۰ میلی‌ثانیه انجام دهد!

در ادامه، وقتی وارد فضای حل مسئله شدم:

پاک‌سازی داده‌های اضافی: اولین قدم ما حذف کلی داده‌های غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.

استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، می‌توانستیم حجم داده‌ها را به طور چشمگیری کاهش دهیم. با تبدیل داده‌ها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.

شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:

اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاه‌ها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف می‌شد!
کش کردن محصولات: همچنین، کالاهای اضافه‌شده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه داده‌ای نداشتیم، از منبع اصلی اطلاعات را می‌گرفتیم و دوباره به مدت ۴ روز کش می‌کردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه می‌کرد، TTL آن به صورت Sliding افزایش می‌یافت.

در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!

</Hasan Arab borzo>

@TheRaymondDev
Forwarded from Linuxor ?
تو رابطه هاتون UDP باشین وقتی خوبی کردین مثل TCP منتظر جوابش نباشینننننن.


🐧 @Linuxor
یه سوال
اگر بخواید ۲-۳ تا مدل رو با هم مقایسه کنید، چیکار میکنید؟

در حد سنجش توسط انسان عادی در نظر بگیرید لطفا 😂
Forwarded from ASafaeirad
تو بلاد کفر یه دیفین‌هیدرامین ساده گیر نمیاد.
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
دو روز پیش اعلام شد : بهترین جایگزین ls به نام exa (https://github.com/ogham/exa) که با راست نوشته شده دیگه maintain نمیشه به جاش از eza (https://github.com/eza-community/eza) که فورک فعال exa هست میتوانید
به نظر من توی لینوکس alias کردن exa به جای ls مزیت های زیادی داشت مثلا
alias ls='exa --icons --grid --classify --colour=auto --sort=type --group-directories-first --header --modified --created --git --binary --group'
یکی از alias هایی که استفاده میکنم این بود

یک جایگزین دیگه دستور g است
Forwarded from Gopher Academy
🔵 عنوان مقاله
Machine Learning in Go with a Python Sidecar

🟢 خلاصه مقاله:
مقاله مورد بحث توسعهٔ زبان برنامه‌نویسی Go و نقش آن در پروژه‌های یادگیری ماشینی (ML) و مدل‌های زبان بزرگ (LLMs) را مورد بررسی قرار می‌دهد. Python به دلیل تنوع بسیار زیاد پروژه‌ها و نمونه‌ها، همچنان پرچمدار عرصه ML است، اما Go به عنوان یک زبان 'چسب' مفید برای ادغام و هماهنگی بین پروژه‌های ML شناخته شده است، حتی اگر این کار به تعامل با پروژه‌های مبتنی بر Python هم نیاز داشته باشد. استفاده از Go می‌تواند در بهبود چگونگی کنترل و مدیریت این تعاملات میان زبانی به طور موثر کمک کند. این مقاله به توضیح مزایای استفاده از Go در کاربردهای ML مختلف و تعامل آن با Python می‌پردازد.


🟣لینک مقاله:
https://golangweekly.com/link/162088/web


👑 @gopher_academy
بین تسک هام ؛
یک پروژه جدید پوش کردم توی گیت هابم، اگر دارید Go یاد میگیرید و نیاز به پروژه های کوچیک و ساده دارید و میخواید مفهوم کد رو بدونید، میتونه مفید باشه براتون
اگر هم قابل بود، Star کنید چون قرار بیشتر بزارم
https://github.com/MisaghMomeniB/Task-Tracker-CLI-Go

@DevTwitter | <Misagh Momeni Bashusqeh/>
Forwarded from Geniuses Group (Omid Hekayati)
بیایید یکدیگر را به تفکر عمیق‌تر و پرسشگری دعوت کنیم!
با دو روز تاخیر روز جهانی #فلسفه را به دوستان #فیلسوف تبریک میگم. تاخیر پیش آمده در تبریک بخاطر همزمانی با روز جهانی DDD بود. این همزمانی البته جای تفکر و اندیشن زیادی هم قطعا داره!
متاسفانه دو کلمه فلسفه و فیلسوف به شکل عجیبی دارای تعریف مبهم و حتی کج فهمی در ذهن جامعه داره و وقتی در هر دو جهت مثبت و منفی کسی که زیاد پرسش ایجاد می کنه را فیلسوف و حوزه فعالیت ذهنی او را فلسفه نام گذاری می کنند. ولی واقعیت این هست که
- فیلسوف در معنای لغوی یعنی دوستدار دانایی با این ترکیب philo (دوستدارِ) sophos (دانایی). پس هر نوع #پرسش_گری به معنای فیلسوف بودن نیست و هر #پرسش ی هم در حوزه فلسفه نمی تواند قرار گیرد. نمی خواهیم هیچ محدودیتی ایجاد کنیم و مثلا بگوییم پرسش صحیح و غلط داریم، خیر. از دید نگارنده، اعمال هر نوع #فیلتریگ در این حوزه اشتباه هست و صرفا می توانیم پرسش ها را به پرسش فعلا خوب و فعلا نامناسب در زمان فعلی" برچسب زد.
- فلسفه در معنای لغوی یعنی خِرَد دوستی. لذا هر چیزی که مرتبط با حوزه خرد مرتبط می باشد می تواند در این حوزه ورود کند ولی یادمون باشه ورود صرفا جهت طی مسیرهای مشخص جهت کمک به افزایش خرد و تفکر است. پس این طی مسیر به معنای پاسخ گویی به پرسش برای افزایش خرد هست نه ماندگاری عمیق و طولانی در حوزه فلسفه. هر چند موضوعاتی مانند #فلسفه_اخلاق سالیان درازی هست که در حوزه فلسفه باقی مانده است ولی هر روز به عمق این حوزه فکری افزوده می شود.
اگر کل اطلاعات بشر را در یک دایره قرار بدیم بخشی از آن (قابل محاسبه و کمی سازی نیست بنظرم فعلا) حوزه #دانش بشری می باشد و زیر مجموعه ای از دانش بشر مرتبط با حوزه فلسفه می باشد و در ادامه زیرمجموعه ای از حوزه فلسفه، حوزه #علم قرار میگرد.
در نهایت همانطور که در جلسات #فلسفه_علم هم اشاره کردیم هیچ #اندیشمند ی بدون داشتن جعبه ابزارهای مرتبط نمی تواند در حوزه فلسفه و زیر مجموعه آن یعنی علم فعالیت داشته باشد. در همین جهت پیشنهاد می کنم به دنبال یادگیری مهارت‌های اندیشیدن باشید حتما.

در انتها اشاره کنیم که به همین مناسبت هم موسسه خوب تیزفکری تخفیف استثنایی بر روی بسته‌های آموزشی خودش گذاشته، اگر فردی هستید که نیاز به اجبار از سمت دیگران برای #یادگیری دارید و البته که نیاز به محصولاتشان داشتید، فرصت خوبی برای خرید هست.
▫️استدلال‌ورزی نقادانه، تا توانایی نقد اصولی و منطقی را پیدا کنیم.
▫️پرسشگری نقادانه، تا در هر موقعیتی بهترین پرسش‌ها را بپرسیم
▫️فلسفه‌علم، تا به مهمترین چالش‌ها و مرزبندی‌ها در فلسفه علم قرن بیستم آشنا شویم.
▫️و بلاخره، «رایج‌ترین مغالطه‌ها» تا اینگونه استدلال‌ها را در گفتگوهای روزمره تشخیص دهیم.
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
برای درک بهتر تکنیک های مرتب سازی (Sorting Techniques)
ابزار های Visualizer کمک خوبی هستند

🔥 سایت mszula الگوریتم های زیادی را visual کرده و امکانات خوبی مثل تعداد و سرعت داره


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

معمولاً الگوریتم‌های مرتب‌سازی بر اساس این معیارها طبقه‌بندی می‌شوند
پیچیدگی (بدترین و بهترین عملکرد و عملکرد میانگین)
حافظه (و سایر منابع کامپیوتر)
پایداری
مقایسه‌ای بودن یا نبودن


سایت های مشابه دیگه :
https://www.toptal.com/developers/sorting-algorithms
https://www.sortvisualizer.com/
https://visualgo.net/en/sorting
https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html
https://sorting-algorithm-jet.vercel.app/
https://opendsa-server.cs.vt.edu/embed/quicksortAV
پنج ساله که برای برنامه ریزی کردن از پلتفورم Notion استفاده میکنم.
مجموعه ای از تمپلیت هایی که بسیار ازشون استفاده کردم و خیلی کمکم کرده ن رو اینجا به اشتراک گذاشتم:
https://www.notion.so/@jasmine_1997

@DevTwitter | <Birdy/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰متنی رو امروز صبح دیدم درباره ساختار فایلهای ماشین مجازی vmware دیدم بد نیست که منتشر کنم.
🔰وقتی یک ماشین مجازی (VM) ایجاد می‌کنیم، چندین فایل مختلف در DataStore تولید می‌شود.

🔹معرفی فایل‌های مهم در هنگام ایجاد یک VM
1.فایل با پسوند .vmx:
o شامل تنظیمات اساسی ماشین مجازی مانند مشخصات CPU، مقدار RAM، نام ماشین مجازی و دیگر تنظیمات.
2.فایل با پسوند .vswp:
o فایل swap که برای انتقال دیتا از RAM به دیسک سخت (Hard Disk) استفاده می‌شود. این فایل زمانی که RAM ماشین مجازی پر شده باشد، به کمک می‌آید تا داده‌ها را به دیسک سخت منتقل کند و از overload شدن RAM جلوگیری کند.
3.فایل با پسوند .nvram:
o شامل تنظیمات BIOS ماشین مجازی است.
4.فایل با پسوند .log:
o این فایل مربوط به لاگ‌های ماشین مجازی است.
5.فایل با پسوند .vmtx:
o این فایل زمانی که VM به عنوان Template تعریف شده باشد، استفاده می‌شود.
6.فایل .vmdk:
o این فایل مربوط به Descriptor دیسک مجازی است و تنظیماتی مانند نسخه VirtualHardware، نوع Adapter و سایر تنظیمات دیسک را نشان می‌دهد. برای مدیریت و پیکربندی دیسک‌های مجازی استفاده می‌شود.
7.فایل flat.vmdk:
o این فایل شامل دیتای واقعی دیسک مجازی است. همه داده‌های ذخیره شده در دیسک مجازی در این فایل قرار دارد.
8.فایل .vmss:
o این فایل زمانی که VM را Suspend کنید، وضعیت فعلی آن را ذخیره می‌کند.

نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
📌به جمع حامیان کانال بپیوندید با حمایت از کانال📌
https://zarinp.al/learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰متنی رو امروز صبح دیدم درباره ساختار فایلهای ماشین مجازی vmware دیدم بد نیست که منتشر کنم.

🔰وقتی یک ماشین مجازی (VM) ایجاد می‌کنیم، چندین فایل مختلف ایجاد می‌شود.


🔹معرفی فایل‌های مهم در هنگام ایجاد یک VM
1.فایل با پسوند .vmx:
🔸 شامل تنظیمات اساسی ماشین مجازی مانند مشخصات CPU، مقدار RAM، نام ماشین مجازی و دیگر تنظیمات.
2.فایل با پسوند .vswp:
🔸 فایل swap که برای انتقال دیتا از RAM به دیسک سخت (Hard Disk) استفاده می‌شود. این فایل زمانی که RAM ماشین مجازی پر شده باشد، به کمک می‌آید تا داده‌ها را به دیسک سخت منتقل کند و از overload شدن RAM جلوگیری کند.
3.فایل با پسوند .nvram:
🔸شامل تنظیمات BIOS ماشین مجازی است.
4.فایل با پسوند .log:
🔸 این فایل مربوط به لاگ‌های ماشین مجازی است.
5.فایل با پسوند .vmtx:
🔸 این فایل زمانی که VM به عنوان Template تعریف شده باشد، استفاده می‌شود.
6.فایل .vmdk:
🔸 این فایل مربوط به Descriptor دیسک مجازی است و تنظیماتی مانند نسخه VirtualHardware، نوع Adapter و سایر تنظیمات دیسک را نشان می‌دهد. برای مدیریت و پیکربندی دیسک‌های مجازی استفاده می‌شود.
7.فایل flat.vmdk:
🔸 این فایل شامل دیتای واقعی دیسک مجازی است. همه داده‌های ذخیره شده در دیسک مجازی در این فایل قرار دارد.
8.فایل .vmss:
🔸 این فایل زمانی که VM را Suspend کنید، وضعیت فعلی آن را ذخیره می‌کند.
—————————————-
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
📌به جمع حامیان کانال بپیوندید با حمایت از کانال📌
https://zarinp.al/learninghive.ir
💎 ـ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