Golden Code – Telegram
Golden Code
737 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
خیلی وقتا برای نمایش عددها، قیمت‌ها یا درصدها کمی دردسر داریم ( ویرگول، اعشار، واحد پول، زبان کاربر و...)
اما جاوااسکریپت خودش یه ابزار آماده داره که همه‌ی اینارو خودش انجام میده 👇🏾

چی هستش؟

این Intl.NumberFormat یه قابلیت Native و قدرتمنده
که اعداد رو بر اساس زبان و منطقه‌ی کاربر فرمت میکنه.
نه نیاز به کتابخونه داریم نه regex بنویسیم

یه مثال:
const num = 1234567.89;

new Intl.NumberFormat('en-US').format(num);
// 1,234,567.89

new Intl.NumberFormat('fa-IR').format(num);
// ۱٬۲۳۴٬۵۶۷٫۸۹ 🇮🇷

👆🏾 همون عدد، ولی متناسب با زبان کاربر نمایش داده میشه.

برای پول و درصد :

new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
}).format(4999.99);
// $4,999.99 💵

new Intl.NumberFormat('fa-IR', {
style: 'percent',
maximumFractionDigits: 1
}).format(0.853);
// ‎٪۸۵٫۳ 🔢

مزایاش؟

• داخلی و سریع (بدون نصب کتابخونه)
• پشتیبانی از تمام زبان‌ها و ارزها
• کنترل اعشار، جداکننده‌ها، و سبک نمایش
• ظاهر حرفه‌ای‌تر برای کاربر 👌🏾

خلاصه:
وقتی Intl.NumberFormat هست، دیگه نیازی به کدنویسی اضافی برای فرمت اعداد نیست.
#JS #JavaScript #جاوااسکرپیت

@GoldenCodeir 🔥

(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/KaraBharat/status/1984635931832328388?t=nyibER_ZCoXfs8nLIFoy7g&s=19
👍73
اگه با API Resources در Laravel کار می‌کنین، احتمالا همیشه با این حالت مواجه بودید:

return PostResource::collection(Post::all());
return new PostResource($post);

تکراریه یکم؟

راه حل جدید در Laravel 12.29

حالا میتونین مستقیما در مدل مشخص کنید که از چه Resource و Resource Collection ای استفاده بشه:
use Illuminate\Database\Eloquent\Model;
use App\Http\Resources\PostResource;
use App\Http\Resources\PostCollection;
use Illuminate\Database\Eloquent\Attributes\UseResource;
use Illuminate\Database\Eloquent\Attributes\UseResourceCollection;

#[UseResource(PostResource::class)]
#[UseResourceCollection(PostCollection::class)]
class Post extends Model {}

استفاده ی ازش هم اسونه

بعده این کار، برای نمایش یک رکورد یا مجموعه کافیست:
return Post::first()->toResource(); // یک رکورد
return Post::all()->toResource(); // مجموعه

متود toResource() بطور خودکار Resource یا Resource Collection مرتبط با مدل را برمیگردونه.

مزایاش؟

•کد تمیزتر و کوتاه‌تر
•مدل خودش مسئول انتخاب Resource مناسب میشه
•مناسب برای پروژه‌های بزرگ با چندین API Resource

📌 این ویژگی فقط از Laravel 12.29 به بعد فعال هست.

#Laravel #laravel_tip #لاراول

@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1986489784408182821?t=Ju0iw4KZdb1e0wg-OzajSQ&s=19
👍10🔥3
در Laravel نسخه 12.16 به بعد یک rule جدید به نام in_array_keys معرفی شده :

$request->validate([
'data' => 'required|array|in_array_keys:name,email',
]);

یعنی آرایه‌ی data باید حداقل یکی از کلیدهای name یا email رو داشته باشه، بدون نیاز به کد اضافی.

مزایای استفاده ازین rule :

کد تمیز و کوتاه

حذف بررسی‌های دستی کلیدها

هماهنگ با دیگر قوانین اعتبارسنجی


📌 این rule فقط وجود کلیدها رو بررسی میکنه. برای بررسی نوع یا مقدار دیتا، از قوانین دیگه ای مثل string یا email استفاده کنین.

ی مثال دیگه:
$request->validate([
'user' => 'required|array|in_array_keys:name,email,password',
]);


درین مثال، اگه هیچکدوم از کلیدهای name، email یا password وجود نداشته باشن، Laravel به صورت خودکار خطا برمیگردونه و نیازی به نوشتن کد دستی نیست.
اما اگه فقط یکی از کلیدها موجود باشه، بدرستی انجام میشه بدونه خطا.

#Laravel #Laravel_tip #لاراول

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1988233512273543234?t=2ABEYuKulqMioiYyYh6Umg&s=19
👍102
گاهی یک رشته داریم که عناصرش با "," یا ";" جدا شدن. با استفاده از split() و یک Regex ساده میتونیم هر دو رو همزمان جدا کنیم.

مثال:

let text = "apple,banana;orange,grape;melon";
let parts = text.split(/[,;]/);

console.log(parts);
// ["apple", "banana", "orange", "grape", "melon"]


الگوی بالا میگه هرجا ", " یا ";" دیدی جداسازی انجام بده برامون

#Javanoscript #جاوا_اسکریپت
#جاوااسکریپت

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/Shefali__J/status/1988564436559249609?t=3KBELet8DL6rU_-xqTFCDA&s=35
👍6🔥4
وقتی از get() استفاده میکنیم، کل رکوردهای جدول یکباره از دیتابیس خوانده میشن و داخل حافظه لود میشن.
این برای جدول های کوچیک مشکلی نداره؛ اما اگه با هزاران یا میلیون‌ها رکورد سروکار داشته باشیم مصرف حافظه شدیدا بالا میره و ممکنه اسکریپت از کار بیفته.

لاراول قابلیت خوبی در اختیارمون گذاشته:

lazy() — استریم‌کردن داده‌ها به‌صورت مرحله‌ای

با lazy() رکوردهامون بصورت streaming لود میشن.
یعنی فقط بخش کوچکی وارد حافظه می‌شه، پردازش می‌شه و بعد آزاد می‌گرده. این روش فوق‌العاده بهینه و کم‌مصرف هست.

📌 مثال:
User::lazy()->each(function ($user) {
// پردازش هر کاربر
});

مزیت‌ هاش؟

جلوگیری از مصرف سنگین RAM

مناسب برای پردازش جداول بزرگ

امن‌تر برای queue job ها و اسکریپتهای طولانی


اگه با دیتاست‌های بزرگ سروکار دارین lazy() یکی از ترفندهاییه که بهتره بشناسید.

#Laravel #LaravelTip #لاراول

@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/laravelbackpack/status/1987135536189055477?t=qISIPBP7OR7Yxe41XToi-Q&s=35
👍73👎1
یکی از قابلیت‌های کمتر استفاده‌شده‌ ی مرورگرها، Web Speech API است که به شما این امکان رو میده متن رو با صدای طبیعی برای کاربر پخش کنید.

با متود زیر میتونید خیلی ساده به اپلیکیشن وبتون صدا اضافه کنید:

const msg = new SpeechSynthesisUtterance("سلام! این متن در مرورگر خوانده میشه.");
speechSynthesis.speak(msg);

📌 چطوری کار میکنه؟

این SpeechSynthesisUtterance یک شیء (Object) هستش که متن، سرعت، زبان و ... نگه میداره.

متود speechSynthesis.speak() همین شی را به موتور گفتار مرورگر میده و متن رو برای کاربر میخواند.

الان صفحه که لود بشه اون متنی ک نوشتید ،بصورت فایل صوتی پخش میشه .

📌 موارد استفادش:

ساخت نوتیفیکیشن‌ های صوتی در وب

دستیار های صوتی ساده

افزایش Accessibility

خواندن متن یا آموزش زبان برای کاربر

#Javanoscript #جاوااسکریپت #جاوا_اسکریپت

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/denicmarko/status/1989665993871036438?t=nr9Tyq5fblSYnQGZiR58mQ&s=19
👍5🔥21🥱1
در آپدیت جدید Laravel 12.39 یک ویژگی کاربردی به دستور route:list اضافه شده:

فلگ جدید --middleware

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

📌 مثال:
php artisan route:list --middleware=auth

نمایش فقط اون روت‌هایی که middleware آن‌ها auth است.

php artisan route:list --middleware=api

نمایش روت‌های مربوطه.

چرا مهمه؟

پیدا کردن سریع روت‌های مرتبط با یک middleware

دیباگ راحتتر

بررسی امنیت روت‌ ها


قابلیتی ساده اما بسیار مفید برای پروژه‌های بزرگ لاراولی

#Laravel #LaravelTip #لاراول

(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/MrPunyapal/status/1991187285551788343?t=PtzZDme8H4Mu2P-GeP21DQ&s=35
👍154
سلام به همتون،

در حال حاضر امکان همکاری حضوری یا دورکار رو دارم. اگه مجموعه یا تیمی نیاز به همکاری داشت خوشحال میشم در ارتباط باشیم.❤️

راه ارتباطی و ارسال رزومه:
@Alixx242
11
Golden Code pinned «سلام به همتون، در حال حاضر امکان همکاری حضوری یا دورکار رو دارم. اگه مجموعه یا تیمی نیاز به همکاری داشت خوشحال میشم در ارتباط باشیم.❤️ راه ارتباطی و ارسال رزومه: @Alixx242»
نمایش داده‌ها به شکل جدول با console.table()

وقتی میخوای آرایه‌ها یا آبجکت‌های متعدد رو دیباگ کنی، console.log() همیشه خوانا نیست.
اما با console.table() میتونی داده‌ها رو مرتب، جدولی و بسیار خوانا ببینی. (در عکس قابل مشاهدست)

📌 مثال:

const users = [
{ name: "Ali", age: 25 },
{ name: "Sara", age: 30 }
];

console.table(users);

خروجی:
یک جدول تمیز شامل ستون های name و age.

کاربردهاش :

دیباگ سریع‌تر

مشاهده نتایج API

بررسی state در React/Vue

اگه تا حالا استفاده نکردی، حتما امتحانش کن :)

#JavaScript #js #جاوا_اسکریپت

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/denicmarko/status/1974822770476192190?t=msuLktjZp2a5rKegj1JdiA&s=35
👍7🔥31
Forwarded from Code Lab (Bahaedin)
🚀 چرا API کُند میشه؟

امروز می‌خوایم در مورد یه مشکل مشترک صحبت کنیم: کندی API.
چرا بعضی وقت‌ها API ما مثل لاک‌پشت رفتار می‌کنه؟ 🐢

۱. پایگاه داده (Database) – مقصر اصلی


کوئری‌های سنگین و بدون index
قفل شدن جدول‌ها (Table Locking)
ارتباطات زیاد با دیتابیس (N+1 Problem)

۲. معماری بد API


اندپوینت (Endpoint) هایی که کارهای زیادی انجام می‌دن!
عدم استفاده از Pagination برای داده‌های زیاد
پردازش‌های سنگین در خود API (مثلاً پردازش تصویر)

۳. مشکل در کش (Caching)


عدم استفاده از کش برای داده‌های تکراری
تنظیم نادرست زمان انقضای کش
کش کردن داده‌های بی‌فایده!

۴. منابع سرور (Server Resources)


منابع RAM کم
CPU overload شده
محدودیت پهنای باند (Bandwidth)

۵. شبکه (Network)


فاصلهٔ جغرافیایی بین کاربر و سرور
استفاده از هاستینگ ارزان‌قیمت و ضعیف
مشکل در CDN

۶. کدنویسی ضعیف


حلقه‌های بی‌پایان (Infinite Loops)
استفاده از الگوریتم‌های ناکارآمد (مثلاً O(n²))
مدیریت نادرست حافظه (Memory Leak)

💡 راه‌های حل مشکل:

برای دیتابیس: از indexها استفاده کن، کوئری‌هاتون رو بهینه کن.
برای معماری: از Microservices و Pagination کمک بگیر.
کش: Redis یا Memcached رو فراموش نکن!
مقیاس‌پذیری: سرور رو ارتقا بده یا از Load Balancer استفاده کن.
کد: پروفت رو با ابزارهایی مثل Py-Spy یا Blackfire آنالیز کن.

جمع‌بندی:
کندی API همیشه قابل حل‌ست، به شرطی که درست تشخیص بدی مشکل از کجاست!
یادت باشه: یه API سریع، هم کاربر رو خوشحال می‌کنه، هم موتورهای جستجو رو! 😉

پ.ن: تو اولین تجربه‌ات، چه چیزی باعث کندی API تو شده بود؟ زیر همین پست برامون بنویس! 👇
#baha #API
CODELAB | GpCodeLab
👍103
در نسخه‌های جدید لاراول، مدیریت تاریخ و زمان بسیار ساده‌تر شده.

متودهای plus() و minus()
// جمع کردن زمان
now()->plus(minutes: 5);
now()->plus(hours: 8);

// کم کردن زمان
now()->minus(days: 2);
now()->minus(weeks: 1);

مزیتش؟
خواناتر و استانداردتر از متدهای قدیمی مانند addHours() یا subDays() است.

توابع Interval
use function Illuminate\Support\minutes;

cache::put('metrics', $metrics, minutes(10));

📌 مزایا؟
● سریع و مختصر

● خواناتر نسبت به ساخت مستقیم CarbonInterval::minutes(10)

● قابل استفاده در هر جایی که DateInterval یا CarbonInterval قابل قبول باشه.

و Carbon حالا پشتیبانی کامل‌تری از جمع و تفریق واحدهای زمانی مثل دقیقه، ساعت، روز، هفته، ماه و سال دارد.
#Laravel #LaravelTip #Laravel_tip #لاراول

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/MrPunyapal/status/1994095099178045903?t=b8N9eTPiAKq3r-YlVph8Rg&s=35
👍10🔥31
Forwarded from Syntax | سینتکس (alireza-fa)
تو پروژه ها اولش شبیه به اینه که داری یه سنگ گرد سنگین رو به سختی از یه تپه بالا می بری. انرژی زیادی میخواد تا راه بیوفته، ولی وقتی راه افتاد، ادامه دادنش خیلی راحته
اما اگه یه مدت رهاش کنی دوباره راه انداختنش به همون اندازه اول، یا حتی بیشتر، سخت میشه

حفظ momentum یعنی حتی اگه وقتت کمه، یا خسته ای، یا مغزت پره، یه حرکت کوچیک بزنی، یه باگ ریز، یه refactor ساده، یا حتی فقط باز کردن پروژه
چون وقتی فاصله می گیری، پروژه یه دفعه سنگین تر از چیزی که هست به نظر میرسه و اون وقت به جای یه خط کد، با یه کوه ناتموم طرفی

چرا momentum؟

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

2. یادگیری‌ و درگیری ذهنی حفظ میشه
وقتی مدام با کدها درگیری، context توی ذهنت می‌مونه. ولی بعد از چند روز، باز کردن پروژه مثل روبه‌رو شدن با یه چیز ناآشنا می‌شه

3. بهت کمک می‌کنه با کمالگرایی کنار بیای
وقتی توی flow باشی، بیشتر عمل می‌کنی تا تحلیل. ولی فاصله گرفتن باعث می‌شه بیش از حد فکر کنی. از کجا شروع کنم؟ نکنه کدم خوب نباشه؟

@Syntax_fa
👍11
Forwarded from Linuxor ?
معمولا شرکت هایی موفق ان که یه ابزار برای خودشون ساختن و اونو به بقیه هم عرضه کردن، مثلا یکتانت (بزرگ ترین سیستم تبلیغاتی ایران) به گفته خودشون ابزار تبلیغاتی برای خودشون بوده اول بعد تبدیل به ابزارش کردن، یا پروژه های خیلی بزرگی مثل گیتهاب و اسلک اینا همگی ابزار برای تیم خودشون بوده بعد دیدن عه چه باحاله به مردم هم بدیم استفاده کنن.


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


@Linuxor
👍161