Forwarded from a pessimistic researcher (Kc)
تازه یه چیزی رو اشتباه گفتم...
پسره سال آخر دکتریست و ۳ سال قبل من دکتریاش رو شروع کرده :(
پسره سال آخر دکتریست و ۳ سال قبل من دکتریاش رو شروع کرده :(
Forwarded from Golden Code (@lix)
یکی از دغدغههای مهم در طراحی API اینه که اطلاعات اضافی نفرستیم.
چون:
حجم ریسپانس ها زیاد میشه و حجم منابع سرور افزایش پیدا میکنه و...
لاراول یه راهکار خیلی تمیز برای این موضوع داره: استفاده از API Resourceها.
🔹 مشکل رایج
فرض کنید میخوایم اطلاعات یک کاربر رو همراه با پستهاش برگردونیم.
معمولا شاید اینطوری عمل کنیم:
اینجا یه مشکل هست: حتی اگر posts رو لود نکرده باشیم، باز هم کلید posts توی JSON میاد (و معمولا query اضافه اجرا میشه).
لاراول متودی به اسم whenLoaded داره. این متود بررسی میکنه که آیا relation مورد نظر واقعاً لود شده یا نه.
✅ نتیجه:
اگر توی query نوشتیم:
اون موقع 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
چون:
حجم ریسپانس ها زیاد میشه و حجم منابع سرور افزایش پیدا میکنه و...
لاراول یه راهکار خیلی تمیز برای این موضوع داره: استفاده از 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
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
Laravel Tip 🚀
Ship lighter APIs with Resources that only include loaded relations! ☁️
Laravel allows us to easily control the payload without if/else spaghetti! 🫶
Check the example to learn how! 🔥
Ship lighter APIs with Resources that only include loaded relations! ☁️
Laravel allows us to easily control the payload without if/else spaghetti! 🫶
Check the example to learn how! 🔥
👍1
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 a pessimistic researcher (Kc)
چلسی هم امشب ۳ - ۱ باخت به بایرن
جدی دیگه وقتشه بخوابم و Just call it a fucked up day
جدی دیگه وقتشه بخوابم و Just call it a fucked up day
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
forked and taken over maintenance of the yaml package.
🟢 خلاصه مقاله:
این خبر از Golang Weekly میگوید که بسته پرکاربرد YAML در اکوسیستم Go فورک شده و نگهداری آن به گروه/افراد جدیدی سپرده شده است. هدف اصلی، حفظ سازگاری API و همزمان افزایش سرعت در رفع باگها و بهروزرسانیهای امنیتی است. توصیه میشود تیمها go.mod را بررسی کنند، مسیر ماژول و یادداشتهای انتشار فورک را بخوانند و در صورت مهاجرت، با پینکردن نسخهها و اجرای تستها از عدم تغییر در رفتار پارسینگ اطمینان حاصل کنند. اگر فعلاً مهاجرت نمیکنید، نسخه پایدار قبلی را پین کنید و هر دو مخزن را برای هشدارهای امنیتی و تغییرات سازگاری زیر نظر داشته باشید.
🟣لینک مقاله:
https://golangweekly.com/link/174063/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - yaml/go-yaml: The YAML org maintained fork of https://github.com/go-yaml/yaml
The YAML org maintained fork of https://github.com/go-yaml/yaml - yaml/go-yaml
Forwarded from Morteza Bashsiz مرتضی باشسیز
یه گروه از صوفیها بودن که یه فکر جالب داشتن: میگفتن بزرگترین خطر برای آدمِ سالک اینه که به خودش مغرور بشه یا بخواد جلوی مردم خوب به نظر بیاد.
برای همین، عمداً کارهایی میکردن که مردم سرزنششون کنن. مثلا:
میرفتن گدایی، کارای ظاهراً خجالتآور میکردن، لباسای پاره یا نامرتب میپوشیدن.
هدفشون این بود که نفسشون شکسته بشه و یادشون نره که ارزش واقعی آدم توی دلشه، نه توی نگاه بقیه.
به همین خاطر بهشون گفتن: ملامتیه، یعنی کسایی که ملامت و سرزنش رو میخرن تا خودشون رو از غرور و ریا نجات بدن.
این حرکتشون برای من خیلی جالبه که هر از گاهی میومدن و ازین کارا میکردن تا خودشون رو از قید و بندی که خودشون برای خودشون درست کردن راحت کنن.
برای همین، عمداً کارهایی میکردن که مردم سرزنششون کنن. مثلا:
میرفتن گدایی، کارای ظاهراً خجالتآور میکردن، لباسای پاره یا نامرتب میپوشیدن.
هدفشون این بود که نفسشون شکسته بشه و یادشون نره که ارزش واقعی آدم توی دلشه، نه توی نگاه بقیه.
به همین خاطر بهشون گفتن: ملامتیه، یعنی کسایی که ملامت و سرزنش رو میخرن تا خودشون رو از غرور و ریا نجات بدن.
این حرکتشون برای من خیلی جالبه که هر از گاهی میومدن و ازین کارا میکردن تا خودشون رو از قید و بندی که خودشون برای خودشون درست کردن راحت کنن.
Forwarded from Gopher Academy
How to implement the Outbox pattern in Go and Postgres
https://packagemain.tech/p/how-to-implement-the-outbox-pattern-in-golang
https://packagemain.tech/p/how-to-implement-the-outbox-pattern-in-golang
packagemain.tech
How to implement the Outbox pattern in Go and Postgres
How and why to use the Outbox pattern to build a robust event-driven system.
Forwarded from DevTwitter | توییت برنامه نویسی
اگر Vibe Coding می کنید، احتمالاً جزو یکی از این دو دسته هستین:
یا از ابزاری مثل Cursor استفاده میکنید که Agent مستقیماً با کدهای پروژهتون تعامل داره، یا از نسخه وب استفاده می کنید و کدهای پروژه رو دستی کپی میکنید و به AI میدید.
اگر جزو دسته دوم هستید، احتمالا این فرایند براتون توی پروژههای بزرگ با تعداد فایلهای زیاد، گاهی خستهکننده میشه. باید هر بار فایلها رو پیدا کنید، کدها رو کپی کنید و اگر Agentتون (مثل Claude) زود به محدودیت برسه، این کار حسابی پهنای باند اعصابتون رو درگیر می کنه.
توی پروژه هایی که Vibe Coding لازمه، من جزو دسته دوم هستم و به همین دلیل، یه اسکریپت پایتونی نوشتم که کارم رو راحت بکنه.
کارش اینکه میاد مسیر یک دایرکتوری رو از شما دریافت می کنه و فایل هایی که داخلش هستند رو توی یک فایل txt با مسیر هاشون Merge می کنه.
https://github.com/naseridev/vibemerge
@DevTwitter | <Nima Naseri/>
یا از ابزاری مثل Cursor استفاده میکنید که Agent مستقیماً با کدهای پروژهتون تعامل داره، یا از نسخه وب استفاده می کنید و کدهای پروژه رو دستی کپی میکنید و به AI میدید.
اگر جزو دسته دوم هستید، احتمالا این فرایند براتون توی پروژههای بزرگ با تعداد فایلهای زیاد، گاهی خستهکننده میشه. باید هر بار فایلها رو پیدا کنید، کدها رو کپی کنید و اگر Agentتون (مثل Claude) زود به محدودیت برسه، این کار حسابی پهنای باند اعصابتون رو درگیر می کنه.
توی پروژه هایی که Vibe Coding لازمه، من جزو دسته دوم هستم و به همین دلیل، یه اسکریپت پایتونی نوشتم که کارم رو راحت بکنه.
کارش اینکه میاد مسیر یک دایرکتوری رو از شما دریافت می کنه و فایل هایی که داخلش هستند رو توی یک فایل txt با مسیر هاشون Merge می کنه.
https://github.com/naseridev/vibemerge
@DevTwitter | <Nima Naseri/>
Forwarded from IRCF | اینترنت آزاد برای همه
توسط اسکریپت Simple GitHub Raw Proxy Worker و با کمک سرویس Cloudflare Workers به سادگی میتونین محدودیت اعمالشده بر روی آدرس
👉 gist.github.com/ircfspace/e3fab304e4db6ea76eb94ee6e230997c
🔍 ircf.space
@ircfspace
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
Default Methods in Go
🟢 خلاصه مقاله:
خلاصهای از دیدگاه میگل: اینترفیسهای Go ساده و کمهزینهاند، اما هنگام تغییر، بهویژه وقتی متدی به یک اینترفیس موجود اضافه میشود، شکننده میشوند زیرا Go «متد پیشفرض» ندارد و همهٔ پیادهسازیهای موجود باید بهروز شوند. او محدودیتها و پیامدهای این وضعیت را بررسی میکند و راهکارهای رایج را پیشنهاد میدهد: کوچک نگهداشتن اینترفیسها، افزودن اینترفیسهای جدید یا اختیاری بهجای تغییر قدیمیها، استفاده از آداپترها و توابع کمکی، و تکیه محدود بر امبدینگ برای اشتراک رفتار. جمعبندی: مزیت سادگی Go با هزینهٔ مهاجرت و هماهنگی بیشتر همراه است؛ پس باید اینترفیسها را با دقت طراحی و برای تکامل تدریجی و قابل کنترل برنامهریزی کرد.
🟣لینک مقاله:
https://golangweekly.com/link/173623/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from DevTwitter | توییت برنامه نویسی
یه اپلیکیشن هست مشابه Google Authenticator که حتی این قابلیت رو داره از گوگل اکسپورت بگیری بریزی توش
علت نوشتنم این هست بخاطر تحریم ها هرزگاهی Authenticator گوگل بخش اسکن QR رو نمیاره و یه سری مشکلات دیگه بعد بعضی ایرادات هم داره مثل امکان تعریف رمز رو برای خودش نداره در حالی که باید از نظر امنیتی داشته باشه
https://github.com/salamzadeh/pb_authenticator
@DevTwitter | <Sasan Salamzadeh/>
علت نوشتنم این هست بخاطر تحریم ها هرزگاهی Authenticator گوگل بخش اسکن QR رو نمیاره و یه سری مشکلات دیگه بعد بعضی ایرادات هم داره مثل امکان تعریف رمز رو برای خودش نداره در حالی که باید از نظر امنیتی داشته باشه
https://github.com/salamzadeh/pb_authenticator
@DevTwitter | <Sasan Salamzadeh/>
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 13 new trending repositories:
1. monad by category-labs
📝 No description available
💻 C++ | ⭐ 294 | 🌟 Today: 59
🔗 Link
2. monad-bft by category-labs
📝 No description available
💻 Rust | ⭐ 296 | 🌟 Today: 8
🔗 Link
3. WebKit by WebKit
📝 Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applic...
💻 JavaScript | ⭐ 9,014 | 🌟 Today: 11
🔗 Link
4. codex by openai
📝 Lightweight coding agent that runs in your terminal
💻 Rust | ⭐ 41,814 | 🌟 Today: 478
🔗 Link
5. nocodb by nocodb
📝 🔥 🔥 🔥 Open Source Airtable Alternative
💻 TypeScript | ⭐ 57,002 | 🌟 Today: 32
🔗 Link
6. timesfm by google-research
📝 TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Goo...
💻 Python | ⭐ 5,566 | 🌟 Today: 19
🔗 Link
7. DeepResearch by Alibaba-NLP
📝 Tongyi DeepResearch, the Leading Open-source DeepResearch Agent
💻 Python | ⭐ 7,194 | 🌟 Today: 540
🔗 Link
8. opencode by sst
📝 AI coding agent, built for the terminal.
💻 TypeScript | ⭐ 23,881 | 🌟 Today: 438
🔗 Link
9. nanobrowser by nanobrowser
📝 Open-Source Chrome extension for AI-powered web automation. Run multi-agent workflows using your own...
💻 TypeScript | ⭐ 9,214 | 🌟 Today: 38
🔗 Link
10. Ice by jordanbaird
📝 Powerful menu bar manager for macOS
💻 Swift | ⭐ 22,194 | 🌟 Today: 115
🔗 Link
11. flutter by flutter
📝 Flutter makes it easy and fast to build beautiful apps for mobile and beyond
💻 Dart | ⭐ 172,430 | 🌟 Today: 28
🔗 Link
12. detectron2 by facebookresearch
📝 Detectron2 is a platform for object detection, segmentation and other visual recognition tasks.
💻 Python | ⭐ 32,834 | 🌟 Today: 43
🔗 Link
13. curl by curl
📝 A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, F...
💻 C | ⭐ 38,845 | 🌟 Today: 16
🔗 Link
🔘 @github_trending_daily
Found 13 new trending repositories:
1. monad by category-labs
📝 No description available
💻 C++ | ⭐ 294 | 🌟 Today: 59
🔗 Link
2. monad-bft by category-labs
📝 No description available
💻 Rust | ⭐ 296 | 🌟 Today: 8
🔗 Link
3. WebKit by WebKit
📝 Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applic...
💻 JavaScript | ⭐ 9,014 | 🌟 Today: 11
🔗 Link
4. codex by openai
📝 Lightweight coding agent that runs in your terminal
💻 Rust | ⭐ 41,814 | 🌟 Today: 478
🔗 Link
5. nocodb by nocodb
📝 🔥 🔥 🔥 Open Source Airtable Alternative
💻 TypeScript | ⭐ 57,002 | 🌟 Today: 32
🔗 Link
6. timesfm by google-research
📝 TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Goo...
💻 Python | ⭐ 5,566 | 🌟 Today: 19
🔗 Link
7. DeepResearch by Alibaba-NLP
📝 Tongyi DeepResearch, the Leading Open-source DeepResearch Agent
💻 Python | ⭐ 7,194 | 🌟 Today: 540
🔗 Link
8. opencode by sst
📝 AI coding agent, built for the terminal.
💻 TypeScript | ⭐ 23,881 | 🌟 Today: 438
🔗 Link
9. nanobrowser by nanobrowser
📝 Open-Source Chrome extension for AI-powered web automation. Run multi-agent workflows using your own...
💻 TypeScript | ⭐ 9,214 | 🌟 Today: 38
🔗 Link
10. Ice by jordanbaird
📝 Powerful menu bar manager for macOS
💻 Swift | ⭐ 22,194 | 🌟 Today: 115
🔗 Link
11. flutter by flutter
📝 Flutter makes it easy and fast to build beautiful apps for mobile and beyond
💻 Dart | ⭐ 172,430 | 🌟 Today: 28
🔗 Link
12. detectron2 by facebookresearch
📝 Detectron2 is a platform for object detection, segmentation and other visual recognition tasks.
💻 Python | ⭐ 32,834 | 🌟 Today: 43
🔗 Link
13. curl by curl
📝 A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, F...
💻 C | ⭐ 38,845 | 🌟 Today: 16
🔗 Link
🔘 @github_trending_daily