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
💎 پکیج joi در جاوااسکریپت 💎

امروز میخوام در مورد یه پکیج خفن به اسم joi توی جاوااسکریپت صحبت کنم. 😎

خب بذارید اول بگم joi چیه و به چه دردی میخوره. 💡

فرض کن توی پروژه‌ت میخوای ورودی‌های کاربر رو validate کنی، مثلا فرم لاگین، ثبت نام، یا هر چیزی که قراره دیتای کاربر رو بفرسته.
معمولا برای اینکه مطمئن بشیم اطلاعاتی که میگیریم درسته، مثل ایمیل درست باشه، پسورد حداقل تعداد کاراکتر رو داشته باشه و ...، باید خودمون یه سری شرط بنویسیم که معمولا کدنویسی زیادی می‌طلبه.

حالا اینجاست که joi وارد میشه! 😎
با این پکیج می‌تونی خیلی راحت و سریع همه چیز رو ولیدیت کنی و نیازی نیست کلی کد بنویسی. 🙌

چطوری نصب کنیم؟
خیلی ساده‌ست:
npm install joi

حالا استفاده‌اش چطوریه؟
یه مثال ساده میزنم:

const Joi = require('joi');

const schema = Joi.object({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
email: Joi.string().email({ tlds: { allow: false } })
});
حالا میایم دیتا رو با این اسکیما ولیدیت می‌کنیم
const { error, value } = schema.validate({
username: 'user123',
password: 'mypassword',
email: '[email protected]'
});

if (error) {
console.log('خطا: ', error.details);
} else {
console.log('همه چی اوکیه: ', value);
}

همونطور که می‌بینید، با joi می‌تونید به راحتی اسکیماهای مختلف برای ولیدیت کردن دیتا تعریف کنید.
نیازی نیست نگران درست بودن دیتا باشید، چون خودش همه چیز رو چک می‌کنه. 😎💪

برای مطالعه بیشتر میتونید به این سایت مراجعه کنید 😁

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

#JOIValidation #JavaScriptTips #BackendDevelopment


@ninja_learn_ir
Forwarded from Syntax | سینتکس (alireza-fa)
امروز یه باگ بامزه تو پروژه Django خورد تو صورتم که گفتم باهاتون درمیون بذارم، شاید یه روزی به دادتون برسه!

اگه بعد از ساختن یه آبجکت توی ویو (مثلاً با متد create) بلافاصله آی‌دی اون رو بدی به یه تسک Celery، ممکنه توی محیط پروداکشن با ارور DoesNotExist مواجه بشی — در حالی که لوکال همه چیز درست کار می‌کنه!

چرا این اتفاق می‌افته؟

چون وقتی تنظیماتی مثل ATOMIC_REQUESTS = True فعال باشه، Django تا زمانی که ریکوئست کامل نشه، اطلاعات رو به دیتابیس commit نمی‌کنه.
از اون طرف Celery تسک رو بلافاصله بعد از پاسخ 201 اجرا می‌کنه؛ یعنی قبل از اینکه دیتابیس واقعاً اطلاعات رو ذخیره کرده باشه.

راه‌حل درست و اصولی:
به جای اینکه تسک رو همون لحظه اجرا کنیم، باید صبر کنیم تا commit تموم بشه.
و Django خودش این ابزار رو بهمون داده:

transaction.on_commit(lambda: my_task.delay(obj_id))

این خط یعنی: «بعد از اینکه commit شد، حالا برو سراغ تسک.»

یه نکته ساده ولی حیاتی که می‌تونه جلوی کلی باگ دردسرساز رو بگیره — مخصوصاً وقتی کد رو از dev می‌بریم روی production!

Source

#django

@Syntax_fa
Forwarded from Golden Code (علی 🇨🇴)
"چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟

وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن Laravel جواب نمیده! ولی واقعیت اینه که اگر از ابزارها و تکنیکهای درست استفاده کنی، Laravel خیلی هم قدرتمنده

استفاده از Queue Jobs
ارسال عملیاتهای سنگین به صف برای پردازش در پسزمینه

بهینهسازی دیتابیس: تعریف Index مناسب

استفاده از Query Builder به جای Eloquent برای کوئریهای سنگین یا حتی اگه می تونین کوئری خام بنویسین معجزه رو می بینید

استفاده از Transaction
برای تضمین atomic بودن عملیاتهای حساس جاهایی که چند کار مرتبط با هم رو می خواین انجام بدین عالیه

استفاده از chunk
بارگذاری و پردازش دادههای بزرگ بهصورت تکهای

۵. استفاده از Redis یا Kafka

برای صفهای سریع و سبک Redis
برای پروژه های بزرگ و real-time کافکا باور کنید معجزه می کنه

بهینه سازی کد PHP و مصرف حافظه

استفاده از cursor() بهجای بارگذاری کل دیتا

جلوگیری از لوپهای سنگین و غیرضروری

نتیجه؟
اگه این موارد رو به درستی پیاده کنید، Laravel بهراحتی از پس میلیونها ترنزاکشن برمیاد بدون اینکه اپلیکیشنت کرش کنه! "

#Laravel

@GoldenCodeir
(به منبع توجه کنید👇🏾)

https://www.linkedin.com/posts/fererydoon-salemi_laravel-php-backenddevelopment-activity-7327385475915128832-DtQB?utm_source=share&utm_medium=member_android&rcm=ACoAACtoqKYB5Pk8cjIxolPHpdjShKtRL0tcolQ
Forwarded from Gopher Academy
🔵 عنوان مقاله
Twenty Talks from GopherCon UK 2025

🟢 خلاصه مقاله:
** پلی‌لیست YouTube با عنوان Twenty Talks from GopherCon UK 2025 مجموعه‌ای از بیست ارائه تازه‌منتشرشده از کنفرانس ماه گذشته Go در لندن را یکجا گرد آورده است. همه‌ی Talks عمیق و فنی‌اند؛ اگر فقط یکی را می‌خواهید ببینید، پیشنهاد می‌شود “What’s Coming in Go 1” از Daniel Marti را از دست ندهید.

#Go #Golang #GopherConUK #YouTube #ConferenceTalks #SoftwareEngineering #BackendDevelopment

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


👑 @gopher_academy