اگر فونت سایتت ۵۰۰ کیلوبایت حجم داره، مشکل از طراحی نیست؛ از انتخابته.
خیلی از سایتها این اشتباه رو دارن:
یک فونت فارسی با همه وزنها دانلود میکنن.
Thin
Light
Regular
Medium
SemiBold
Bold
ExtraBold
Black
در حالی که تو کل سایت فقط از Regular و Bold استفاده شده!
نتیجه؟
❌ درخواستهای بیشتر
❌ضعیف ترشدن LCP
❌ مصرف اینترنت بیشتر کاربر
اگر فقط دو وزن استفاده میکنی، فقط همون دو وزن رو لود کن.
برای خیلی از سایتها، همین تغییر ساده چند صد کیلوبایت از حجم اولیه صفحه کم میکنه.
بهینهسازی همیشه به معنی فشرده کردن عکس نیست؛ گاهی یعنی چیزهایی که لازم نداری رو اصلاً دانلود نکنی.
@CodeVerse_dev
خیلی از سایتها این اشتباه رو دارن:
یک فونت فارسی با همه وزنها دانلود میکنن.
Thin
Light
Regular
Medium
SemiBold
Bold
ExtraBold
Black
در حالی که تو کل سایت فقط از Regular و Bold استفاده شده!
نتیجه؟
❌ درخواستهای بیشتر
❌ضعیف ترشدن LCP
❌ مصرف اینترنت بیشتر کاربر
اگر فقط دو وزن استفاده میکنی، فقط همون دو وزن رو لود کن.
برای خیلی از سایتها، همین تغییر ساده چند صد کیلوبایت از حجم اولیه صفحه کم میکنه.
بهینهسازی همیشه به معنی فشرده کردن عکس نیست؛ گاهی یعنی چیزهایی که لازم نداری رو اصلاً دانلود نکنی.
@CodeVerse_dev
👍6❤2
از AI نخواه کدت رو بنویسه؛ ازش بخواه کدت رو خراب کنه!
شاید عجیب به نظر برسه، ولی یکی از بهترین Promptهایی که میتونی استفاده کنی اینه:
«فرض کن مهاجم هستی. سعی کن این کد رو دور بزنی.»
یا:
«اگر قرار بود این API رو Fail کنی، از کجا شروع میکردی؟»
یا:
«بدترین سناریوی ممکن برای این تابع چیه؟»
به این روش میگن تفکر معکوس.
به جای اینکه فقط دنبال راهحل باشی، دنبال پیدا کردن نقطهضعفها میگردی.
خیلی از باگهای امنیتی و منطقی دقیقاً با همین نوع سؤالها پیدا میشن.
هوش مصنوعی فقط برای ساختن نیست؛ گاهی بهترین کاربردش اینه که قبل از کاربران واقعی، منتقد پروژهت باشه.
@CodeVerse_dev
شاید عجیب به نظر برسه، ولی یکی از بهترین Promptهایی که میتونی استفاده کنی اینه:
«فرض کن مهاجم هستی. سعی کن این کد رو دور بزنی.»
یا:
«اگر قرار بود این API رو Fail کنی، از کجا شروع میکردی؟»
یا:
«بدترین سناریوی ممکن برای این تابع چیه؟»
به این روش میگن تفکر معکوس.
به جای اینکه فقط دنبال راهحل باشی، دنبال پیدا کردن نقطهضعفها میگردی.
خیلی از باگهای امنیتی و منطقی دقیقاً با همین نوع سؤالها پیدا میشن.
هوش مصنوعی فقط برای ساختن نیست؛ گاهی بهترین کاربردش اینه که قبل از کاربران واقعی، منتقد پروژهت باشه.
@CodeVerse_dev
❤10👍3
🏠 چرا هر برنامهنویسی باید Self-Hosting را تجربه کند؟
مبحث Self-Hosting فقط راهاندازی یک سرور نیست؛ بلکه فرصتی است برای یادگیری عمیق مفاهیمی مثل Docker، Linux، DNS، Reverse Proxy، امنیت و DevOps. این مقاله توضیح میدهد که چرا تجربه میزبانی سرویسهای خودتان میتواند شما را به توسعهدهندهای حرفهایتر تبدیل کند.
🚀 اگر میخواهی درک بهتری از زیرساخت و دنیای Backend داشته باشی، این مقاله را از دست نده.
📎 Article
@CodeVerse_dev
مبحث Self-Hosting فقط راهاندازی یک سرور نیست؛ بلکه فرصتی است برای یادگیری عمیق مفاهیمی مثل Docker، Linux، DNS، Reverse Proxy، امنیت و DevOps. این مقاله توضیح میدهد که چرا تجربه میزبانی سرویسهای خودتان میتواند شما را به توسعهدهندهای حرفهایتر تبدیل کند.
🚀 اگر میخواهی درک بهتری از زیرساخت و دنیای Backend داشته باشی، این مقاله را از دست نده.
📎 Article
@CodeVerse_dev
👍10❤1
📰 پکیج pnpm چیست و چرا محبوبتر شده است؟
اگر با JavaScript کار میکنی، احتمالاً اسم pnpm را شنیدهای.
اول از همه pnpm چیست؟
ابزار pnpm یک Package Manager برای JavaScript است؛ درست مثل npm، اما با روشی متفاوت برای مدیریت پکیجها.
چرا توسعهدهندهها به آن مهاجرت میکنند؟
✅ نصب سریعتر پروژهها
✅ مصرف کمتر فضای دیسک
✅ مدیریت بهتر وابستگیها
✅ مناسب برای Monorepoها
💡 اگر پروژههای JavaScript بزرگی داری، بد نیست یک بار pnpm را امتحان کنی و تفاوت سرعت آن را ببینی.
@CodeVerse_dev
اگر با JavaScript کار میکنی، احتمالاً اسم pnpm را شنیدهای.
اول از همه pnpm چیست؟
ابزار pnpm یک Package Manager برای JavaScript است؛ درست مثل npm، اما با روشی متفاوت برای مدیریت پکیجها.
چرا توسعهدهندهها به آن مهاجرت میکنند؟
✅ نصب سریعتر پروژهها
✅ مصرف کمتر فضای دیسک
✅ مدیریت بهتر وابستگیها
✅ مناسب برای Monorepoها
💡 اگر پروژههای JavaScript بزرگی داری، بد نیست یک بار pnpm را امتحان کنی و تفاوت سرعت آن را ببینی.
@CodeVerse_dev
❤7
🤯 چرا این شرط همیشه درست است؟
مشکل کجاست؟
اگر کلمه PHP از ابتدای رشته شروع شود، خروجی ()
و در PHP:
در نتیجه شرط اجرا نمیشود؛ با اینکه مقدار پیدا شده است!
راه درست:
💡 این یکی از قدیمیترین و رایجترین باگهای PHP است که هنوز هم در پروژهها دیده میشود.
@CodeVerse_dev
if (strpos($text, "PHP")) {
// Found
}مشکل کجاست؟
اگر کلمه PHP از ابتدای رشته شروع شود، خروجی ()
strpos برابر با 0 خواهد بود.و در PHP:
0 == false
در نتیجه شرط اجرا نمیشود؛ با اینکه مقدار پیدا شده است!
راه درست:
if (strpos($text, "PHP") !== false) {
// Found
}💡 این یکی از قدیمیترین و رایجترین باگهای PHP است که هنوز هم در پروژهها دیده میشود.
@CodeVerse_dev
👍7❤1
CodeVerse | دنیای برنامه نویسان
یکم دور از همه چی(کد زنی،پروژه،شرکت😆)
البته برنامه نویس تو مسافرت هم، لپتاپش کنارشه🥲🙃
😢7💔2❤1🔥1
🛠 ابزار Rector چیست؟
ابزاری برای بازنویسی و ارتقای خودکار کدهای PHP است.
مثلاً میتواند:
✅ کدهای قدیمی PHP را به نسخههای جدید تبدیل کند.
✅ بعضی Refactorها را بهصورت خودکار انجام دهد.
✅ پروژه را برای مهاجرت به نسخههای جدید PHP آماده کند.
نصب:
💡 اگر قصد ارتقای یک پروژه قدیمی را داری، Rector میتواند ساعتها در زمانت صرفهجویی کند.
@CodeVerse_dev
ابزاری برای بازنویسی و ارتقای خودکار کدهای PHP است.
مثلاً میتواند:
✅ کدهای قدیمی PHP را به نسخههای جدید تبدیل کند.
✅ بعضی Refactorها را بهصورت خودکار انجام دهد.
✅ پروژه را برای مهاجرت به نسخههای جدید PHP آماده کند.
نصب:
composer require rector/rector --dev
💡 اگر قصد ارتقای یک پروژه قدیمی را داری، Rector میتواند ساعتها در زمانت صرفهجویی کند.
@CodeVerse_dev
❤7
📰ابزار PHPStan چیست و چرا اینقدر محبوب شده است؟
اگر با PHP کار میکنی، احتمالاً اسم PHPStan را شنیدهای.
حالا PHPStan چیست؟
یک ابزار Static Analysis است؛ یعنی بدون اجرای برنامه، کدهای PHP را بررسی میکند و خطاهای احتمالی را پیدا میکند.
مثلاً میتواند این موارد را تشخیص دهد:
✅ فراخوانی متدهایی که وجود ندارند.
✅ نوع داده اشتباه (Type Error).
✅ متغیرهای استفادهنشده.
✅ خطاهایی که شاید فقط در زمان اجرا متوجه آنها شوی.
چرا مهم است؟
بسیاری از تیمهای حرفهای، قبل از هر Commit یا Deploy، PHPStan را اجرا میکنند تا بخشی از خطاها قبل از رسیدن به Production پیدا شوند.
💡 هرچه سطح (Level) PHPStan را بالاتر ببری، بررسیهای دقیقتری روی کدت انجام میدهد.
@CodeVerse_dev
اگر با PHP کار میکنی، احتمالاً اسم PHPStan را شنیدهای.
حالا PHPStan چیست؟
یک ابزار Static Analysis است؛ یعنی بدون اجرای برنامه، کدهای PHP را بررسی میکند و خطاهای احتمالی را پیدا میکند.
مثلاً میتواند این موارد را تشخیص دهد:
✅ فراخوانی متدهایی که وجود ندارند.
✅ نوع داده اشتباه (Type Error).
✅ متغیرهای استفادهنشده.
✅ خطاهایی که شاید فقط در زمان اجرا متوجه آنها شوی.
چرا مهم است؟
بسیاری از تیمهای حرفهای، قبل از هر Commit یا Deploy، PHPStan را اجرا میکنند تا بخشی از خطاها قبل از رسیدن به Production پیدا شوند.
💡 هرچه سطح (Level) PHPStan را بالاتر ببری، بررسیهای دقیقتری روی کدت انجام میدهد.
@CodeVerse_dev
👍6❤1
🧠 آیا Cache همه مشکلات سرعت را حل میکند!"**
❌ باور اشتباه:
«اگر Redis اضافه کنم، پروژهام سریع میشود.»
✅ واقعیت:
انجام Cache فقط زمانی مؤثر است که گلوگاه (Bottleneck) را درست شناسایی کرده باشی.
اگر مشکل پروژه اینها باشد:
* غیربهینه بودن Queryها
*همینطور N+1 Query
* نبود Index
* الگوریتم ضعیف
* پردازشهای سنگین
اضافه کردن Cache ممکن است تأثیر کمی داشته باشد یا حتی پیچیدگی سیستم را بیشتر کند.
💡 اول اندازهگیری کن، بعد Cache اضافه کن.
@CodeVerse_dev
❌ باور اشتباه:
«اگر Redis اضافه کنم، پروژهام سریع میشود.»
✅ واقعیت:
انجام Cache فقط زمانی مؤثر است که گلوگاه (Bottleneck) را درست شناسایی کرده باشی.
اگر مشکل پروژه اینها باشد:
* غیربهینه بودن Queryها
*همینطور N+1 Query
* نبود Index
* الگوریتم ضعیف
* پردازشهای سنگین
اضافه کردن Cache ممکن است تأثیر کمی داشته باشد یا حتی پیچیدگی سیستم را بیشتر کند.
💡 اول اندازهگیری کن، بعد Cache اضافه کن.
@CodeVerse_dev
❤6👍3
🚀 میدونستید داخل JavaScript میتوانید از Optional Chaining استفاده کنید؟
به جای اینکه چندین بار مقدار یک شیء را بررسی کنید:
فقط کافی است بنویسید:
✅ کد خواناتر میشود.
✅ احتمال خطا کمتر میشود.
✅ نگهداری پروژه راحتتر خواهد بود.
اگر هنوز از این قابلیت استفاده نمیکنید، وقتش رسیده آن را به کدهای خود اضافه کنید.
@CodeVerse_dev
به جای اینکه چندین بار مقدار یک شیء را بررسی کنید:
if(user && user.profile && user.profile.name){
console.log(user.profile.name);
}فقط کافی است بنویسید:
console.log(user?.profile?.name);
✅ کد خواناتر میشود.
✅ احتمال خطا کمتر میشود.
✅ نگهداری پروژه راحتتر خواهد بود.
اگر هنوز از این قابلیت استفاده نمیکنید، وقتش رسیده آن را به کدهای خود اضافه کنید.
@CodeVerse_dev
👍9❤2
🔥 یک دستور Git که هر برنامهنویسی باید بلد باشد
اگر میخواهید بفهمید چه کسی یک خط از کد را تغییر داده، از دستور زیر استفاده کنید:
این دستور به شما نشان میدهد:
✅ چه کسی کد را نوشته است.
✅ چه زمانی تغییر کرده است.
✅ آخرین Commit مربوط به آن چیست.
این قابلیت برای پیدا کردن دلیل تغییرات یا رفع باگها فوقالعاده کاربردی است.
💡ابزار Git فقط برای Commit گرفتن نیست؛ یک ابزار قدرتمند برای مدیریت تاریخچه پروژه است.
@CodeVerse_dev
اگر میخواهید بفهمید چه کسی یک خط از کد را تغییر داده، از دستور زیر استفاده کنید:
git blame filename.js
این دستور به شما نشان میدهد:
✅ چه کسی کد را نوشته است.
✅ چه زمانی تغییر کرده است.
✅ آخرین Commit مربوط به آن چیست.
این قابلیت برای پیدا کردن دلیل تغییرات یا رفع باگها فوقالعاده کاربردی است.
💡ابزار Git فقط برای Commit گرفتن نیست؛ یک ابزار قدرتمند برای مدیریت تاریخچه پروژه است.
@CodeVerse_dev
👍7❤2
🌍 میدونستید اولین وبسایت دنیا که توسط «تیم برنرز لی» ساخته شد، هنوز هم در دسترس است!
این سایت برای معرفی پروژه World Wide Web ایجاد شده بود و طراحی آن فقط شامل متن و لینک بود؛ بدون CSS، بدون JavaScript و بدون تصاویر.
جالب است بدانید چیزی که امروز میلیاردها وبسایت بر پایه آن ساخته شدهاند، از یک صفحه بسیار ساده شروع شد.
💭 گاهی بزرگترین فناوریهای دنیا، با سادهترین ایدهها آغاز میشوند.
@CodeVerse_dev
این سایت برای معرفی پروژه World Wide Web ایجاد شده بود و طراحی آن فقط شامل متن و لینک بود؛ بدون CSS، بدون JavaScript و بدون تصاویر.
جالب است بدانید چیزی که امروز میلیاردها وبسایت بر پایه آن ساخته شدهاند، از یک صفحه بسیار ساده شروع شد.
💭 گاهی بزرگترین فناوریهای دنیا، با سادهترین ایدهها آغاز میشوند.
@CodeVerse_dev
👍7❤2
یه عادت کوچیک که باعث شد بیشتر یاد بگیرم
قبلاً هر آموزش یا مقالهای که میدیدم، فقط تا آخرش میخوندم و میبستم.
چند روز بعد هم تقریباً نصفش یادم رفته بود.
الان روش کارم فرق کرده.
هر وقت نکته جدیدی یاد میگیرم، همون لحظه یه پروژه کوچیک براش میسازم؛ حتی اگه فقط ۱۰ دقیقه طول بکشه.
همین باعث شده مطالب خیلی بهتر توی ذهنم بمونن.
فقط خوندن، مهارت نمیسازه.
وقتی واقعاً چیزی رو یاد میگیری که خودت باهاش یه چیزی بسازی؛ حتی یه پروژه خیلی کوچیک.
📢 @CodeVerse_dev
قبلاً هر آموزش یا مقالهای که میدیدم، فقط تا آخرش میخوندم و میبستم.
چند روز بعد هم تقریباً نصفش یادم رفته بود.
الان روش کارم فرق کرده.
هر وقت نکته جدیدی یاد میگیرم، همون لحظه یه پروژه کوچیک براش میسازم؛ حتی اگه فقط ۱۰ دقیقه طول بکشه.
همین باعث شده مطالب خیلی بهتر توی ذهنم بمونن.
فقط خوندن، مهارت نمیسازه.
وقتی واقعاً چیزی رو یاد میگیری که خودت باهاش یه چیزی بسازی؛ حتی یه پروژه خیلی کوچیک.
📢 @CodeVerse_dev
👍11❤3
📌 تلگرام فقط یک پیامرسان نیست!
اگر برنامهنویس یا طراح سایت هستید، تلگرام میتواند یکی از بهترین ابزارهای شما برای خودکارسازی کارها باشد.
با استفاده از Telegram Bot API میتوانید:
✅ ربات پشتیبانی ۲۴ ساعته بسازید.
✅ سفارشهای سایت را بهصورت لحظهای دریافت کنید.
✅ پیام خوشامدگویی و پاسخهای خودکار ارسال کنید.
✅ کاربران را از ثبت سفارش، پرداخت یا تغییر وضعیت سفارش مطلع کنید.
✅ فرمها و اطلاعات را مستقیماً داخل تلگرام مدیریت کنید.
استفاده از ربات تلگرام باعث صرفهجویی در زمان، افزایش سرعت پاسخگویی و بهبود تجربه کاربران میشود.
@CodeVerse_dev
اگر برنامهنویس یا طراح سایت هستید، تلگرام میتواند یکی از بهترین ابزارهای شما برای خودکارسازی کارها باشد.
با استفاده از Telegram Bot API میتوانید:
✅ ربات پشتیبانی ۲۴ ساعته بسازید.
✅ سفارشهای سایت را بهصورت لحظهای دریافت کنید.
✅ پیام خوشامدگویی و پاسخهای خودکار ارسال کنید.
✅ کاربران را از ثبت سفارش، پرداخت یا تغییر وضعیت سفارش مطلع کنید.
✅ فرمها و اطلاعات را مستقیماً داخل تلگرام مدیریت کنید.
استفاده از ربات تلگرام باعث صرفهجویی در زمان، افزایش سرعت پاسخگویی و بهبود تجربه کاربران میشود.
@CodeVerse_dev
👍9❤1
⚡هر درخواست HTTP که حذف کنی، از فشردهسازی فایلها ارزشمندتره.
وقتی حرف از بهینهسازی میشه، همه سریع میرن سراغ:
Minify
Gzip
Brotli
اینها عالی هستن، ولی یه سؤال مهم:
چند درخواست HTTP غیرضروری داری؟
فرض کن:
۱۲ فایل CSS
۱۸ فایل JavaScript
۷ فونت
۵ آیکون SVG جداگانه
حتی اگر همه این فایلها فشرده باشن، مرورگر هنوز باید برای هر کدوم درخواست جدا بفرسته.
قبل از اینکه حجم فایلها رو کم کنی، ببین اصلاً میشه بعضی از اونها رو حذف کرد یا نه.
بهینهترین فایل، فایلیه که اصلاً دانلود نشه
@CodeVerse_dev
وقتی حرف از بهینهسازی میشه، همه سریع میرن سراغ:
Minify
Gzip
Brotli
اینها عالی هستن، ولی یه سؤال مهم:
چند درخواست HTTP غیرضروری داری؟
فرض کن:
۱۲ فایل CSS
۱۸ فایل JavaScript
۷ فونت
۵ آیکون SVG جداگانه
حتی اگر همه این فایلها فشرده باشن، مرورگر هنوز باید برای هر کدوم درخواست جدا بفرسته.
قبل از اینکه حجم فایلها رو کم کنی، ببین اصلاً میشه بعضی از اونها رو حذف کرد یا نه.
بهینهترین فایل، فایلیه که اصلاً دانلود نشه
@CodeVerse_dev
👍8❤1
🔥 اگه هنوز git stash رو فقط برای مخفی کردن تغییرات استفاده میکنی، نصف قابلیتهاش رو از دست دادی!
فرض کن وسط یه فیچر مهمی، ناگهان باید یه باگ فوری رو رفع کنی.
خیلیها این کارها رو میکنن:
❌ یه کامیت الکی میزنن.
❌ فایلها رو کپی میکنن.
❌ یا حتی تغییراتشون رو پاک میکنن!
در حالی که Git از قبل این مشکل رو حل کرده.
چند دستور کاربردی:
برای ذخیره تغییرات با اسم مشخص.
لیست تغییرات ذخیرهشده:
برگردوندن همون تغییرات:
💡 هرچه پروژه بزرگتر باشه، استفاده درست از stash بیشتر به کارت میاد.
فرض کن وسط یه فیچر مهمی، ناگهان باید یه باگ فوری رو رفع کنی.
خیلیها این کارها رو میکنن:
❌ یه کامیت الکی میزنن.
❌ فایلها رو کپی میکنن.
❌ یا حتی تغییراتشون رو پاک میکنن!
در حالی که Git از قبل این مشکل رو حل کرده.
چند دستور کاربردی:
git stash push -m "Login Feature"
برای ذخیره تغییرات با اسم مشخص.
لیست تغییرات ذخیرهشده:
git stash list
برگردوندن همون تغییرات:
git stash pop
💡 هرچه پروژه بزرگتر باشه، استفاده درست از stash بیشتر به کارت میاد.
👍7❤1
CodeVerse | دنیای برنامه نویسان
🔥 اگه هنوز git stash رو فقط برای مخفی کردن تغییرات استفاده میکنی، نصف قابلیتهاش رو از دست دادی! فرض کن وسط یه فیچر مهمی، ناگهان باید یه باگ فوری رو رفع کنی. خیلیها این کارها رو میکنن: ❌ یه کامیت الکی میزنن. ❌ فایلها رو کپی میکنن. ❌ یا حتی تغییراتشون…
اگه همزمان روی چند تسک کار میکنی، همیشه برای Stash اسم بذار. بعد از چند روز دیگه لازم نیست حدس بزنی هر کدوم مربوط به چی بوده.
❤8
🤖 یه ابزار AI که قبل از Merge شدن کد، باگها رو بو میکشه!
فرض کن Pull Request ساختی و هنوز کسی Review نکرده.
ابزارهای جدید AI میتونن قبل از همتیمیهات این موارد رو بررسی کنن:
✅ احتمال ایجاد Bug
✅ مشکلات امنیتی
✅ کدهای تکراری
✅ بخشهایی که خوانایی پایینی دارن
✅ پیشنهاد برای Refactor
نکته مهم اینه که این ابزارها جای برنامهنویس رو نمیگیرن؛ فقط باعث میشن زمان Code Review کمتر بشه و باگهای ساده زودتر پیدا بشن.
به نظر میرسه در آینده نزدیک، داشتن یک AI Reviewer کنار GitHub یا GitLab به اندازه داشتن Linter عادی بشه.
💡 برنامهنویسهای حرفهای فقط سریع کد نمیزنن؛ سریعتر هم اشتباهاتشون رو پیدا میکنن.
@CodeVerse_dev
فرض کن Pull Request ساختی و هنوز کسی Review نکرده.
ابزارهای جدید AI میتونن قبل از همتیمیهات این موارد رو بررسی کنن:
✅ احتمال ایجاد Bug
✅ مشکلات امنیتی
✅ کدهای تکراری
✅ بخشهایی که خوانایی پایینی دارن
✅ پیشنهاد برای Refactor
نکته مهم اینه که این ابزارها جای برنامهنویس رو نمیگیرن؛ فقط باعث میشن زمان Code Review کمتر بشه و باگهای ساده زودتر پیدا بشن.
به نظر میرسه در آینده نزدیک، داشتن یک AI Reviewer کنار GitHub یا GitLab به اندازه داشتن Linter عادی بشه.
💡 برنامهنویسهای حرفهای فقط سریع کد نمیزنن؛ سریعتر هم اشتباهاتشون رو پیدا میکنن.
@CodeVerse_dev
❤9