یه اپ امنیتی برای جنگو نوشتم که لاگین فیک میسازه و رفتار مشکوک کاربرا (مثل لاگین خیلی سریع یا فیلدهای تقلبی) رو تشخیص میده
باهاش میتونی صفحات ادمین فیک Django و حتی WordPress بسازی، حرکات هکرها رو لاگ کنی و هشدار بگیری
https://github.com/alihtt/django-honeyguard
@DevTwitter | <Ali Hatami/>
باهاش میتونی صفحات ادمین فیک Django و حتی WordPress بسازی، حرکات هکرها رو لاگ کنی و هشدار بگیری
https://github.com/alihtt/django-honeyguard
@DevTwitter | <Ali Hatami/>
👍31❤6👎6🍌2
دیزاین پترن ها رو یاد نخواهید گرفت مگر با مثال هایی که در پروژه های واقعی یا فریم ورک ها استفاده شده. مثلا ببینید چطور نست برای کانفیگ کردن swagger از پترن builder استفاده میکنه. توی این ریپو پترن های بیشتری با دیاگرام هست. ممنون میشم اگر استار بدین
https://github.com/vahidvdn/realworld-design-patterns/
@DevTwitter | <Vahid/>
https://github.com/vahidvdn/realworld-design-patterns/
@DevTwitter | <Vahid/>
❤24👍9🔥1
این ریپو Gini Impurity منه که که پارسال برای پروژه درس دادهکاوی دانشگاه درستش کرده بودم و الان رتبه اول گیتهاب تاپیک شده و از نظر ستاره محبوب ترین ریپو گیتهاب من هم هست.
شامل یک اسکریپت محاسبه شاخص جینی بصورت کلاسیک و یک مدل تکامل یافته که ابداع خودم بوده.
کاربرد شاخص جینی در درخت های تصمیم و پیش پردازش دیتاست ها است و ... خیلی چیز های دیگه.
داخل ریپو یک فایل PDF بصورت جزوه هست(به زبان انگلیسی) که صفر تا 99 درصد کار رو توضیح میده و برای دانشجوهایی که مثل من پروژه و ارائه داشتن عالیه
github.com/a-partovii/Gini-Impurity
@DevTwitter | <Ashkan-P/>
شامل یک اسکریپت محاسبه شاخص جینی بصورت کلاسیک و یک مدل تکامل یافته که ابداع خودم بوده.
کاربرد شاخص جینی در درخت های تصمیم و پیش پردازش دیتاست ها است و ... خیلی چیز های دیگه.
داخل ریپو یک فایل PDF بصورت جزوه هست(به زبان انگلیسی) که صفر تا 99 درصد کار رو توضیح میده و برای دانشجوهایی که مثل من پروژه و ارائه داشتن عالیه
github.com/a-partovii/Gini-Impurity
@DevTwitter | <Ashkan-P/>
👍26👎11❤4🍌2
این ریپو هم جالب بود
آموزش امن کردن سرور لینوکسی که خودش گفته یکم هم امنیت بهتون یاد میدیم.
البته که گفته به درد سرور شخصی میخوره، بیشتر هدفش آموزشه تا کانفیگ سرور پروداکشن ولی خب جامع و کامله.
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
@DevTwitter | <Milad Niroee/>
آموزش امن کردن سرور لینوکسی که خودش گفته یکم هم امنیت بهتون یاد میدیم.
البته که گفته به درد سرور شخصی میخوره، بیشتر هدفش آموزشه تا کانفیگ سرور پروداکشن ولی خب جامع و کامله.
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
@DevTwitter | <Milad Niroee/>
❤17👍3🔥1🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
بهتازگی با Mage-UI آشنا شدم
مجموعهای از کامپوننتهای رابط کاربری که طراحی مدرن، انیمیشنهای نرم و افکتهای چشمنواز رو با سادهترین روش ممکن ترکیب کرده.
چیزی که منو جذب کرد اینه که فقط با یه copy-paste ساده میتونی جلوههایی حرفهای و مدرن به پروژههات اضافه کنی، بدون نیاز به تنظیمات پیچیده یا وابستگیهای سنگین.
برای توسعهدهندهها و طراحهایی که دنبال سادگی، خلاقیت و سرعت هستن، Mage-UI یه ابزار کمنظیره برای ساخت تجربههای کاربری زنده و جذاب.
لینکش هم که اینجاست
mageui.live
@DevTwitter | <Abolfazl Shekarshekan/>
مجموعهای از کامپوننتهای رابط کاربری که طراحی مدرن، انیمیشنهای نرم و افکتهای چشمنواز رو با سادهترین روش ممکن ترکیب کرده.
چیزی که منو جذب کرد اینه که فقط با یه copy-paste ساده میتونی جلوههایی حرفهای و مدرن به پروژههات اضافه کنی، بدون نیاز به تنظیمات پیچیده یا وابستگیهای سنگین.
برای توسعهدهندهها و طراحهایی که دنبال سادگی، خلاقیت و سرعت هستن، Mage-UI یه ابزار کمنظیره برای ساخت تجربههای کاربری زنده و جذاب.
لینکش هم که اینجاست
mageui.live
@DevTwitter | <Abolfazl Shekarshekan/>
👍27👎4🔥4
تو نسخه ۱.۲۵ گولنگ یه garbage collector تازه به اسم Green Tea اضافه کردن که سرعتش خیلی بهتره. فعلاً آزمایشیه ولی از ۱.۲۶ به بعد قراره پیشفرض بشه.
اگه گو کار میکنید یا نه، پیشنهاد میکنیم این پست رو بخونید. خیلی خوب توضیح میده GC چطور کار میکنه و چطوری باید به پرفورمنس یه برنامه نگاه کنیم؛ از instruction های CPU تا دسترسی به مموری و بقیه داستانها.
لینکش اینه:
https://go.dev/blog/greenteagc
@DevTwitter | <Ali />
اگه گو کار میکنید یا نه، پیشنهاد میکنیم این پست رو بخونید. خیلی خوب توضیح میده GC چطور کار میکنه و چطوری باید به پرفورمنس یه برنامه نگاه کنیم؛ از instruction های CPU تا دسترسی به مموری و بقیه داستانها.
لینکش اینه:
https://go.dev/blog/greenteagc
@DevTwitter | <Ali />
🔥25❤5👍1🍌1
🍌151👎8👍7🔥1
پروژه Cortex یه پسورد منیجر تحت کنسوله که روی راحتی استفاده و امنیت خیلی بالا متمرکز هست و بالاخره بعد از 2 ماه، Cortex V3.0.0 رو منتشر کردم. تغییرات این نسخه برای خودم راضی کنند بود و امیدوارم برای بقیه هم همینجوری باشه. البته که همیشه میشه بهترش رو ساخت.
https://github.com/naseridev/cortex
@DevTwitter | <Nima Naseri/>
https://github.com/naseridev/cortex
@DevTwitter | <Nima Naseri/>
👍20👎5🔥1
تفاوت Access Token و Refresh Token به زبان ساده
در سیستمهای احراز هویت مدرن مثل Keycloak یا IdentityServer،
دوبار اسم «توکن» رو میشنویم:
ولی واقعاً فرقشون چیه؟
Access Token
توکن کوتاهمدتیه (مثلاً ۵ تا ۱۵ دقیقه) که بعد از لاگین کاربر صادر میشه.
هر بار که کاربر به API درخواست میفرسته، این توکن همراه درخواست میره تا سرور بفهمه کاربر کیه.
Refresh Token
طول عمر بیشتری داره (مثلاً ۳۰ دقیقه یا حتی چند ساعت).
اگر Access Token منقضی بشه، سیستم با استفاده از Refresh Token یه Access Token جدید میگیره
— بدون اینکه کاربر مجبور باشه دوباره لاگین کنه.
به زبان ساده Access Token مثل بلیط ورود به یک سالن هست ️
اما Refresh Token مثل کارت عضویت اون سالنه
باهاش میتونی هر بار بلیط جدید بگیری بدون ایستادن تو صف لاگین.
مزیت این روش:
امنیت بیشتر (Access Token کوتاهمدت و ایمنتره)
تجربه کاربری بهتر (کاربر کمتر لاگاوت میشه)
کنترل بهتر سمت سرور روی اعتبار توکنها
در پروژهی اخیرم با Keycloak این مکانیزم رو پیادهسازی کردم.
کاربر بعد از ثبتنام، هم در Keycloak و هم در SQL Server ذخیره میشه تا
میان سیستم احراز هویت و اپلیکیشن اصلی یکپارچگی کامل برقرار باشه.
هر وقت در مورد Authentication کار میکنی،
یادت باشه که هدف فقط «ورود کاربر» نیست —
بلکه «مدیریت ایمن و هوشمند عمر نشست (Session Lifecycle)» هست.
در دنیای Api ها ما موظفیم با توکن ها کار کنیم
در ریزور پیج ها یک ورودی هیدن داشتیم که مدیریت توسط آن توسط خود asp بود
اما در api ها مدیریت توکن ها با ماست
بهترین گزینه هم استفاده از IDP (Identity Provider) هاست چون هم فرانت و هم بک را برای ما پوشش میدهد.
@DevTwitter | <Hossein Molaei/>
در سیستمهای احراز هویت مدرن مثل Keycloak یا IdentityServer،
دوبار اسم «توکن» رو میشنویم:
ولی واقعاً فرقشون چیه؟
Access Token
توکن کوتاهمدتیه (مثلاً ۵ تا ۱۵ دقیقه) که بعد از لاگین کاربر صادر میشه.
هر بار که کاربر به API درخواست میفرسته، این توکن همراه درخواست میره تا سرور بفهمه کاربر کیه.
Refresh Token
طول عمر بیشتری داره (مثلاً ۳۰ دقیقه یا حتی چند ساعت).
اگر Access Token منقضی بشه، سیستم با استفاده از Refresh Token یه Access Token جدید میگیره
— بدون اینکه کاربر مجبور باشه دوباره لاگین کنه.
به زبان ساده Access Token مثل بلیط ورود به یک سالن هست ️
اما Refresh Token مثل کارت عضویت اون سالنه
باهاش میتونی هر بار بلیط جدید بگیری بدون ایستادن تو صف لاگین.
مزیت این روش:
امنیت بیشتر (Access Token کوتاهمدت و ایمنتره)
تجربه کاربری بهتر (کاربر کمتر لاگاوت میشه)
کنترل بهتر سمت سرور روی اعتبار توکنها
در پروژهی اخیرم با Keycloak این مکانیزم رو پیادهسازی کردم.
کاربر بعد از ثبتنام، هم در Keycloak و هم در SQL Server ذخیره میشه تا
میان سیستم احراز هویت و اپلیکیشن اصلی یکپارچگی کامل برقرار باشه.
هر وقت در مورد Authentication کار میکنی،
یادت باشه که هدف فقط «ورود کاربر» نیست —
بلکه «مدیریت ایمن و هوشمند عمر نشست (Session Lifecycle)» هست.
در دنیای Api ها ما موظفیم با توکن ها کار کنیم
در ریزور پیج ها یک ورودی هیدن داشتیم که مدیریت توسط آن توسط خود asp بود
اما در api ها مدیریت توکن ها با ماست
بهترین گزینه هم استفاده از IDP (Identity Provider) هاست چون هم فرانت و هم بک را برای ما پوشش میدهد.
@DevTwitter | <Hossein Molaei/>
👍27👎8🔥3❤1
تو این ویدیو از صفر رفتم سراغ ساخت یه DNS سرور با dnsmasq. تنظیمش، راهاندازیش، و بالا اومدن واقعی سرویس رو قدمبهقدم نشون دادم
https://youtu.be/Nm8bThLf1ZE?si=YlxWxYw26ZiFObpA
@DevTwitter | <Mani/>
https://youtu.be/Nm8bThLf1ZE?si=YlxWxYw26ZiFObpA
@DevTwitter | <Mani/>
❤22👍1👎1🔥1
اگر توی پروژه هاتون نیاز به یک component library دارید، heroui میتونه یه گزینه خیلی خوب باشه
کامپوننت های زیاد و کاملی داره که میتونید ازشون برای ساختن یک پروژه large scale استفاده کنید، همچنین کاستومایز کردن این کامپوننت ها و واریانت هاشون خیلی ساده هست
همچنین سورس کد بسیار تمیزی داره، پیشنهاد میدم سورس کد این کتابخونه رو توی گیتهاب حتما بخونید چون تست های خیلی تمیز و یکپارچه ای با استفاده از RTL و Vitest نوشته شده که میتونه بسیار آموزنده باشه
سورس کد:
https://github.com/heroui-inc/heroui
@DevTwitter | <sepehr doraghi/>
کامپوننت های زیاد و کاملی داره که میتونید ازشون برای ساختن یک پروژه large scale استفاده کنید، همچنین کاستومایز کردن این کامپوننت ها و واریانت هاشون خیلی ساده هست
همچنین سورس کد بسیار تمیزی داره، پیشنهاد میدم سورس کد این کتابخونه رو توی گیتهاب حتما بخونید چون تست های خیلی تمیز و یکپارچه ای با استفاده از RTL و Vitest نوشته شده که میتونه بسیار آموزنده باشه
سورس کد:
https://github.com/heroui-inc/heroui
@DevTwitter | <sepehr doraghi/>
❤18👍6👎4🍌2
https://github.com/archmmd/Ultimate-RAT-Collection
چیکار میکنی از افسردگی در بیایی؟
- گیتهاب بالا پایین میکنم ریپوهارو بررسی میکنم :)))
@DevTwitter | <بـےاعصاب/>
چیکار میکنی از افسردگی در بیایی؟
- گیتهاب بالا پایین میکنم ریپوهارو بررسی میکنم :)))
@DevTwitter | <بـےاعصاب/>
🍌38👍18👎6❤2
ریپو ناکست پورتفولیوی public
این ریپو رو با نسل تازهی ابزارهای فرانتاند (latest versions) بازنویسی کردم
کاملاً SSR-محور، سریع، و با پشتیبانی کامل از i18n، RTL و Dark Mode پیشفرض.
Live Demo: aliarghyani.vercel.app
GitHub: https://github.com/aliarghyani/nuxt-portfolio
Tech Stack
- Nuxt 4.x (Vue 3 + Vite)
- Nuxt UI 4.x
- Tailwind CSS 4.1.x
- TypeScript 5.9.x
- nuxtjs/i18n 10.x + nuxtjs/color-mode 3.x
- nuxt/image 1.x + VueUse 13.x
چرا نسخههای جدید بهترند؟
Nuxt 4
رندر سریعتر، SSR/Edge بهتر با Nitro جدید، HMR پایدارتر و TypeScript قویتر.
Nuxt UI 4
تمینگ بر پایه Design Tokens، کامپوننتهای SSR-friendly و API سازگار با Tailwind v4.
Tailwind 4
موتور جدید مبتنی بر CSS Variables، خروجی سبکتر و JIT سریعتر.
مسیرهای چندزبانه , lazy loading و مدیریت دقیق RTL/LTR.
بهینهسازی خودکار تصاویر برای عملکرد بهتر.
حالت تاریک همگام در SSR و کلاینت.
تمرکز این نسخه روی performance، DX، و معماری ماژولار بوده
بعدها خیلی آپدیتهای دیگه براش میدم
یه بیس خوب برای پروژههای شخصی یا شرکتی روی Nuxt نسل جدید.
@DevTwitter | <Ali Arghyani/>
این ریپو رو با نسل تازهی ابزارهای فرانتاند (latest versions) بازنویسی کردم
کاملاً SSR-محور، سریع، و با پشتیبانی کامل از i18n، RTL و Dark Mode پیشفرض.
Live Demo: aliarghyani.vercel.app
GitHub: https://github.com/aliarghyani/nuxt-portfolio
Tech Stack
- Nuxt 4.x (Vue 3 + Vite)
- Nuxt UI 4.x
- Tailwind CSS 4.1.x
- TypeScript 5.9.x
- nuxtjs/i18n 10.x + nuxtjs/color-mode 3.x
- nuxt/image 1.x + VueUse 13.x
چرا نسخههای جدید بهترند؟
Nuxt 4
رندر سریعتر، SSR/Edge بهتر با Nitro جدید، HMR پایدارتر و TypeScript قویتر.
Nuxt UI 4
تمینگ بر پایه Design Tokens، کامپوننتهای SSR-friendly و API سازگار با Tailwind v4.
Tailwind 4
موتور جدید مبتنی بر CSS Variables، خروجی سبکتر و JIT سریعتر.
@nuxtjs/i18n 10 مسیرهای چندزبانه , lazy loading و مدیریت دقیق RTL/LTR.
@nuxt/image 1بهینهسازی خودکار تصاویر برای عملکرد بهتر.
@nuxtjs/color-mode 3حالت تاریک همگام در SSR و کلاینت.
تمرکز این نسخه روی performance، DX، و معماری ماژولار بوده
بعدها خیلی آپدیتهای دیگه براش میدم
یه بیس خوب برای پروژههای شخصی یا شرکتی روی Nuxt نسل جدید.
@DevTwitter | <Ali Arghyani/>
❤10👎5🔥3👍2
چرا Go تا این حد سریع است ؟ پشت پردهی کامپایل و Runtime
وقتی برای اولین بار دیدم برنامهی Go چقدر سریع اجرا میشه، کنجکاو شدم بدونم پشت داستان چیه
با توجه به مطالعه دایکیومنت های رسمی خود گو سعی کردم تمامی مباحثی که درک کردم به رو به ساده ترین شیوه ممکن براتون بنویسم و رفرنس ها رو هم در حد ممکن لابه لای بخش ها گذاشتم
لینک مقاله
@DevTwitter | <Erfan Yousefi/>
وقتی برای اولین بار دیدم برنامهی Go چقدر سریع اجرا میشه، کنجکاو شدم بدونم پشت داستان چیه
با توجه به مطالعه دایکیومنت های رسمی خود گو سعی کردم تمامی مباحثی که درک کردم به رو به ساده ترین شیوه ممکن براتون بنویسم و رفرنس ها رو هم در حد ممکن لابه لای بخش ها گذاشتم
لینک مقاله
@DevTwitter | <Erfan Yousefi/>
❤40👎12🔥4🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
یادگیری هر زبانی با هوش مصنوعیهای رایگان — واقعاً ممکنه!
دوره در یودمی منتشر شده؛ قیمت معمول ۲۰ دلار اما برای ۵ روز با کد MOSTAFA میتونید رایگان ثبتنام کنید:
https://udemy.com/course/learn-any-language-with-free-ai-chatgpt-copilot-gemini/?couponCode=MOSTAFA…
@DevTwitter | <Mostafa Shalchi/>
دوره در یودمی منتشر شده؛ قیمت معمول ۲۰ دلار اما برای ۵ روز با کد MOSTAFA میتونید رایگان ثبتنام کنید:
https://udemy.com/course/learn-any-language-with-free-ai-chatgpt-copilot-gemini/?couponCode=MOSTAFA…
@DevTwitter | <Mostafa Shalchi/>
👍15🍌13❤4👎3
This media is not supported in your browser
VIEW IN TELEGRAM
یه اسکریپت برای بررسی دامنههای سه حرفی
https://github.com/akinloluwami/domains-lookup
@DevTwitter | <Dev Twittir/>
https://github.com/akinloluwami/domains-lookup
@DevTwitter | <Dev Twittir/>
👎48👍16🍌11❤3
ازونجایی که جنریت شدن کامیت مسیج توی vscode باعث میشد زود تر به لیمیت بخورم تصمیم گرفتم یه برنامه کوچیک بنویسم که این مسئله رو با مدل لوکال (Ollama) حل کنم.
https://github.com/he0xA1/aimit
https://npmjs.com/package/aimit
فعلا یخورده باگ داره رفته رفته حلش میکنم.
@DevTwitter | <Mahan/>
https://github.com/he0xA1/aimit
https://npmjs.com/package/aimit
فعلا یخورده باگ داره رفته رفته حلش میکنم.
@DevTwitter | <Mahan/>
👍13👎5🔥2❤1
حملهها به FFmpeg رو درک نمیکنم. این پروژه تمام این سالها رایگان و اوپن سورس بوده و توسط داوطلبها توسعه داده شده. گوگل و باقی شرکتها به خاطر این پروژه کلی درآمد داشتن و بخش بزرگی از سرویسهای ویدیویی روی همین پروژه میچرخه.
خب همونقدر که زمان میذارید برای پیدا کردن مشکلات امنیتی، اگه اینقدر براتون مهمه خودتونم فیکس کنید.
@DevTwitter | <Farshad/>
خب همونقدر که زمان میذارید برای پیدا کردن مشکلات امنیتی، اگه اینقدر براتون مهمه خودتونم فیکس کنید.
@DevTwitter | <Farshad/>
👍75❤10👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی مایکروسافت یه فریمورک متنبازخیلی جالب داده به اسم Agent Lightning که میتونه هر نوع ایجنت هوش مصنوعی رو با یادگیری تقویتی (RL) آموزش بده!
با همه فریمورک ها هم کار میکنه: LangChain، AutoGen، CrewAI، OpenAI SDK یا حتی پایتون خام.
چطوری کار میکنه؟
ایجنتت مثل همیشه اجرا میشه. فقط یه تابع کوچیک ()agl.emit اضافه میکنید، یا اینکه میذارید tracer خودش همهچیو جمع کنه.
بعد Agent Lightning تمام پرامپتها، فراخوانی ابزارها و پاداشها/reward ها رو ضبط میکنه و بهصورت ساختاریافته ذخیره میکنه.
بعدش یه الگوریتم انتخاب میکنید (RL، بهینهسازی پرامپت، یا فاینتیون). دادهها رو میخونه، الگوها رو یاد میگیره و پرامپت یا policy بهتر تولید میکنه. ماجول Trainer تغییرات رو به ایجنت برمیگردونه، بدون اینکه نیاز باشه چیزی از نو بنویسید.
نکته باحالتر: حتی میتونید هر ایجنت رو توی یه سیستم multi agent جداگونه بهینه کنید.
Github: https://github.com/microsoft/agent-lightning
@DevTwitter | <Mehdi Allahyari/>
با همه فریمورک ها هم کار میکنه: LangChain، AutoGen، CrewAI، OpenAI SDK یا حتی پایتون خام.
چطوری کار میکنه؟
ایجنتت مثل همیشه اجرا میشه. فقط یه تابع کوچیک ()agl.emit اضافه میکنید، یا اینکه میذارید tracer خودش همهچیو جمع کنه.
بعد Agent Lightning تمام پرامپتها، فراخوانی ابزارها و پاداشها/reward ها رو ضبط میکنه و بهصورت ساختاریافته ذخیره میکنه.
بعدش یه الگوریتم انتخاب میکنید (RL، بهینهسازی پرامپت، یا فاینتیون). دادهها رو میخونه، الگوها رو یاد میگیره و پرامپت یا policy بهتر تولید میکنه. ماجول Trainer تغییرات رو به ایجنت برمیگردونه، بدون اینکه نیاز باشه چیزی از نو بنویسید.
نکته باحالتر: حتی میتونید هر ایجنت رو توی یه سیستم multi agent جداگونه بهینه کنید.
Github: https://github.com/microsoft/agent-lightning
@DevTwitter | <Mehdi Allahyari/>
❤23🔥2
چطور PHP-FPM سرعت و کارایی سایت شما رو بهبود میده؟
چند وقت پیش وقتی داشتم برای بهبود عملکرد سایتم جستجو میکردم، سر از PHP-FPM درآوردم. بعد از اینکه یه مدت ازش استفاده کردم، دوباره برگشتم سراغش. واقعاً متوجه شدم چقدر میتونه سرعت سایت رو بالا ببره! اگر شما هم از NGINX یا Apache استفاده میکنید، پیشنهاد میکنم حتما این ابزار رو بررسی کنید.
چطور PHP-FPM کمک میکنه؟
سرعت بیشتر، حتی با ترافیک زیاد: میتونید تعداد پروسههایی که برای اجرای PHP استفاده میکنید رو تنظیم کنید، و وقتی ترافیک زیاد میشه، سایتتون هنوز سریع باقی میمونه.
استفاده بهینه از منابع: دیگه لازم نیست برای هر درخواست یه پروسه جدید راه بندازید. این یعنی منابع به صورت بهینهتر مصرف میشن.
پشتیبانی از نسخههای مختلف PHP: اگه سایتهاتون به نسخههای مختلف PHP نیاز دارن، PHP-FPM این کار رو خیلی راحت میکنه.
و جالبتر اینکه توی مقالهای که خوندم، فهمیدم PHP-FPM از یک مدل به نام master-worker استفاده میکنه. این یعنی یه پروسه اصلی (master) وجود داره که کارها رو بین چندین پروسه کارگر (worker) تقسیم میکنه تا همزمان درخواستها رو پردازش کنن. این مدل باعث میشه منابع بهینهتر استفاده بشه و سایت شما با کارایی بیشتری بالا بیاد. خیلی جالبه که اینجوری PHP-FPM میتونه کارایی رو به شدت بالا ببره!
من خودم وقتی اینو دوباره راه انداختم، واقعا دیدم سایت خیلی سریعتر و بهینهتر شد.
اگر شما هم دنبال راهی برای سریعتر کردن سایتتون هستید، PHP-FPM رو حتما تست کنید.
لینک مربوط به مقاله:
https://dev.to/emrancu/how-php-fpm-works-a-deep-dive-into-fastcgi-process-management-194i
@DevTwitter | <Reza Fereydouni/>
چند وقت پیش وقتی داشتم برای بهبود عملکرد سایتم جستجو میکردم، سر از PHP-FPM درآوردم. بعد از اینکه یه مدت ازش استفاده کردم، دوباره برگشتم سراغش. واقعاً متوجه شدم چقدر میتونه سرعت سایت رو بالا ببره! اگر شما هم از NGINX یا Apache استفاده میکنید، پیشنهاد میکنم حتما این ابزار رو بررسی کنید.
چطور PHP-FPM کمک میکنه؟
سرعت بیشتر، حتی با ترافیک زیاد: میتونید تعداد پروسههایی که برای اجرای PHP استفاده میکنید رو تنظیم کنید، و وقتی ترافیک زیاد میشه، سایتتون هنوز سریع باقی میمونه.
استفاده بهینه از منابع: دیگه لازم نیست برای هر درخواست یه پروسه جدید راه بندازید. این یعنی منابع به صورت بهینهتر مصرف میشن.
پشتیبانی از نسخههای مختلف PHP: اگه سایتهاتون به نسخههای مختلف PHP نیاز دارن، PHP-FPM این کار رو خیلی راحت میکنه.
و جالبتر اینکه توی مقالهای که خوندم، فهمیدم PHP-FPM از یک مدل به نام master-worker استفاده میکنه. این یعنی یه پروسه اصلی (master) وجود داره که کارها رو بین چندین پروسه کارگر (worker) تقسیم میکنه تا همزمان درخواستها رو پردازش کنن. این مدل باعث میشه منابع بهینهتر استفاده بشه و سایت شما با کارایی بیشتری بالا بیاد. خیلی جالبه که اینجوری PHP-FPM میتونه کارایی رو به شدت بالا ببره!
من خودم وقتی اینو دوباره راه انداختم، واقعا دیدم سایت خیلی سریعتر و بهینهتر شد.
اگر شما هم دنبال راهی برای سریعتر کردن سایتتون هستید، PHP-FPM رو حتما تست کنید.
لینک مربوط به مقاله:
https://dev.to/emrancu/how-php-fpm-works-a-deep-dive-into-fastcgi-process-management-194i
@DevTwitter | <Reza Fereydouni/>
❤13👎4👍1🔥1
امروز یه مشکل عجیب تو پروژه Next.js داشتم که کلی وقت من رو گرفت.
داشتم روی یه صفحه جدید کار میکردم، اما هرچی وارد اون صفحه میشدم، هیچ چیزی لود نمیشد! فقط با رفرش کردن صفحه بود که محتوا نمایش داده میشد.
بعد از کلی سرچ و کمک گرفتن از هوش مصنوعی، بالاخره ریشه مشکل رو پیدا کردم.
مشکل چیه؟
وقتی در یک صفحه از Layout مخصوص و جداگانه استفاده میکنید، به هیچ عنوان نباید تگهای <html> و <body> رو در اون صفحه تکرار کنید.
چرا؟
چون این تگها به صورت سراسری و در Root Layout پروژه شما تعریف میشن.وقتی شما دوباره اونها رو در یک Layout یا صفحه داخلی استفاده کنید، با Layout اصلی تداخل پیدا کرده و باعث به هم ریختن ساختار DOM و مشکلات رندر شدن میشن.
نتیجه گیری:
این شاید یه نکته ساده و ابتدایی به نظر بیاد،ولی تاثیر مستقیم روی عملکرد و تجربه کاربری (UX) سایت میذاره. همیشه به ساختار سلسله مراتبی Layout ها در فریمورکهایی مثل Next.js دقت کنید!
@DevTwitter | <Mohammed Milad Ahmadi/>
داشتم روی یه صفحه جدید کار میکردم، اما هرچی وارد اون صفحه میشدم، هیچ چیزی لود نمیشد! فقط با رفرش کردن صفحه بود که محتوا نمایش داده میشد.
بعد از کلی سرچ و کمک گرفتن از هوش مصنوعی، بالاخره ریشه مشکل رو پیدا کردم.
مشکل چیه؟
وقتی در یک صفحه از Layout مخصوص و جداگانه استفاده میکنید، به هیچ عنوان نباید تگهای <html> و <body> رو در اون صفحه تکرار کنید.
چرا؟
چون این تگها به صورت سراسری و در Root Layout پروژه شما تعریف میشن.وقتی شما دوباره اونها رو در یک Layout یا صفحه داخلی استفاده کنید، با Layout اصلی تداخل پیدا کرده و باعث به هم ریختن ساختار DOM و مشکلات رندر شدن میشن.
نتیجه گیری:
این شاید یه نکته ساده و ابتدایی به نظر بیاد،ولی تاثیر مستقیم روی عملکرد و تجربه کاربری (UX) سایت میذاره. همیشه به ساختار سلسله مراتبی Layout ها در فریمورکهایی مثل Next.js دقت کنید!
@DevTwitter | <Mohammed Milad Ahmadi/>
🍌53👍25❤8🔥1