Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Geek Alerts
Forwarded from a pessimistic researcher (Kc)
تازه یه چیزی رو اشتباه گفتم...

پسره سال آخر دکتری‌ست و ۳ سال قبل من دکتری‌اش رو شروع کرده :(
Forwarded from Golden Code (@lix)
یکی از دغدغه‌های مهم در طراحی API اینه که اطلاعات اضافی نفرستیم.

چون:

حجم ریسپانس ها زیاد میشه و حجم منابع سرور افزایش پیدا میکنه و...

لاراول یه راهکار خیلی تمیز برای این موضوع داره: استفاده از API Resource‌ها.

🔹 مشکل رایج

فرض کنید می‌خوایم اطلاعات یک کاربر رو همراه با پست‌هاش برگردونیم.
معمولا شاید اینطوری عمل کنیم:
return [
'id' => $this->id,
'name' => $this->name,
'posts' => PostResource::collection($this->posts),
];

اینجا یه مشکل هست: حتی اگر posts رو لود نکرده باشیم، باز هم کلید posts توی JSON میاد (و معمولا query اضافه اجرا میشه).

لاراول متودی به اسم whenLoaded داره. این متود بررسی میکنه که آیا relation مورد نظر واقعاً لود شده یا نه.
return [
'id' => $this->id,
'name' => $this->name,
'posts' => PostResource::collection($this->whenLoaded('posts')),
];

نتیجه:

اگر توی query نوشتیم:
User::with('posts')->get();

اون موقع posts داخل JSON میاد.

اگر with('posts') رو ننوشتیم، اصلا posts توی خروجی دیده نمیشه.


📌 مزایا

شماره ۱ : API سبک‌تر → فقط دیتاهایی که لازم داری ارسال میشن.


شماره ۲: کد تمیزتر → دیگه خبری از if/else‌ های شلوغ داخل Resource نیست.


شماره۳: کنترل کامل → هر relation فقط وقتی لود شده باشه به خروجی اضافه میشه.

خلاصه که:

وقتی داری API میسازی، همیشه به این فکر کن که چه دیتا ای لازمه سمت کاربر بیاد.
با استفاده از whenLoaded در لاراول، میتونی خروجی‌هات رو بهینه، تمیز و حرفه‌ای نگه داری.

@GoldenCodeir

#Laravel #لاراول

(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/wendell_adriel/status/1967917256446267886?t=nJdmRFIvFlZGiL09jL8LuQ&s=35
👍1
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
جت برین اعصاب نداره
Forwarded from a pessimistic researcher (Kc)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
فرصت شغلی کارآموز الکترونیک
شرکت راهکارصنعت آواپرداز


🔹ما به دنبال همکار آینده‌مان در تیم الکترونیک هستیم.

🔸 در این نقش چه خواهید کرد؟
- مستقیماً در مراحل طراحی، شبیه‌سازی، مونتاژ و عیب‌یابی بردهای الکترونیکی مشارکت خواهید داشت.
- بر روی پروژه‌های واقعی شرکت کار خواهید کرد.
- تحت نظر مهندسین، مسئولیت بخش‌هایی از یک پروژه را بر عهده خواهید گرفت.

🔹شرایط همکاری:

- دانشجو یا فارغ‌التحصیل رشته‌های مهندسی الکترونیک یا مرتبط
- آشنایی مقدماتی با مفاهیم پایه الکترونیک (مدارها، قطعات، میکروکنترلرها)
- اشتیاق و علاقه برای یادگیری
- دارای روحیه تیمی، پشتکار و دقت بالا

📄 ارسال رزومه:
کلیک برای ارسال رزمه
Forwarded from محتوای آزاد سهراب (Sohrab)
آزمون
T'as l'air d'une chanson
Serge Reggiani
Mais t'as l'air d'une chanson
Qu'on chante entre garçons.


#flac
Forwarded from a pessimistic researcher (Kc)
چلسی هم امشب ۳ - ۱ باخت به بایرن

جدی دیگه وقتشه بخوابم و Just call it a fucked up day
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۷۷۷

این نیست ره وصل که پنداشته ای
این نیست جهان جان که بگذاشته ای
آن چشمه که خضر خورد از او آب حیات
اندر ره تست لیکن انباشته ای

#مولانا | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
forked and taken over maintenance of the yaml package.

🟢 خلاصه مقاله:
این خبر از Golang Weekly می‌گوید که بسته پرکاربرد YAML در اکوسیستم Go فورک شده و نگه‌داری آن به گروه/افراد جدیدی سپرده شده است. هدف اصلی، حفظ سازگاری API و هم‌زمان افزایش سرعت در رفع باگ‌ها و به‌روزرسانی‌های امنیتی است. توصیه می‌شود تیم‌ها go.mod را بررسی کنند، مسیر ماژول و یادداشت‌های انتشار فورک را بخوانند و در صورت مهاجرت، با پین‌کردن نسخه‌ها و اجرای تست‌ها از عدم تغییر در رفتار پارسینگ اطمینان حاصل کنند. اگر فعلاً مهاجرت نمی‌کنید، نسخه پایدار قبلی را پین کنید و هر دو مخزن را برای هشدارهای امنیتی و تغییرات سازگاری زیر نظر داشته باشید.

🟣لینک مقاله:
https://golangweekly.com/link/174063/web


👑 @gopher_academy
زیبا نیست؟ 😐

🔍 ircf.space
@ircfspace
یه گروه از صوفی‌ها بودن که یه فکر جالب داشتن: می‌گفتن بزرگ‌ترین خطر برای آدمِ سالک اینه که به خودش مغرور بشه یا بخواد جلوی مردم خوب به نظر بیاد.
برای همین، عمداً کارهایی می‌کردن که مردم سرزنششون کنن. مثلا:
می‌رفتن گدایی، کارای ظاهراً خجالت‌آور می‌کردن، لباسای پاره یا نامرتب می‌پوشیدن.
هدفشون این بود که نفسشون شکسته بشه و یادشون نره که ارزش واقعی آدم توی دلشه، نه توی نگاه بقیه.
به همین خاطر بهشون گفتن: ملامتیه، یعنی کسایی که ملامت و سرزنش رو می‌خرن تا خودشون رو از غرور و ریا نجات بدن.
این حرکتشون برای من خیلی جالبه که هر از گاهی میومدن و ازین کارا میکردن تا خودشون رو از قید و بندی که خودشون برای خودشون درست کردن راحت کنن.
Forwarded from Linuxor ?
اگر Vibe Coding می کنید، احتمالاً جزو یکی از این دو دسته‌ هستین:

یا از ابزاری مثل Cursor استفاده می‌کنید که Agent مستقیماً با کدهای پروژه‌تون تعامل داره، یا از نسخه وب استفاده می کنید و کدهای پروژه رو دستی کپی می‌کنید و به AI می‌دید.

اگر جزو دسته دوم هستید، احتمالا این فرایند براتون توی پروژه‌های بزرگ با تعداد فایل‌های زیاد، گاهی خسته‌کننده می‌شه. باید هر بار فایل‌ها رو پیدا کنید، کدها رو کپی کنید و اگر Agent‌تون (مثل Claude) زود به محدودیت برسه، این کار حسابی پهنای باند اعصابتون رو درگیر می کنه.
توی پروژه هایی که Vibe Coding لازمه، من جزو دسته دوم هستم و به همین دلیل، یه اسکریپت پایتونی نوشتم که کارم رو راحت بکنه.

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

https://github.com/naseridev/vibemerge

@DevTwitter | <Nima Naseri/>
توسط اسکریپت Simple GitHub Raw Proxy Worker و با کمک سرویس Cloudflare Workers به سادگی می‌تونین محدودیت اعمال‌شده بر روی آدرس raw.githubusercontent.com رو دور بزنین.

👉 gist.github.com/ircfspace/e3fab304e4db6ea76eb94ee6e230997c

🔍 ircf.space
@ircfspace
Forwarded from Gopher Academy
🔵 عنوان مقاله
Default Methods in Go

🟢 خلاصه مقاله:
خلاصه‌ای از دیدگاه میگل: اینترفیس‌های Go ساده و کم‌هزینه‌اند، اما هنگام تغییر، به‌ویژه وقتی متدی به یک اینترفیس موجود اضافه می‌شود، شکننده می‌شوند زیرا Go «متد پیش‌فرض» ندارد و همهٔ پیاده‌سازی‌های موجود باید به‌روز شوند. او محدودیت‌ها و پیامدهای این وضعیت را بررسی می‌کند و راهکارهای رایج را پیشنهاد می‌دهد: کوچک نگه‌داشتن اینترفیس‌ها، افزودن اینترفیس‌های جدید یا اختیاری به‌جای تغییر قدیمی‌ها، استفاده از آداپترها و توابع کمکی، و تکیه محدود بر امبدینگ برای اشتراک رفتار. جمع‌بندی: مزیت سادگی Go با هزینهٔ مهاجرت و هماهنگی بیشتر همراه است؛ پس باید اینترفیس‌ها را با دقت طراحی و برای تکامل تدریجی و قابل کنترل برنامه‌ریزی کرد.

🟣لینک مقاله:
https://golangweekly.com/link/173623/web


👑 @gopher_academy
یه اپلیکیشن هست مشابه Google Authenticator که حتی این قابلیت رو داره از گوگل اکسپورت بگیری بریزی توش
علت نوشتنم این هست بخاطر تحریم ها هرزگاهی Authenticator گوگل بخش اسکن QR رو نمیاره و یه سری مشکلات دیگه بعد بعضی ایرادات هم داره مثل امکان تعریف رمز رو برای خودش نداره در حالی که باید از نظر امنیتی داشته باشه
https://github.com/salamzadeh/pb_authenticator

@DevTwitter | <Sasan Salamzadeh/>
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
من وقتی کدای پکیج فروشای عزیز رو میبینم