Coding Lovers
Ir al canal en Telegram
:همه شبکه های اجتماعی یکجا 🌐 Zil.ink/codinglovers :چیزی نیاز داری؟ 🧑💻 @Amir_OfficiaI 📌 تبلیغات: @CodingLoversAds :گروه 🍻 @CodingLovers_GP :ثبت نمونه کار 🪄 @CodingLovers_result
Mostrar más1 981
Suscriptores
+424 horas
+177 días
+3430 días
Archivo de publicaciones
1 982
اینم سورسش
دیگه حوصله توضیحات نوشتن نداشتم دادم هوش مصنوعی نوشت با مثال
@CodingLovers_OFF ❤️🔥
1 982
سِری پست های Rate limit - الگوریتم Fixed Window Counter
ساده ترین الگوریتم؛ تعداد درخواستها رو در فواصل زمانی ثابت (مثلاً ۱ دقیقه) پیگیری میکنیم. بعد از رسیدن به حد مجاز، تمام درخواستهای بعدی در اون پنجره رد میشن.
✨️ موارد استفاده
API های ساده با ترافیک قابل پیشبینی و پروژه های ساده. کاراییش بشدت راحته و مهاجم ها راحت میتونن دورش بزنن :)
🔓 خلاصه ازش استفاده نکنین، امن نیست.💢 ضعف همونطور که گفتم راحت میشه دورش زد و باهاش بازی کرد. میشه زمانبندی درخواست هارو یجوری میزون کرد که بیشتر از حد مجاز درخواست زد. @CodingLovers_OFF ❤️🔥
1 982
یه چند روز وقفه افتاده بین پست ها عذرمیخوام
۲ ۳ روز ریلکس کرده بودم، بعد ۲ ماه بکوب نشستن پشت سیستم حقم بود
1 982
Repost from N/a
‼️ اشتراک V2RAY بدون محدودیت حجم و کاربر
🔅 با قیمت استثنائی 120 تومان
( برای دریافت اکانت تست پیام دهید )
اکانت تست ◀️ @IchBinMehdi
1 982
سِری پست های Rate limit - الگوریتم Token Bucket
توکنها با نرخ ثابتی تولید و توی یه سطل ذخیره میشون. هر درخواست یک توکن مصرف میکنه. وقتی توکن ها تموم بشن، درخواست هم رد میشه.
پیچیدگی خاصی نداره که بخوام توضیح بیشتری بدم :/
یجورایی برخلاف الگوریتم قبلی رفتار میکنه، اونجا سطل با درخواست پر میشد، اینجا خالی میشه.✨️ موارد استفاده بدرد API هایی میخوره که میخوان جلوی اسپم و بروت فورس رو بگیرن. تخصصی تر بخوام بگم، برای مدیریت افزایش ناگهانی ترافیک بدرد میخوره. مثلا سایت قابلیت سرچ داره، این الگوریتم کمکت میکنه تا از سرچ های تند تند و پشت هم کاربرا جلوگیری کنی.
خلاصه بهترین الگوریتم برای گذاشتن محدودیت هایی مثل Request per minute هست.💢 ضعف حقیقتا شخصا ضعفی توش ندیدم :) @CodingLovers_OFF ❤️🔥
1 982
سِری پست های Rate limit - الگوریتم Leaky Bucket
یک سطل رو با یه سوراخ کوچیک در تهه اون تصور کنین. درخواستها (آب) به سطل اضافه میشون و با سرعت ثابتی «قطره قطره» پردازش میشن و از سیل ناگهانی جلوگیری میکنن.
از یه سایت بخوام مثال بزنم، فرض کن کاربر ۱۰۰ تا درخواست همزمان میده، ولی تو با این الگوریتم، تو ۱۰ تا ۱۰ تا جوابشو میدی✨️ موارد استفاده برای جاهایی مثل پردازش پرداخت کاربرد داره، چون قطعا نمیخواین یه کاربر همزمان ۱۰ تا ۱۰ تا پرداخت انجام بده، و باید دونه دونه پردازش بشن و باز هم قطعا نمیخواین یه کاربر ساعتی ۱۰۰ تا پرداخت انجام بده و باید یه وقفهای بینشون باشه. همچنین برای پلتفرم های پخش انلاین هم اهمیت داره، برای مثال یه کاربر نباید بتونه همزمان چند تا پخش رو دنبال کنه تا کیفیت پخش رو بتونین تضمین کنین. 💢 ضعف از اونجایی که یه نرخ ثابتی برای پردازش تعیین میکنین ( مثلا پردازشِ ۱۰ تا ۱۰ تا )، هیچوقت نمیتونین این نرخ ثابت رو تغییر بدین، حتی وقتی ک سیستمتون قدرت پردازشعه بالاتری داره ( درواقع این الگوریتم انعطاف پذیر نیست ) @CodingLovers_OFF ❤️🔥
1 982
سِری پست های Rate Limiting
توی این سِری پست ها میخوام الگوریتم های مختلف rate limting رو توضیح بدم. اول از همه ببینیم چه کاربردی داره؟
Rate Limit چیست؟
توضیح خاصی نداره چون همتون باهاش آشنایید. تاحالا به خطای 429 Too Many Requests برخورد کردین؟ دقیقا همونه. مکانیزمی هست برای محافظت از یک منبع دربرابر اضافهبار.
برای مثال اوایل که AWS درست شد، همچین مکانیزمی نداشتن و یه نفر فقط با فرستادن ۱ میلیون درخواست باعث شد سرویسشون دچار مشکل بشه و هزینه ی هنگفتی براشون ایجاد کنه. این دقیقا جایی بود بحث Rate limit به شکل رسانه ای بزرگ شد.
چرا Redis برای Rate Limit؟
ردیس یه ابزار محبوب برای پیاده سازی rate limit هست و دلیل خوبی داره: سرعت و اسکریپتنویسی.
همچنین atomic بودن و نگهداشتن داده ها در حافظه هم هستن.
انواع پترن ها و الگوریتم ها
- Leaky Bucket
- Token Bucket
- Fixed Window
- Sliding Window
همه رو به ترتیب روزی یکی رو توضیح میدم...
@CodingLovers_OFF 🔥
1 982
حالا در مقابل روش Soft delete، استراتژیی هست برای نگه داشتن اطلاعات حذف شده.
توی شرکت ها، اسناد قدیمی و بدرد نخور رو میریزن کجا؟ آرشیو
روش آرشیو در مدیریت دیتابیس
فرض کنید کتابخانه ای رو مدیریت میکنین. اگر بخواید کتابی را دور بندازید، میشه Hard Delete. اگه بخواید کتاب های قدیمی رو همونجا در قفسه ای به نام "حذف شده ها" بچینید، میشه Soft Delete، و اما اگه بخواید بفرستید به مکانی مثل انبار، میشه آرشیو کردن.
در روش Hard Delete، کتاب کاملا از دست رفته و قابل برگشت نیست، پس بحثی راجبش نداریم.
در روش Soft Delete، به مرور زمان کتابخونه شما تبدیل به انباریی از کتاب های حذف شده میشه. پیدا کردن کتاب های جدید سخت تر و سخت تر میشه.
در روش آرشیو، همه چیز مرتب و منظم در جای خودش قرار داره.
❓️ روش ها
چندین روش وجود داره بسته به راهی که میرید. آخرین راهی که من استفاده کردم این بوده:
بخشی (یک schema) به نام archive توی دیتابیس ساختم، تیبل هارو به همون ساختار اصلی ( گاهی با کمی تفاوت ) در archive ساختم.
با استفاده از قابلیت TRIGGER در دیتابیس ها، عملکرد های Delete رو شنود کردم و اینجوری هروقت اطلاعاتی در بخش اصلی دیتابیس حذف شد، خودکار اون اطلاعات ریخته میشن توی archive.
پ.ن: این روش زیاد مورد پسند نیست و توی بیزینس های بزرگ، از چند تا سرور مختلف استفاده میکنن، ولی خب برای من کافی بود.
🚀 تاثیر در بهینه بودن دیتابیس
باعث میشه عملکرد های DELETE سرعت خیلی پایینی پیدا میکنن و ممکنه زمانبر بشن، اما در عین حال سرعت SELECT و UPDATE رو در بالاترین حالت خودش حفظ میکنه. همچنین همیشه فضای اصلی و تیبل های اصلی کم حجم و تمیز میمونن.
@CodingLovers_OFF 🔥
1 982
Soft Delete در مدیریت دیتابیس
برای متوجه شدن Soft delete اول باید یه نگاهی به مفهوم Hard Delete بندازیم.
کلمه ای رو تصور کنید — Hard Delete یعنی حذف کردن و پاک کردن اون کلمه به شکل کامل. ولی از اون طرف، Soft Delete یعنی قرار دادن اون کلمه در جایی به نام "دور انداخته شده". حذف شده، اما همچنان هست اگر نیازش داشته باشی.
توی دیتابیس، Hard Delete یعنی حذف کامل یک دیتا به شکل کلی اما Soft delete یعنی قرار دادنش به عنوان "حذف شده".
✨️ چرا مهمه؟
- جلوگیری از اشتباهات: یهویی اشتباهی دیتای مهمی از دیتابیس پاک بشه. با Soft Delete میتونی برش گردونی
- قانون: بسیاری از صنعت ها و شغل ها هستن که قوانینشون شمارو موظف میکنه هیچ دیتایی نباید پاک شه و تمام اطلاعات باید نگهداری بشن. خصوصا وقتی داخل ایران هستی، یکی میتونه بی دلیل ازت شکایت دروغ بکنه؛ اگه دیتا رو پاک کرده باشی هیچ مدرکی برای دفاع نداری
- حسابرسی: توی بیزینس های بزرگ، معمولا اطلاعات حذف شده هم ارزش پیدا میکنن و برای بررسی و پیشرفت مهم هستن ( خصوصا توی حسابداری و حسابرسی )
❓️ روش ها
روش های ساده ای هست که خیلی راحت به ذهن میان.
برای اطلاعات میتونید سطری به نام is_deleted در نظر بگیرید
یا میتونید برای دقیق تر شدن اطلاعات، تاریخ بزنید deleted_at
و ...
🚀 تاثیر در بهینه بودن دیتابیس
این روش در مراحل اول خیلی میتونه به سرعت کمک کنه، چون بجای DELETE کردن، شما از UPDATE استفاده میکنید و این سرعت رو بالا میبره. اما سرعت SELECT کردن شما رو به مرور زمان با بالا رفتن اطلاعات کاهش میده.
برای حفظ کردن سرعت، باید اطلاعات قدیمی رو به شکلی آرشیو کنید و از اطلاعات اصلی جدا کنید ( و یا حتی اطلاعاتی که میدونید بدرد نمیخورن رو Hard delete کنید )
@CodingLovers_OFF 🔥
1 982
📦 ابزار مدیریت پروژه رسمی پایتون
قبلا درمورد uv که از بهترین هاست گفتیم، حالا بهتره یکم راجب ابزار رسمی خود پایتون حرف بزنیم.
🛠 ابزار hatch
یه ابزار مدرن و جدید برای مدیریت پروژه های پایتون هست که توسط خود pypi تایید شده و حتی داکیومنت hatch رو خود pypi با سابدامین در اختیار همه قرار داده.
هدف از این ابزار این بوده که وابستگی شما به چندین ابزار مختلف برای مدیریت پروژه رو از بین ببره.
براتون:
- پروژه هایی با ساختار های پیشنهادی خود پایتون خلق میکنه
کار pip رو انجام میده و همه پکیج هارو مدیریت میکنه
- کار venv رو انجام میده
- کار pytest رو انجام میده ( ولی خب ضعیف تره )
- بهتون برای انتشار لایبرری در pypi کمک میکنه
🚀 فرق با UV
ابزار hatch با پایتون نوشته شده و uv با Rust.
سرعت کمتری نسبت به uv داره.
ابزار uv چیزی فراتر از یک مدیریت پروژه هست و امکانات بیشتری با سرعت بیشتری میده، اما در عین حال یادگیریش خیلی سخت تره ( البته که مثل hatch کار pytest رو انجام نمیده ).
از uv برای پروژه های استفاده میکنن که سرعت CI/CD اهمیت زیادی داره.
@CodingLovers_OFF 🔥
1 982
Repost from مهندسی برق و کامپیوتر پارس پژوهان
4شهریور زادروز کوروش بزرگ🇮🇷
برای حفظ و توسعه تمدن ایران چیکار کردی؟(کامنت کن)
🔽20% تخفیف دوره ها تا 10 شهریور🔽
🌐store.parspajouhaan.com (👈اینجا)
🤔سوالات پرتکرار
😮وبینارهای رایگان
دسته بندی دوره های مهندسی و مدیریت کلیک کنید👇
مکانیک پزشکی عمران معماری
هوافضا مواد کامپیوتر صنایع
برق شیمی نفت و گاز مدیریت
🥸همین الان سوال کن:
😏@parspajouhaan_registration1
📞021-88322992,021-88322993
📱@parspajouhaan_cee
🔽20% تخفیف دوره ها تا 10 شهریور🔽
1 982
رفتم گیتهابم بعد یه مدت
یهو اینو دیدم، سیگنال میدادیم وقتی مد نبود 🌟
۲۶ هزار بود اون موقع
https://github.com/Amirofficiai
1 982
🚀 تفاوت Redis و Memcached
هردو سیستمی برای ذخیره کردن اطلاعات روی مموری هستن که برای کش کردن اطلاعات تکراری و پرکاربرد استفاده میشن.
ولی باز هم کلی تفاوت اساسی دارن.
✨️ ویژگی های memcached
- فقط و فقط استرینگ مثل دیکشنری نگه میداره
- فقط روی مموری نگه میداره ک اگه سرور ریستارت شه، اطلاعات میپرن.
- از قابلیت multi threading پشتیبانی میکنه، یعنی همزمان میتونه به درخواستا جواب بده که باعث میشه سرعت خیلی بالاتری توی همزمانی داشته باشه
قابلیت خاصی نداره، مثل یه دیکشنری رفتار میکنه، ساختار های خاصی که داره باعث شده سرعت بشدت بشدت بالایی داشته باشه و درعین حال نسبت به کاربردی که داره، رم مناسبی مصرف میکنه📦 ویژگی های redis - چندین نوع دیتا رو نگه میداره - حواسش هست حتی اگه سرور خاموش هم بشه، اطلاعات رو روی دیسک نگه میداره ( البته که احتمالش خیلی بالاست قدیمی یا ناقص باشن، بستگی به کانفیگ شدنش داره ) - نمیتونه مالتی تردینگ باشه و درخواستارو دونه دونه جواب میده - کلی قابلیت خفن داره مثل real time، session management، و ...
واقعا یه کش پر از قابلیتعه، باهاش هر الگوریتم کشی که بخواید میتونید بسازید، و کلی نوع داده رو مدیریت کنید.🏢 چه سازمان هایی از memcached استفاده میکنن؟ ( طبق گفته خودشون ) فیس بوک: برای کاهش تعداد درخواست به دیتابیس توییتر: برای اطلاعات کاربران، یا توییت های تکراری ویکیپدیا: برای صفحاتی که زیاد دیده میشن ردیت: برای نگهداری اطلاعات موقتی یوتیوب: برای نگهداری متادیتا ویدیو ها 🏢 چه سازمان هایی از redis استفاده میکنن؟ ( طبق گفته خودشون ) توییتر: برای ذخیره تایملاین های کاربران، داده های درلحظه گیتهاب: برای مدیریت صف های پسزمینه اینستاگرام: برای نگهداری داده های مربوط به فیدهای خبری پینترست: برای کمتر کردن درخواست به دیتابیس استکاورفلو: فقط گفته استفاده میکنه، معلوم نیس دقیقا برای چی 🔥 @CodingLovers_OFF
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
