Panic Dev – Telegram
Panic Dev
1.11K subscribers
123 photos
29 videos
2 files
132 links
Panic Dev; your Panic's solution 🔥

🍿 Telegram
🔰 t.me/PanicDev

🍿 Laravel Community
🔰 t.me/LaravelGroups

😇 Contact Me
🔰 t.me/MentionHex

Thanks for sharing us 💛
Download Telegram
Panic Dev
۲. چرا فکر می‌کنید در این سطح قرار دارید؟ ۳. به نظرتون برای رسیدن به لول بعدی، بیشتر به کدوم مورد نیاز دارید؟ افزایش سابقه کار افزایش مهارت‌های فنی بهبود مهارت‌های مدیریتی و رهبری تیم تجربه در پروژه‌های بزرگ‌تر و چالش‌برانگیزتر یادگیری مهارت‌های…
یک مقاله ای داشتم میخوندم . نسبتا طولانی ولی ارزش خوندن داشت . من دوست داشتم ،‌😊

گفتم خلاصه ای رو با شما هم به اشتراک بزارم . کسی دوست داشت بره کاملشو بخونه


🧠 تفاوت اصلی بین برنامه‌نویس جونیور و سینیور

این مقاله گفت‌وگویی درونی بین «منِ جونیور» و «منِ سینیور» و تلاش می‌کنه به یک نکته عمیق اشاره کنه:

تفاوت اصلی بین برنامه‌نویس سینیور و جونیور توی طرز فکر، نه تعداد سال‌های تجربه.

🎯 خلاصه مهم‌ترین تفاوت‌های ذهنیت سینیورها:

۱. به‌جای فقط نوشتن کد، می‌پرسن: «آیا اصلاً لازمه اینو بنویسم؟»
جونیورها بلافاصله سراغ کدنویسی می‌رن.

سینیورها اول تحلیل می‌کنن، سؤال می‌پرسن و دید کلی پیدا می‌کنن.


۲. فقط باگ رو رفع نمی‌کنن، علت اصلی (Root Cause) رو پیدا می‌کنن.
سینیورها روی پیشگیری تمرکز دارن، نه فقط درمان.


۳. فقط کد درست نمی‌نویسن، کد قابل‌نگهداری و تمیز می‌نویسن.

به "قانون پیشاهنگ" پایبندن: «کد رو بهتر از قبل بذار.»


۴. به‌جای «من می‌تونم اینو حل کنم»، می‌پرسن: «چطور تیم می‌تونه اینو حل کنه؟»

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


۵. دنبال یادگیری تکنولوژی جدید نیستن، یاد گرفتنِ «روش یادگیری» رو بلدن.


روی اصول پایه تمرکز دارن، نه هر ترند جدید.


۶. منتظر اجازه نمی‌مونن، مسئولیت می‌پذیرن و اقدام می‌کنن.

طرز فکر «مالکیت کامل» دارن.


۷. سریع وارد کدنویسی نمی‌شن، اول تحلیل و طراحی می‌کنن.

طراحی قبل از ساخت، فهم قبل از کدنویسی.


۸. فقط تسک done نمیکنند ، اثرش روی کاربر و کسب‌وکار رو می‌سنجن.

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


۹. منتظر خراب شدن سیستم نمی‌مونن، از قبل مشکلات رو پیش‌بینی می‌کنن.

طراحی مقاوم، مانیتورینگ و تست خودکار بخش اصلی کارشونه

.

۱۰. کارهای تکراری رو دستی انجام نمی‌دن، اتومات می‌کنن و مستند می‌نویسن.

ابزار می‌سازن، اسناد تهیه می‌کنن، و زمان تیم رو حفظ می‌کنن.


📌 جمع‌بندی:

برنامه‌نویس سینیور کسیه که فقط کد نمی‌نویسه، بلکه دید استراتژیک داره، تیم رو رشد می‌ده، و برای آینده تصمیم می‌گیره.
هرکدوم از این تغییرات ذهنی، شما رو یک قدم به سینیور شدن نزدیک‌تر می‌کنه.

📖 اگر علاقه‌مند به خوندن متن کامل این مقاله هستید، پیشنهاد می‌کنم حتماً بخونید:

🔗 لینک مقاله کامل


@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
50👍19
یه سرویس Open-Source و سبک برای کپچا

🔗 https://capjs.js.org
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Panic Dev
یه سرویس Open-Source و سبک برای کپچا 🔗 https://capjs.js.org
اینم یه مدلشه 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣33👍1🔥1🕊1
تمام تسک‌های ورژن 4 فیلامنت done شدن

انتظار میره خیلی زود (شاید طی چند روز آینده) نسخه جدید فیلامنت ریلیز و قابل استفاده بشه 🔥

🔗 https://github.com/filamentphp/filament/milestone/3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍2
میخوایم کتاب
تست مامان

هدیه بدیم برای ۵ نفر 😊

به ۵ نفر اولی که اعلام حضور کنه

⚠️لطفا اگر میدونید موضوعش چی هست و علاقه به مطالعه دارید اعلام کنید .

(تمام شد)
Please open Telegram to view this post
VIEW IN TELEGRAM
ایشون آقای Deven هستن .
و این صفحه گیت هاب ایشون

همانجور که میبینید خودشون رو lead engineer و سنیور میدونند .
از صفحه گیت هاب و رزومه هم مشخصه که
استک و tools نمونده که شخم نزده باشه .

بعد ایشون یه مقاله نوشته به این صورت

Why I Regret Choosing Laravel for My Small-Scale High-Performance App

شما مقایسه رو ببینید تورو خدا .
یه سیستم SPA رو با چی و چه سطحی مقایسه میکنه .

بعد از معایب فیلامنت فرمودن

Becomes limiting for complex UI or logic
What might be a 5-min job in React can take hours in Filament



مثل آقا Deven نباشید .
🤣8🥱5👍2👎2
🔄 ردگیری وضعیت و پیشرفت صف‌ها در Laravel

اگه توی پروژه‌هات با Laravel کار می‌کنی، احتمال زیاد با صف‌ها (Queues) سروکار داشتی. صف‌ها کمک می‌کنن کارهای سنگین رو ببری پشت صحنه تا تجربه‌ی کاربر بهتر بشه.
اما فقط فرستادن job به صف کافی نیست — خیلی وقت‌ها لازمه بدونی اون job دقیقاً در چه مرحله‌ایه یا اینکه اصلاً تموم شده یا نه.

🧠 چرا ردگیری job مهمه؟

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

📦برای این کار Laravel Job Status پکیج کاربردی هست.
با نصب این پکیج، می‌تونی خیلی راحت وضعیت و درصد پیشرفت هر job رو ذخیره و مانیتور کنی.

🛠 مراحل استفاده:

نصب پکیج:
composer require imtigger/laravel-job-status


داخل کلاس job، از trait مخصوص استفاده کن:


use Imtigger\LaravelJobStatus\Trackable;

$this->prepareStatus(); // in __construct
$this->setProgressMax(10);
$this->setProgressNow($i);
$this->setOutput(['message' => 'Job completed']);


وقتی job رو dispatch می‌کنی، ID وضعیت رو ذخیره کن:



$job = new ExampleJob([]);
$this->dispatch($job);
$jobStatusId = $job->getJobStatusId();


وضعیت رو هر موقع خواستی از دیتابیس بخون:




$jobStatus = JobStatus::find($jobStatusId);
echo $jobStatus->progress_now . "/" . $jobStatus->progress_max;
echo $jobStatus->status; // مثل queued، executing، finished، failed


📌 نکته مهم:
اگه از YourJob::dispatch() استفاده کنی، دیگه نمی‌تونی job object رو بگیری! پس دستی job رو بساز و dispatch کن.


لینک مقاله

لینک گیتهاب

@panicdev
👍9❤‍🔥1
Panic Dev
Video
Media is too big
VIEW IN TELEGRAM
Technical / Code review
🔥7❤‍🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
دوستان این ریپازیتوری آپدیت شد

از اونجایی که سوال خیلی ها بود که چطور دیتا از سمت فرانت میفرستیم به بک و ذخیره میکنیم یا عملیاتی روش انجام میدید .

سناریو چهارم این ریپازیتوری دقیقا همین کارو میکنه .

دیتای ادیتور رو به صورت ریل تایم روی وب سوکت میفرسته و لاراول بلافاصله اون رو ذخیره میکنه . برای فیلد denoscription یک یوزر

کارهایی که توی این سناریو انجام شده میتونید داخل این PR مشاهده کنید .

Add user denoscription update functionality with MessageReceived event and editor component


@panicdev
1🔥5👍1
🚀 معرفی Laravel RagKit: دستیار هوشمند اسناد برای پروژه‌های لاراولی شما!

تا حالا دوست داشتید اپلیکیشن Laravel شما بتونه به‌صورت هوشمند به سوالات درباره مستندات پاسخ بده؟
با Laravel RagKit آشنا بشید — ابزار قدرتمند RAG (تولید تقویت‌شده با بازیابی) مخصوص لاراول!

🎯 مشکلاتی که حل می‌کنه:

* دیگه نیازی به جستجوی دستی توی اسناد نیست
* پاسخ‌های دقیق و وابسته به متن
* پردازش خودکار مستندات
* تعامل به سبک چت با اسناد شما

💡 مثال ساده:
فرض کنید یه SaaS دارید با مستندات زیاد. به جای اینکه کاربرها توی مستندات سردرگم بشن:

1️⃣ مستندات رو آپلود کنید:

RagKit::uploadDocument(
$collection,
'user-guide.pdf',
[
'category' => 'documentation',
]
);


2️⃣ اجازه بدید کاربرها سوال بپرسن:

$answer = RagKit::ask(
$collection,
"چطور رمز عبورم رو ریست کنم؟",
null,
[]
);


3️⃣ جواب‌های هوشمند همراه با منبع دریافت کنید! 🎉

🔥 ویژگی‌های مهم:
• پردازش Async
• پشتیبانی از چند ارائه‌دهنده
• گفت‌وگوهای چتی
• خلاصه‌سازی و FAQ اسناد
• یکپارچه با لاراول

⚙️ شروع سریع:

composer require mohaphez/laravel-ragkit


🔗 لینک پروژه:

laravel-ragkit

#Laravel #هوش_مصنوعی #RAG #PHP #مستندسازی

@panicdev
13🔥11👌3❤‍🔥1👍1😁1
خوب صحبت از Octane شد، گفتیم یه بررسی داشته باشیم تا در انتخاب استفاده ازش دقت لازم داشته باشید .


🚀 فرق بین Laravel یا Laravel Octane چیست ؟

باید گفت Laravel Octane یه نسخه جدا نیست، بلکه یه افزونه‌ست که روی Laravel اجرا می‌شه و مخصوص PHP 8 به بالاست.
هدفش فقط یه چیزه: سرعت! ⚡️

⚙️ مقایسه‌ی سرعت

در Laravel معمولی: حدود ۵۰۰ درخواست در ثانیه

در Laravel Octane: راحت بالای ۲۰۰۰ درخواست در ثانیه!
اونم با حداقل ۱۰ برابر عملکرد بهتر 🤯

🧠 چرا Octane اینقدر سریع‌تره؟
تو Laravel معمولی، هر درخواست باعث می‌شه PHP از اول همه چیزو لود کنه (بوت اپلیکیشن، سرویس‌ها، کانفیگ‌ها و...).
ولی تو Octane، همه اینا فقط یه بار لود می‌شن و بعدش تو حافظه می‌مونن، یعنی هر درخواست بعدی خیلی سریع‌تر انجام می‌شه!

💡 پس Octane باهوش‌تره و تکرارای اضافی رو حذف می‌کنه.

🌐 سرورهای Octane فرق دارن
خود Laravel معمولاً روی Apache یا Nginx با PHP-FPM اجرا می‌شه.
ولی Octane از Swoole یا RoadRunner به‌عنوان سرور استفاده می‌کنه و ترافیک باید به اینا هدایت بشه.

🧩فرق Stateful یا Stateless چیه؟
لاراول معمولی «Stateless»‌، یعنی هر درخواست جداست.
ولی Octane «نیمه-Stateful»‌، یعنی یه سری اطلاعات بین درخواست‌ها تو حافظه می‌مونه.

📌 مثال واقعی:
تو حالت Stateless، هر بار که صفحه‌ای باز می‌کنی، سرور بررسی می‌کنه که لاگین هستی یا نه.
تو حالت Stateful (مثل Octane)، سرور همون‌طور که وارد شدی، اطلاعاتت رو نگه می‌داره تا وقتی logout کنی!

🔧خوب Swoole یا RoadRunner؟ کدوم بهتره؟

میشه گفت Swoole سریع‌تره ولی باید روی PHP نصب بشه، با Xdebug و مانیتورینگ‌ها خوب کار نمی‌کنه.

درحالی که RoadRunner راحت‌تر نصب می‌شه و به تنظیم خاصی نیاز نداره، ولی کمی کندتر از Swoole‌.

🤔 بالاخره Octane رو استفاده کنیم یا نه؟
بله، اگه سایتت زیر بار سنگینه یا سرعتش اذیتت می‌کنه
نه، اگه با PHP 8 سازگار نیستی یا تیمت هنوز با مفاهیم stateful آشنا نیست

#Laravel #PHP #Octane

@panicdev
👍15🔥1
🚀خوب Laravel Octane واقعاً فوق‌العاده‌ست، اما...

همانطور که میدونید Laravel Octane به‌خاطر افزایش چشمگیر سرعت اپلیکیشن‌ها خیلی محبوب شده. چون حافظه‌ی اپ بین درخواست‌ها حفظ می‌شه، دیگه هر بار لازم نیست از اول بارگذاری بشه.
ولی همونطور که دوستمون @Mahdi_Saremi گفت باید ها و نباید ها دارد .
قبل از اینکه سریع بری سراغ استفاده ازش، باید یه‌سری نکات مهم رو بدونی تا سرت به سنگ نخوره! 🧠

👇 چند مورد از محدودیت‌ها و نکات مهم Octane رو باهم مرور کنیم:

🔁 1. برنامه دیگه Stateless نیست!

تو لاراول معمولی، هر درخواست از صفر اجرا می‌شه. ولی تو Octane همه چیز تو حافظه می‌مونه!
یعنی اگه تو یه درخواست یه متغیر مثل $user ست بشه و پاک نشه، ممکنه درخواست بعدی هم همون مقدار رو ببینه! 😱
حتماً از Octane::reset() یا tick/booting برای پاک‌سازی وضعیت استفاده کن.

🔌 2. همه پکیج‌ها با Octane سازگار نیستن!

یه‌سری پکیج‌ها مثل پکیج‌های سشن یا احراز هویت که به lifecycle معمولی PHP وابسته‌ان، ممکنه تو Octane درست کار نکنن.
قبل از استفاده از هر پکیجی، بررسی کن با Octane سازگاره یا نه. اگه ناسازگاره یا عوضش کن یا resetش کن.

🧠 3. نشت حافظه (Memory Leak)

چون پردازش‌ها طولانی‌ان، حافظه می‌تونه پر بشه و اپت کند یا حتی داون بشه!
با تنظیم max_requests بعد از یه تعداد خاصی درخواست، worker رو ری‌استارت کن. حواست به مصرف رم باشه.

📦 4. مناسب کارای طولانی نیست

بله Octane برای درخواست‌های سریع و زیاد ساخته شده. کارای سنگین مثل آپلود فایل یا پردازش تصویری رو می‌تونه قفل کنه.
این کارا رو بده به Queue یا jobهای پس‌زمینه.

🔀 5. محدودیت تو هم‌زمانی (Concurrency)
بسته به اینکه از Swoole یا RoadRunner استفاده می‌کنی، یه‌سری مشکلات خاص ممکنه پیش بیاد، مثل هم‌زمان نوشتن روی فایل.
از lock و عملیات اتمی استفاده کن. اپ رو قبل از دیپلوی حسابی تست کن.

🐞 6. دیباگ و تست کردن عجیب می‌شه!

دیگه مثل قبل نمی‌تونی راحت dd() بزنی و نتیجه بگیری. چون ممکنه state قبلی تو worker هنوز بمونه!
از ابزارهایی مثل Clockwork یا Laravel Debugbar استفاده کن. Log بگیر و از رویدادهای reset کمک بگیر.

🚀 7. تغییر تو دیپلوی و CI/CD

اگه بعد از دیپلوی workerها رو ری‌استارت نکنی، اپ ممکنه با کد یا تنظیمات قدیمی اجرا بشه!
از ابزارهایی مثل Envoyer استفاده کن. حتماً بعد از دیپلوی بزن:
php artisan octane:restart


⚠️ جمع‌بندی
خوب Octane واقعاً عالیه برای اپ‌هایی که درخواست زیاد و سریع دارن. ولی باید با دقت و آگاهی ازش استفاده کنی، چون اگه آماده نباشی، ممکنه بیشتر از اینکه کمک کنه، دردسر درست کنه.


اینم یه ریپازیتوری که best-practice های مربوط به اکتان رو اوردن

laravel-octane-best-practices

#Laravel #PHP #Octane

@panicdev
1👍19🔥2👌1
Live stream scheduled for
فردا ساعت ۸ شب؛ یک وبینار درمورد Text Embedding و وکتورایز کردن متن و ذخیره اون‌ها توی Vector Database ها خواهیم داشت و درنهایت وکتور دیتابیسمون رو به یک LLM متصل میکنیم تا کاربر بتونه با زبان طبیعی توی داده‌ها سرچ بزنه و به نتیجه برسه.

مثلا: "چه غدایی با گوشت، سیب زمینی و گوجه میتونم درست کنم؟" و سیستم بر اساس داده ها نزدیک ترین پیشنهادات رو به کاربر درقالب متن + لینک به رسپی ها بده
👍12👌5
Panic Dev
فردا ساعت ۸ شب؛ یک وبینار درمورد Text Embedding و وکتورایز کردن متن و ذخیره اون‌ها توی Vector Database ها خواهیم داشت و درنهایت وکتور دیتابیسمون رو به یک LLM متصل میکنیم تا کاربر بتونه با زبان طبیعی توی داده‌ها سرچ بزنه و به نتیجه برسه. مثلا: "چه غدایی با…
🔔 اساتیدی که قصد دارید امشب توی لایو تشریف بیارید - از اون‌جایی که قصد نداریم زیاد طولانیش کنیم یک‌سری توضیحات و مقدمات رو به صورت متنی براتون میزارم اما چون تعدادشون زیاده و با موضوع این کانال ارتباط چندانی نداره توی چنل شخصیم میزارمشون (به صورت Silent Broadcast) — فرض بر این‌هست که تمام این مطالب رو خونده باشید و بعد به لایو جوین بشید.

از اینجا مطالب رو دنبال کنید:
https://news.1rj.ru/str/ArminNotes/157

* کانال پابلیکه و نیاز نیست جوین بدید اگه علاقه‌ای ندارید — بعدا نگید تبلیغ میکنه :)))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥2🔥1
Panic Dev
🔔 اساتیدی که قصد دارید امشب توی لایو تشریف بیارید - از اون‌جایی که قصد نداریم زیاد طولانیش کنیم یک‌سری توضیحات و مقدمات رو به صورت متنی براتون میزارم اما چون تعدادشون زیاده و با موضوع این کانال ارتباط چندانی نداره توی چنل شخصیم میزارمشون (به صورت Silent Broadcast)…
توضیحات اولیه پس از ۳ ساعت تموم شد 😁

با احترام فراوان اگه قراره امشب تشریف بیارید توی لایو این موارد رو بخونید - من با این فرض که شما تمام مطالب رو خوندید و متوجه شدید صحبتارو پیش میبرم و دیگه چیزایی که الان تایپ کردم رو تکرار نمیکنم.

شروع:
t.me/ArminNotes/157
پایان:
t.me/ArminNotes/198

اگه موردی هم هست توی کامنت‌های همین پست یا به صورت ناشناس از لینک زیر ارسال کنید برام جواب میدم.

https://news.1rj.ru/str/BiChatBot?start=sc-ac97b074ad
👍3🔥2