CodeVerse | دنیای برنامه نویسان
843 subscribers
52 photos
62 links
💻 ترفند برنامه نویسی PHP & JavaScript
🚀 آموزش وردپرس
💡 ترفندهای کاربردی
🤖 هوش مصنوعی و تکنولوژی
👨‍💻آموزش • ترفند • پروژه

@ideveloperweb_z |ارتباط
Download Telegram
یک قابلیت کمتر شناخته‌شده Git که موقع بحران نجاتت میده.
فرض کن وسط توسعه یه ویژگی جدید هستی.

چند فایل رو تغییر دادی.

ناگهان یه باگ فوری از سمت مشتری گزارش میشه.

نمی‌خوای Commit ناقص بزنی، ولی نمی‌خوای تغییراتت هم از بین بره.

اینجاست که git stash وارد بازی میشه.
git stash

تمام تغییرات فعلی رو موقت کنار میذاره.

بعد از رفع باگ:
git stash pop

همه تغییراتت دقیقاً به همون حالت قبلی برمی‌گرده.

خیلی از برنامه‌نویس‌ها برای این شرایط یک Branch جدید می‌سازن یا Commit موقت می‌زنن، در حالی که stash دقیقاً برای همین سناریو طراحی شده.

اگر با Git زیاد کار می‌کنی، این دستور یکی از اون چیزهاییه که دیر یا زود به دادت می‌رسه.

@CodeVerse_dev
10
🚀 لاراول داخل مرورگر؟ آره، بدون نصب PHP!

تا چند سال پیش اگه می‌خواستی یه پروژه Laravel اجرا کنی، باید:

PHP نصب می‌کردی.
Composer نصب می‌کردی.
وب‌سرور راه می‌انداختی.

الان ابزاری مثل Liminal این داستان رو عوض کرده.

این پروژه با استفاده از WebAssembly، لاراول رو مستقیماً داخل مرورگر اجرا می‌کنه.

یعنی می‌تونی:

کد بنویسی.
خروجی رو همون لحظه ببینی.
دستورهای Artisan اجرا کنی.
حتی از AI داخلی برای کمک گرفتن استفاده کنی.

این ابزار هنوز جای محیط توسعه اصلی رو نمی‌گیره، ولی برای آموزش، تست سریع یا نمایش نمونه پروژه واقعاً جذابه.

🌐 آینده توسعه وب، هر روز بیشتر به سمت ابزارهایی می‌ره که بدون نصب و راه‌اندازی، فقط با باز کردن مرورگر آماده کارن.

@CodeVerse_dev
👍61
🚨 وقتی یک Queue از کار افتاد...

در یکی از پروژه‌های واقعی، ایمیل‌های کاربران ناگهان ارسال نمی‌شدند.

بررسی‌ها نشان داد:

فرایند Queue Worker متوقف شده بود، اما هیچ مانیتورینگی برای بررسی وضعیت آن وجود نداشت.

نتیجه:

📨 هزاران ایمیل در صف باقی ماندند.

راه‌حل حرفه‌ای:

مانیتورینگ Queue
ثبت Alert هنگام توقف Worker
راه‌اندازی مجدد خودکار سرویس
استفاده از ابزارهایی مثل Laravel Horizon برای مدیریت Queue

💡 همیشه فرض کن یک سرویس ممکن است از کار بیفتد و از قبل برای آن برنامه داشته باش.

@CodeVerse_dev
👍62
آینده مرورگرها داره عوض میشه...

🤯 مرورگرها دیگه فقط مرورگر نیستن!

تا چند وقت پیش مرورگر فقط یه ابزار برای باز کردن سایت بود.

الان؟

داره تبدیل میشه به یه دستیار برنامه‌نویس.

گوگل توی Chrome قابلیت‌هایی معرفی کرده که به کمک AI می‌تونی:

دلیل کند بودن سایت رو بپرسی.
پیشنهاد بهینه‌سازی بگیری.
گزارش Lighthouse رو با زبان ساده تحلیل کنی.
حتی بعضی از باگ‌ها رو سریع‌تر پیدا کنی.

یعنی به‌جای اینکه نیم ساعت بین تب‌های مختلف DevTools بچرخی، می‌تونی مستقیم از AI کمک بگیری.

این فقط یه قابلیت جذاب نیست؛ نشونه اینه که ابزارهای توسعه دارن به سمت Agentهای هوشمند حرکت می‌کنن.

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

@CodeVerse_dev
👍71
🎨 اگه هنوز برای Blur از عکس PNG استفاده می‌کنی، اینو بخون...

یکی از اشتباه‌های رایج توی طراحی سایت اینه که برای ساخت افکت‌های نور یا شیشه‌ای، یه PNG بزرگ روی صفحه می‌ذارن.

نتیجه؟

حجم بیشتر
لود کندتر
امتیاز پایین‌تر توی Core Web Vitals

به‌جاش از این قابلیت‌های CSS استفاده کن:

backdrop-filter
filter: blur()
radial-gradient

هم ظاهر مدرن‌تری می‌گیری، هم کنترل بیشتری روی افکت‌ها داری، هم لازم نیست چندین فایل گرافیکی اضافه لود کنی.

یه طراح سایت حرفه‌ای فقط ظاهر رو قشنگ نمی‌کنه؛ کاری می‌کنه همون ظاهر سریع هم لود بشه.

@CodeVerse_dev
9
🤯 چرا این کد خروجی false می‌دهد؟
NaN === NaN


خروجی:
false


بله... حتی NaN هم با خودش برابر نیست!
چطور بررسی کنیم؟
Number.isNaN(value) 

یا
Object.is(NaN, NaN)


که خروجی:
true 

💡 این رفتار بخشی از استاندارد JavaScript است و دانستن آن می‌تواند جلوی باگ‌های عجیب را بگیرد.

@CodeVerse_dev
7
وردپرس همیشه کند نیست؛ افزونه‌ها مقصرن.
وقتی سرعت یه سایت وردپرسی افت می‌کنه، اولین واکنش اکثر افراد اینه:


«سرور ضعیفه.»


در حالی که تو خیلی از پروژه‌ها، مشکل جای دیگه‌ست.

یه افزونه ممکنه فقط برای یک قابلیت کوچیک، این کارها رو انجام بده:



۱۵ فایل CSS لود کنه.


۱۰ فایل JavaScript اضافه کنه.


چندین درخواست AJAX بفرسته.


چند فونت و آیکون خارجی دانلود کنه.


در نهایت کاربر فقط یه دکمه ساده می‌بینه!

قبل از نصب هر افزونه از خودت بپرس:

آیا واقعاً ارزش داره برای این قابلیت، این همه فایل اضافه وارد سایت بشه؟

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

برنامه‌نویس حرفه‌ای کسی نیست که بیشترین افزونه رو نصب کنه؛ کسیه که وابستگی پروژه رو کمتر کنه.

💬 بزرگ‌ترین افزونه‌ای که تا حالا حذف کردی چی بوده؟

@CodeVerse_dev
4👍2
📂 چطور یک Codebase جدید را سریع و حرفه‌ای درک کنیم؟
ورود به یک پروژه جدید همیشه چالش‌برانگیز است، اما اگر بدانید از کجا شروع کنید، درک ساختار پروژه بسیار سریع‌تر می‌شود. این مقاله نکاتی کاربردی برای تحلیل و شناخت. Codebase پروژه‌های واقعی ارائه می‌دهد.

🚀 اگر روی پروژه‌های تیمی کار می‌کنی، این مقاله را از دست نده.


📎 Article

@CodeVerse_dev
8
🔥 این قابلیت CSS رو کمتر کسی استفاده می‌کنه، ولی کد رو تمیزتر می‌کنه.
اگر هنوز این شکلی کد می‌نویسی:

.card .title { ... }
.card .description { ... }
.card .button { ... }

وقتشه با :()is آشنا بشی.
.card :is(.title, .description, .button) {
    color: #fff;
}

مزیتش فقط کوتاه‌تر شدن کد نیست.

وقتی چند Selector ویژگی‌های مشترک دارن، :()is باعث میشه:

کد خواناتر باشه.
نگهداری CSS راحت‌تر بشه.
احتمال تکرار استایل کمتر بشه.

توی پروژه‌های بزرگ که صدها Selector داری، همین قابلیت‌های کوچیک تفاوت بزرگی ایجاد می‌کنن.

نکته مهم اینه که از :()is برای ساده‌تر کردن منطق استایل استفاده کن، نه اینکه همه Selectorها رو بی‌دلیل داخلش بریزی.

💬 تا حالا از :()is استفاده کردی یا هنوز همه Selectorها رو جدا می‌نویسی؟
9
هوش مصنوعی فقط برای تولید کد نیست؛ برای مستندسازی هم فوق‌العاده‌ست.

یکی از خسته‌کننده‌ترین کارهای هر پروژه، نوشتن Documentationـه.

اغلب تا آخر پروژه عقب می‌افته و بعد هم یا ناقص نوشته میشه یا اصلاً نوشته نمیشه.

یه روش ساده:

بعد از نوشتن هر ماژول، از هوش مصنوعی بخواه:

این فایل رو برای توسعه‌دهنده جدید توضیح بده.
اجرای این کلاس رو بنویس Flow.
برای این API مستند Markdown تولید کن.
برای این تابع JSDoc بنویس.

نتیجه؟

به جای اینکه مستندسازی رو آخر پروژه انجام بدی، هم‌زمان با توسعه پیش میره.

فقط یادت باشه خروجی AI رو بدون بررسی منتشر نکنی. مستندات هم مثل کد باید بازبینی بشن، چون ممکنه جزئیاتی رو اشتباه برداشت کرده باشه.

@CodeVerse_dev
12
اشتباهی که RAM سرور را نابود می‌کند!

فرض کن فقط می‌خواهی تعداد کاربران را بدانی:



$count = User::all()->count();

این کد:

تمام کاربران را از دیتابیس می‌خواند، سپس آن‌ها را می‌شمارد.

راه درست:



$count = User::count(); 

در این حالت، عملیات شمارش مستقیماً در دیتابیس انجام می‌شود.

نتیجه:

🚀 سرعت بیشتر
🚀 مصرف RAM کمتر
🚀اجرای Query بهینه‌تر

💡 هر عملی که دیتابیس بهتر انجام می‌دهد، به PHP نسپار.

@CodeVerse_dev
👍72
📰 ابزار ESLint رسماً از Flat Config به‌عنوان روش استاندارد پیکربندی استفاده می‌کند!

اول از همه، ESLint چیست؟

یکی از محبوب‌ترین ابزارهای جاوااسکریپت ESLint است که کدهای شما را بررسی می‌کند و مشکلات احتمالی را قبل از اجرا پیدا می‌کند.

با ESLint می‌توان:

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

---

اگر هنوز از فایل:

.eslintrc

استفاده می‌کنی، وقت مهاجرت رسیده است.

نسخه‌های جدید ESLint از Flat Config به‌عنوان روش استاندارد پیکربندی استفاده می‌کنند.

مزایای Flat Config:

پیکربندی ساده‌تر
عملکرد بهتر
انعطاف‌پذیری بیشتر
مناسب برای پروژه‌های مدرن JavaScript

💡 اگر پروژه جدیدی را شروع می‌کنی، بهتر است از همان ابتدا از Flat Config استفاده کنی.

@CodeVerse_dev
9
🚀 اگر دوست داری سرویس‌های خودت را بدون وابستگی به پلتفرم‌های گران Deploy کنی، Coolify را بشناس.

با Coolify می‌توانی به‌راحتی Deploy کنی:

Laravel
PHP
Node.js
Docker
PostgreSQL
Redis

چرا محبوب شده؟

🔹 متن‌باز (Open Source)
🔹 قابلیت Self-Hosting
🔹 رابط کاربری ساده
🔹 مناسب برای VPS شخصی

💡 اگر به دنبال جایگزینی برای سرویس‌های Deploy ابری هستی، Coolify ارزش بررسی دارد.

@CodeVerse_dev
👍62
🛠 اگر دنبال یک جایگزین سبک و سریع برای Postman هستی، Hoppscotch را امتحان کن.

ویژگی‌ها:

تست REST API
پشتیبانی از GraphQL
همینطور WebSocket
فرایند Server-Sent Events (SSE)
محیط ساده و سریع

چرا توسعه‌دهنده‌ها دوستش دارند؟

سبک‌تر از بسیاری از ابزارهای مشابه
🌐 نسخه وب و نسخه دسکتاپ
🤝 مناسب برای همکاری تیمی

💡 برای تست سریع API، یکی از بهترین گزینه‌هاست.

@CodeVerse_dev
7
یه اشتباه کوچیک که چند ساعت از وقتم رو گرفت!

چند سال پیش داشتم روی یه پروژه PHP کار می‌کردم.

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

آخرش فهمیدم مشکل فقط یه فاصله و یه اسم متغیر اشتباه بوده! 😅

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

قبل از اینکه کد جدید بنویسم، اول لاگ‌ها رو چک می‌کنم.
بعد با Debug قدم‌به‌قدم جلو میرم.
آخر سر تازه سراغ تغییر کد میرم.

باور کنین خیلی وقت‌ها مشکل اون چیزی نیست که فکر می‌کنیم.

💬 شما آخرین باری که یه باگ الکی اذیتتون کرد، چی بود؟

📢 @CodeVerse_dev
7
زِ برنامه نویسان عالم هرکه را دیدم باگی دارد🥲
💔6😁3😢1
یه اشتباه که PageSpeed سایتت رو نابود می‌کنه!

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

۱۰ تا فونت مختلف لود می‌کنن!

مثلاً:

Light
Regular
Medium
SemiBold
Bold
ExtraBold

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

هر وزن اضافه یعنی:

📥 درخواست بیشتر
زمان لود بیشتر
📉 امتیاز پایین‌تر توی Lighthouse

اگه فونت فارسی استفاده می‌کنی، فقط وزن‌هایی که واقعاً داخل سایت استفاده شدن رو نگه دار.

با همین تغییر ساده، گاهی چند صد کیلوبایت از حجم صفحه کم میشه.

💡 بهینه‌سازی یعنی حذف چیزهایی که لازم نیست، نه فقط نصب افزونه‌های بیشتر.

@CodeVerse_dev
👍62👏1
🤯 چرا ()empty ممکن است تو را گول بزند؟

کد زیر را ببین:

$value = "0";

if (empty($value)) {
echo "Empty!";
}

خروجی:

Empty!

اما مگر "0" مقدار ندارد؟

دلیلش این است که ()empty در PHP مقادیر زیر را هم خالی در نظر می‌گیرد:

* ""
* 0
* "0"
* false
* null
* []

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

💡 استفاده نادرست از ()empty یکی از دلایل رایج باگ در فرم‌ها و APIهاست.

@CodeVerse_dev
7
🚨 وقتی یک Index فراموش شد...

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

ستون user_id هیچ Indexی نداشت.
نتیجه:

هر جستجو باید کل جدول را بررسی می‌کرد.

بعد از اضافه کردن Index:

🚀 زمان اجرای بعضی Queryها از چند ثانیه به چند میلی‌ثانیه کاهش پیدا کرد.

💡قبل از ارتقای سخت‌افزار، همیشه Queryها و Indexهای دیتابیس را بررسی کن.

@CodeVerse_dev
6👏3
🛠 ابزار Ray چیست؟

یک ابزار Debug برای توسعه‌دهندگان PHP و Laravel است که اطلاعات برنامه را در یک پنجره جداگانه نمایش می‌دهد.

به جای:

dd($user);

می‌توانی بنویسی:

ray($user);

و بدون متوقف شدن اجرای برنامه، اطلاعات را مشاهده کنی.

مزایا:

انجام Debug سریع‌تر
مشاهده Queryها
نمایش Exceptionها
بررسی Collectionها و Modelها

💡 اگر هر روز با Laravel کار می‌کنی، Ray می‌تواند جایگزین بسیار خوبی برای ()dd باشد.

@CodeVerse_dev
7
🚀 اگر هنوز از npm install استفاده می‌کنی، این تفاوت رو باید بدونی.

خیلی از برنامه‌نویس‌ها بدون فکر این دستور رو اجرا می‌کنن:
npm install

اما وقتی روی یک پروژه تیمی کار می‌کنی یا داخل CI/CD هستی، گزینه بهتری وجود داره:
npm ci

تفاوتش چیه؟
npm install

اگر package-lock.json با package.json فرق داشته باشه، ممکنه فایل Lock رو تغییر بده.
نسخه‌های جدیدتری از بعضی پکیج‌ها نصب بشن.

اما npm ci

دقیقاً همون نسخه‌هایی که داخل package-lock.json ثبت شدن رو نصب می‌کنه.
سریع‌تره، چون برای محیط‌های CI/CD بهینه شده.
هیچ تغییری داخل Lock File ایجاد نمی‌کنه.

اگر هدفت تکرارپذیری (Reproducibility) باشه، npm ci انتخاب بهتریه.

به همین دلیله که اکثر Pipelineهای حرفه‌ای از npm ci استفاده می‌کنن، نه npm install.

@CodeVerse_dev
👍8