Forwarded from Foad Labs
کامیونیتی نکست و شرکت بنیانگذار اون یعنی ورسل داره توی ۳ کشور اروپایی ایونت برگزار میکنه
که مهموناش از خفنای تیم نکست هستن 🤌🏻
پ.ن : سایتشون آدمو به هوس میندازه شرکت کنی 😂
🌐 https://nextjs.org/nights
که مهموناش از خفنای تیم نکست هستن 🤌🏻
پ.ن : سایتشون آدمو به هوس میندازه شرکت کنی 😂
🌐 https://nextjs.org/nights
❤4
اگه از دیتابیس SQL Export گرفتین و میخواید اونو به Seeder تبدیل کنید، لازم نیست چندین خط "INSERT" رو به کد تبدیل کنید.
بجای این کار، فایل SQL رو مستقیما در Seeder اجرا کنید:
سپس Seeder رو اجرا کنین و تمام دیتاها وارد دیتابیس میشن.
(مناسب برای Migration از پروژههای قدیمی)✅️
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید 👇🏾)
https://x.com/i/status/2059933970037428468
بجای این کار، فایل SQL رو مستقیما در Seeder اجرا کنید:
$sql = File::get(database_path('seeders/sql/data.sql'));
DB::unprepared($sql);سپس Seeder رو اجرا کنین و تمام دیتاها وارد دیتابیس میشن.
(مناسب برای Migration از پروژههای قدیمی)✅️
#Laravel #لاراول
@GoldenCodeir
(به منبع و مثالش توجه کنید 👇🏾)
https://x.com/i/status/2059933970037428468
X (formerly Twitter)
Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) on X
Laravel tip.
You have SQL export from the DB, and want to turn into Laravel seeders?
Instead of manually converting SQL insert statements into Laravel seeders, you can execute raw SQL files directly using `DB::unprepared()` in your seeder class.
You have SQL export from the DB, and want to turn into Laravel seeders?
Instead of manually converting SQL insert statements into Laravel seeders, you can execute raw SQL files directly using `DB::unprepared()` in your seeder class.
👍6🔥2
Forwarded from یک برنامه نویس تنبل
🔶 اگر حساب لینکدین رو با IP ایران ساختهاید، بهتره تا جای ممکن با VPN وارد نشوید.
لینکدین روی IP هایی که باهاش وارد حساب میشید خیلی حساس است. اگر مدام با VPN و IP های مختلف وارد بشید، ممکنه سیستم امنیتی لینکدین به حسابت مشکوک بشه و اون رو محدود یا حتی مسدود کند و در این صورت، بازگرداندن حساب معمولاً دردسر و زمان زیادی میبره.
پس تا زمانی که لینکدین آزاد نشده، از VPN استفاده نکنید.
@TheRaymondDev
لینکدین روی IP هایی که باهاش وارد حساب میشید خیلی حساس است. اگر مدام با VPN و IP های مختلف وارد بشید، ممکنه سیستم امنیتی لینکدین به حسابت مشکوک بشه و اون رو محدود یا حتی مسدود کند و در این صورت، بازگرداندن حساب معمولاً دردسر و زمان زیادی میبره.
پس تا زمانی که لینکدین آزاد نشده، از VPN استفاده نکنید.
@TheRaymondDev
💔2👍1
یوتیوب ۱۶ کانال را حذف کرد
با بیش از ۴.۷ میلیارد بازدید و ۳۵ میلیون مشترک
همه در یک موج ناپدید شدند
با بیش از ۴.۷ میلیارد بازدید و ۳۵ میلیون مشترک
همه در یک موج ناپدید شدند
😢8
بصورت پیشفرض، اگه کلاینت هدر "Accept: application/json" رو ارسال نکند، لاراول حتی برای مسیرهای API هم ممکنه پاسخ خطارو بصورت HTML برگردونه
این یعنی فرانت یا اپ موبایل بهجای JSON با یک صفحه HTML مواجه میشه !
برای جلوگیری ازین مشکل، در "bootstrap/app.php" مشخص کنین که تمام Exception های مربوط به API همیشه بهصورت JSON رندر بشن:
✅ نتیجش؟
- خطاهای API همیشه JSON هستند.
- برای رندر خطاهای API دیگه به هدر Accept وابسته نیستید.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/i/status/2058846806209892357
این یعنی فرانت یا اپ موبایل بهجای JSON با یک صفحه HTML مواجه میشه !
برای جلوگیری ازین مشکل، در "bootstrap/app.php" مشخص کنین که تمام Exception های مربوط به API همیشه بهصورت JSON رندر بشن:
->withExceptions(function ($exceptions) {
$exceptions->shouldRenderJsonWhen(
fn ($request) => $request->is('api/*')
);
})✅ نتیجش؟
- خطاهای API همیشه JSON هستند.
- برای رندر خطاهای API دیگه به هدر Accept وابسته نیستید.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/i/status/2058846806209892357
X (formerly Twitter)
Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) on X
Laravel tip.
Make your API return JSON for ALL exceptions.
By default Laravel renders HTML error pages even for API routes if the client forgot the `Accept: application/json` header.
Fix it once in bootstrap/app.php.
Make your API return JSON for ALL exceptions.
By default Laravel renders HTML error pages even for API routes if the client forgot the `Accept: application/json` header.
Fix it once in bootstrap/app.php.
👍7
Forwarded from کدنیوز | CodeNews
⚡️ لاراول ۱۳ روند انتشار سالانه خود را ادامه میدهد و این بار تمرکز ویژهای برکارهای مبتنی بر هوش مصنوعی و APIهای توسعهدهندهپسندتر دارد. در این نسخه، قابلیتهای اولیه و رسمی هوش مصنوعی، JSON:API، امکانات جستجوی برداری (Vector Search) و همچنین بهبودهای تدریجی در بخشهای صفها (Queues)، کش (Cache) و امنیت ارائه شدهاند.
نویسنده: میلاد خسروی
#کد_نیوز #کدنیوز #CodeNews #code_news
#لاراول #لاراول۱۳ #laravel #laravel13 #php
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2⚡1
Forwarded from یک برنامه نویس تنبل
🔶 سرویس های تحریم شده ایران که برای کاربران ایرانی در دسترس است دارای DNS خارجی همان تحریم گذر است.
یعنی خود شرکت های خارجی دسترسی بر روی ایرانیان باز نکرده است و ما آن را باز کردیم یعنی تحریم ها رو دور زدیم و به واسطه DNS تحریم گذر که سایت تحریم شده رو باز می کنیم که خود سیستم فکر می کنه کاربر خارجی است و اجازه دسترسی می دهد.
وقتی VPN روشن میکنید، انگار کلاً از یه کشور دیگه وارد اینترنت می شوید؛ آی پی عوض میشه و سایت ها فکر میکند, خارجی هستید.
ولی DNS این کار را نمی کند، فقط کمک می کند اسم سایت ها سریع تر و از یه مسیر دیگه ترجمه شوند.
برای همین VPN واقعاً هویت اینترنتی عوض می کند، اما DNS بیشتر مثل یه میان بُر یا راهنمای آدرس عمل میکنه، نه تغییر هویت.
@TheRaymondDev
یعنی خود شرکت های خارجی دسترسی بر روی ایرانیان باز نکرده است و ما آن را باز کردیم یعنی تحریم ها رو دور زدیم و به واسطه DNS تحریم گذر که سایت تحریم شده رو باز می کنیم که خود سیستم فکر می کنه کاربر خارجی است و اجازه دسترسی می دهد.
وقتی VPN روشن میکنید، انگار کلاً از یه کشور دیگه وارد اینترنت می شوید؛ آی پی عوض میشه و سایت ها فکر میکند, خارجی هستید.
ولی DNS این کار را نمی کند، فقط کمک می کند اسم سایت ها سریع تر و از یه مسیر دیگه ترجمه شوند.
برای همین VPN واقعاً هویت اینترنتی عوض می کند، اما DNS بیشتر مثل یه میان بُر یا راهنمای آدرس عمل میکنه، نه تغییر هویت.
@TheRaymondDev
❤3
یک برنامه نویس تنبل
🔶 سرویس های تحریم شده ایران که برای کاربران ایرانی در دسترس است دارای DNS خارجی همان تحریم گذر است. یعنی خود شرکت های خارجی دسترسی بر روی ایرانیان باز نکرده است و ما آن را باز کردیم یعنی تحریم ها رو دور زدیم و به واسطه DNS تحریم گذر که سایت تحریم شده رو باز…
در ایران دیگه Spotify بدون نیاز به vpn داره اجرا میشه...
👍2
Forwarded from یک برنامه نویس تنبل
🔶 البته این روش دور زدن DNS کارایی چندانی ندارد و محدودیت هایی دارد و احتمال مسدود شدن آن بالاست.
- امنیت ندارد (رمزنگاری نمیکند)
- فقط برای بعضی سایتها کار میکند
- آی پی واقعی هنوز لوکیشن اصلی نشان می دهد
بنابراین شرکت ها در صورت شناسایی آدرس DNS اصلی می تواند آن را مسدود کند.
@TheRaymondDev
- امنیت ندارد (رمزنگاری نمیکند)
- فقط برای بعضی سایتها کار میکند
- آی پی واقعی هنوز لوکیشن اصلی نشان می دهد
بنابراین شرکت ها در صورت شناسایی آدرس DNS اصلی می تواند آن را مسدود کند.
@TheRaymondDev
امروزه بخش زیادی از اپلیکیشنهای ما رو کدی تشکیل میده که خودمون ننوشتیم؛ یعنی پکیجها و... .(Third-Party Dependencies )
قبلاً وقتی از امنیت صحبت میکردیم، ذهن همه به سمت SQL Injection و XSS میرفت. اما امروز یکی از مهمترین تهدیدها، Supply Chain Attacks هستش؛ جایی که نفوذگر به جای حمله مستقیم به پروژه ی شما، یکی از پکیجهای مورد استفادتون رو هدف قرار میده.
📌 چند نکته مهم:
صرفا بهخاطر جدیدتر بودن یک نسخه، بهش اعتماد نکنید.
قبل از اجرای "composer update" تغییرات نسخههای جدید رو بررسی کنید.
هر پکیج جدید، یک سطح اعتماد و یک ریسک امنیتی جدید میتونه باشه.
برای قابلیتهای ساده، تا حد امکان از اضافه کردن پکیج های غیرضروری خودداری کنیم.
امنیت فقط مربوط به کدی که مینویسیم نیست، مربوط به تمام کدهاییه که بهشون اعتماد کردیم :)
#Laravel_tip #Laravel #php
@GoldenCodeir
(به منبع توجه کنید👇🏾)
https://x.com/i/status/2058156025769853168
قبلاً وقتی از امنیت صحبت میکردیم، ذهن همه به سمت SQL Injection و XSS میرفت. اما امروز یکی از مهمترین تهدیدها، Supply Chain Attacks هستش؛ جایی که نفوذگر به جای حمله مستقیم به پروژه ی شما، یکی از پکیجهای مورد استفادتون رو هدف قرار میده.
📌 چند نکته مهم:
صرفا بهخاطر جدیدتر بودن یک نسخه، بهش اعتماد نکنید.
قبل از اجرای "composer update" تغییرات نسخههای جدید رو بررسی کنید.
هر پکیج جدید، یک سطح اعتماد و یک ریسک امنیتی جدید میتونه باشه.
برای قابلیتهای ساده، تا حد امکان از اضافه کردن پکیج های غیرضروری خودداری کنیم.
امنیت فقط مربوط به کدی که مینویسیم نیست، مربوط به تمام کدهاییه که بهشون اعتماد کردیم :)
#Laravel_tip #Laravel #php
@GoldenCodeir
(به منبع توجه کنید👇🏾)
https://x.com/i/status/2058156025769853168
X (formerly Twitter)
Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) on X
With new security incident(s), we PHP/Laravel devs probably should stop running `composer update` blindly, trusting the latest versions.
Modern apps are mostly DEPENDENCIES.
Security is no longer just about your code, SQL injections or XSS attacks on your…
Modern apps are mostly DEPENDENCIES.
Security is no longer just about your code, SQL injections or XSS attacks on your…
❤2👍1
Forwarded from یک برنامه نویس تنبل
🔶 یکی از مشکلاتی که با ویرایشگرهای کد نویسی مبتنی بر هوش مصنوعی داریم این است که کد را مستقیم تولید و ثبت میکنند، اما هیچ تضمینی وجود ندارد که آن کدها بدون خطا و کاملاً سالم باشند.
از برنامهنویسان تازه کار هم انتظار نمیرود که بتوانند به درستی مشکلات کد را شناسایی کنند؛ در نتیجه معمولاً کد را بدون بررسی تأیید کرده و وارد پروژه میکنند. اگر هم خطایی رخ دهد، دوباره به هوش مصنوعی مراجعه میکنند تا کد را اصلاح کند و این چرخه ممکن است چندین بار تکرار شود تا شاید در نهایت کد درست کار کند.
اگر برنامه نویس حرفهای هستید و به کدهای تولید شده توسط هوش مصنوعی اعتماد کامل ندارید، بهتر است از بخش «Ask» در ویرایشگر های هوش مصنوعی استفاده کنید. ابتدا سوالات خود را بپرسید و کد را بررسی کنید، سپس فقط بخش هایی را که از صحت آن مطمئن هستید وارد پروژه کنید. این روش باعث میشود احتمال خطا در پروژه به طور قابل توجهی کاهش پیدا کند.
#هوش_مصنوعی
@TheRaymondDev
از برنامهنویسان تازه کار هم انتظار نمیرود که بتوانند به درستی مشکلات کد را شناسایی کنند؛ در نتیجه معمولاً کد را بدون بررسی تأیید کرده و وارد پروژه میکنند. اگر هم خطایی رخ دهد، دوباره به هوش مصنوعی مراجعه میکنند تا کد را اصلاح کند و این چرخه ممکن است چندین بار تکرار شود تا شاید در نهایت کد درست کار کند.
اگر برنامه نویس حرفهای هستید و به کدهای تولید شده توسط هوش مصنوعی اعتماد کامل ندارید، بهتر است از بخش «Ask» در ویرایشگر های هوش مصنوعی استفاده کنید. ابتدا سوالات خود را بپرسید و کد را بررسی کنید، سپس فقط بخش هایی را که از صحت آن مطمئن هستید وارد پروژه کنید. این روش باعث میشود احتمال خطا در پروژه به طور قابل توجهی کاهش پیدا کند.
#هوش_مصنوعی
@TheRaymondDev
👍3❤2
Forwarded from یک برنامه نویس تنبل
🔶 شرکت Letsencrypt در به روزرسانی مستندات خود اعلام کرد که قادر به ارائه خدمات گواهی SSL در کشورهای تحت تحریم آمریکا نیست.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
😐3
Forwarded from Foad Labs
🚀 سری ۵ قسمتی: Next.js Architecture Mastery
🟠 پارت ۴ — اولین تفکیک (UI vs Logic)
تا اینجا دیدیم معماری بد چطور پروژه رو فلج میکنه. حالا وقتشه اولین و مهمترین قدم رو برای نجات پروژه برداریم :
جدا کردن ظاهر (UI) از منطق (Logic).
Components vs Services
بزرگترین اشتباه اینه که ما میایم توی کامپوننت خودمون (مثلا فرم ثبتنام) کاری میکنیم که کامپوننت مستقیما بدونه دیتا چطوری فچ میشه یا به کدوم API ریکوئست میزنه.
کامپوننت باید "کودن" (Dumb) باشه! یعنی فقط وظیفه داره پراپس یا دیتا رو بگیره و ظاهر رو نشون بده. منطق کار (مثل کال کردن API) باید بره تو یه لایه ی دیگه، مثلا فولدری به اسم
استارت ذهنیت لایه بندی
با این کار، به جای یه فایل شلوغ که همهچیز توشه، دوتا فایل تمیز داری :
که فقط کارش گرفتن دیتای کاربر از API هست.
که فقط دیتایی که از سرویس گرفته رو خوشگل نشون میده.
چرا این کار واجبه؟
قابلیت استفاده مجدد : اگه یه جای دیگه پروژه هم دیتای کاربر رو خواستی، فقط سرویس رو صدا میزنی، نه اینکه دوباره کد فچ بنویسی.
نگهداری راحتتر : اگه آدرس API عوض شد، فقط یه فایل (سرویس) رو ادیت میکنی، نه ۱۰ تا کامپوننت رو!
👇 برای امروز اینو یادت باشه هربار که میخای یه کامپوننت بسازی :
کامپوننتهای تو نبایدباهوش باشن
اونا فقط باید خوشگل دیتارو نشون بدن!
#Labs_fiveStepToMasterInNextArchitecture
🟠 پارت ۴ — اولین تفکیک (UI vs Logic)
تا اینجا دیدیم معماری بد چطور پروژه رو فلج میکنه. حالا وقتشه اولین و مهمترین قدم رو برای نجات پروژه برداریم :
جدا کردن ظاهر (UI) از منطق (Logic).
Components vs Services
بزرگترین اشتباه اینه که ما میایم توی کامپوننت خودمون (مثلا فرم ثبتنام) کاری میکنیم که کامپوننت مستقیما بدونه دیتا چطوری فچ میشه یا به کدوم API ریکوئست میزنه.
کامپوننت باید "کودن" (Dumb) باشه! یعنی فقط وظیفه داره پراپس یا دیتا رو بگیره و ظاهر رو نشون بده. منطق کار (مثل کال کردن API) باید بره تو یه لایه ی دیگه، مثلا فولدری به اسم
services/ یا lib/.استارت ذهنیت لایه بندی
با این کار، به جای یه فایل شلوغ که همهچیز توشه، دوتا فایل تمیز داری :
UserService.ts:که فقط کارش گرفتن دیتای کاربر از API هست.
UserProfile.tsx: که فقط دیتایی که از سرویس گرفته رو خوشگل نشون میده.
چرا این کار واجبه؟
قابلیت استفاده مجدد : اگه یه جای دیگه پروژه هم دیتای کاربر رو خواستی، فقط سرویس رو صدا میزنی، نه اینکه دوباره کد فچ بنویسی.
نگهداری راحتتر : اگه آدرس API عوض شد، فقط یه فایل (سرویس) رو ادیت میکنی، نه ۱۰ تا کامپوننت رو!
👇 برای امروز اینو یادت باشه هربار که میخای یه کامپوننت بسازی :
کامپوننتهای تو نباید
اونا فقط باید خوشگل دیتارو نشون بدن!
#Labs_fiveStepToMasterInNextArchitecture
بیشتر ما مینویسیم:
اما اگه انتظار دارین دقیقاً یک رکورد وجود داشته باشه، "sole()" میتونه انتخب بهتری باشه:
تفاوتشون؟
شرایطی رو تصور کنید که به اشتباه دو رکورد با ایمیل یکسان داریم.
اگه از sole استفاده کنیم بهمون خطا میده چون انتظار داره فقط یک رکورد برگرده،
اما firstOrFail میره و اولین رکورد رو برامون میاره
✅ "firstOrFail()"
- اگه رکوردی نباشد : خطا
- اگر چند رکورد باشن : اولین رکورد رو برمیگردونه
✅ "sole()"
- اگه رکوردی نباشه :خطا
- اگر چند رکورد باشد : خطا
این تفاوت باعث میشه اگر دادههای تکراری به اشتباه وارد دیتابیس بشن، خیلی زودتر متوجه مشکل بشیم.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/i/status/2062587421121028409
$user = User::where('email', $email)->firstOrFail();اما اگه انتظار دارین دقیقاً یک رکورد وجود داشته باشه، "sole()" میتونه انتخب بهتری باشه:
$user = User::where('email', $email)->sole();تفاوتشون؟
شرایطی رو تصور کنید که به اشتباه دو رکورد با ایمیل یکسان داریم.
اگه از sole استفاده کنیم بهمون خطا میده چون انتظار داره فقط یک رکورد برگرده،
اما firstOrFail میره و اولین رکورد رو برامون میاره
✅ "firstOrFail()"
- اگه رکوردی نباشد : خطا
- اگر چند رکورد باشن : اولین رکورد رو برمیگردونه
✅ "sole()"
- اگه رکوردی نباشه :خطا
- اگر چند رکورد باشد : خطا
این تفاوت باعث میشه اگر دادههای تکراری به اشتباه وارد دیتابیس بشن، خیلی زودتر متوجه مشکل بشیم.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/i/status/2062587421121028409
X (formerly Twitter)
Punyapal Shah (@MrPunyapal) on X
Laravel tip:
If your query should return exactly one record, `sole()` expresses that intent better than `firstOrFail()`.
It will fail if zero records exist and also if multiple records exist.
Small difference. Big guarantee. 👇
If your query should return exactly one record, `sole()` expresses that intent better than `firstOrFail()`.
It will fail if zero records exist and also if multiple records exist.
Small difference. Big guarantee. 👇
👍8❤1🤝1
Forwarded from Code Lab (Negar)
🥽اگر میخوای افکتای شیشه ای توی پروژت استفاده کنی اما وقتشو نداری و دنبال یه ابزاری که این کارو برات انجام بده. Aether CSS این کارو میکنه.
این ابزار میتونه Liquid Glass های محبوب رو مثل Glassmorphism خیلی سریع Generate کنه و با یه رابط کاربری ساده میتونی کاستومش کنی و کد CSS اشو برای پروژه خودت استفاده کنی.
🔗 https://aethercss.lovable.app
❕این ابزار اول راهه و جای کار داره ولی با این حال مفیده.
#css
CODELAB | GpCodeLab
این ابزار میتونه Liquid Glass های محبوب رو مثل Glassmorphism خیلی سریع Generate کنه و با یه رابط کاربری ساده میتونی کاستومش کنی و کد CSS اشو برای پروژه خودت استفاده کنی.
🔗 https://aethercss.lovable.app
❕این ابزار اول راهه و جای کار داره ولی با این حال مفیده.
#css
CODELAB | GpCodeLab
❤3👍2⚡1
Forwarded from Foad Labs
☝🏻 قدم اول
خیلیها فکر میکنن دیزاین سیستم یعنی همون فایل فیگما که طراح بهمون میده. اما تو دنیای مهندسی نرمافزار، دیزاین سیستم خودش یک "محصول" است که به محصولات دیگر سرویس میده!
حالا این یعنی چی دقیقا؟ 🤔
دیزاین سیستم چیست؟
🎨 مجموعهای یکپارچه از عناصر رابط کاربری (UI) قابل استفاده مجدد هست که تیمها برای ساخت محصولاتشون از اونها استفاده میکنن تا یک تجربه کاربری (UX) کاملا سازگار و استاندارد خلق کنن.
مثلا فرض کنین توی شرکتی کار میکنین که ۳ تا پروژه مختلف داره :
۱. سایت اصلی (Landing Page)
۲. پنل ادمین
۳. داشبورد مشتریان
❌ بدون دیزاین سیستم : شما باید کدِ یه دکمه یا فرم ساده رو حداقل ۳ بار توی این پروژهها تکرار کنید! 🤦♂️
✅ با دیزاین سیستم : بدون هیچ تکرار کدی، همهچیز از یک منبع مشترک فراخوانی میشه
در واقع این دیزاین سیستم به عنوان یه مرجع حقیقی (Single Source of Truth) برای پروژههای شرکت عمل میکنه 🎯
حالا جادوی اصلی کجاست؟ برای مثال، شرکت ریبرند (Re-brand) میکنه و تصمیم میگیره رنگ اصلی برند و تمام پروژههاش رو به «آبی» تغییر بده اگه دیزاین سیستم نداشته باشی، باید بری هزاران فایل رو تو پروژههای مختلف پیدا کنی و دستی تغییر بدی. اما با دیزاین سیستم، فقط کافیه رنگ رو توی همون کتابخونهی مرجع عوض کنی؛ با همین یک تغییر، رنگ تمام پروژههای شرکت به صورت یکپارچه و خودکار آپدیت میشه ⚡️😎
خیلیها فکر میکنن دیزاین سیستم یعنی همون فایل فیگما که طراح بهمون میده. اما تو دنیای مهندسی نرمافزار، دیزاین سیستم خودش یک "محصول" است که به محصولات دیگر سرویس میده!
حالا این یعنی چی دقیقا؟ 🤔
دیزاین سیستم چیست؟
🎨 مجموعهای یکپارچه از عناصر رابط کاربری (UI) قابل استفاده مجدد هست که تیمها برای ساخت محصولاتشون از اونها استفاده میکنن تا یک تجربه کاربری (UX) کاملا سازگار و استاندارد خلق کنن.
مثلا فرض کنین توی شرکتی کار میکنین که ۳ تا پروژه مختلف داره :
۱. سایت اصلی (Landing Page)
۲. پنل ادمین
۳. داشبورد مشتریان
❌ بدون دیزاین سیستم : شما باید کدِ یه دکمه یا فرم ساده رو حداقل ۳ بار توی این پروژهها تکرار کنید! 🤦♂️
✅ با دیزاین سیستم : بدون هیچ تکرار کدی، همهچیز از یک منبع مشترک فراخوانی میشه
import { Button } from '@company/design-system'در واقع این دیزاین سیستم به عنوان یه مرجع حقیقی (Single Source of Truth) برای پروژههای شرکت عمل میکنه 🎯
حالا جادوی اصلی کجاست؟ برای مثال، شرکت ریبرند (Re-brand) میکنه و تصمیم میگیره رنگ اصلی برند و تمام پروژههاش رو به «آبی» تغییر بده اگه دیزاین سیستم نداشته باشی، باید بری هزاران فایل رو تو پروژههای مختلف پیدا کنی و دستی تغییر بدی. اما با دیزاین سیستم، فقط کافیه رنگ رو توی همون کتابخونهی مرجع عوض کنی؛ با همین یک تغییر، رنگ تمام پروژههای شرکت به صورت یکپارچه و خودکار آپدیت میشه ⚡️😎
Forwarded from یک برنامه نویس تنبل
🔶 افزونه KiloCode هوش مصنوعی نسخه Auto اش رایگان است!!!! و حدود ۲۵۶ هزار توکن در هر تسک جدید اختصاص می دهد.
نسبت به مدل های رایگان دیگر بهتر عمل می کند و احتمالا برای Auto از مدل های Hy3 شرکت Tencent و Step 3.7 Flash شرکت StepFun استفاده می کند!
این افزونه برای محصولات جت برینز و VSCode موجود است.
@TheRaymondDev
نسبت به مدل های رایگان دیگر بهتر عمل می کند و احتمالا برای Auto از مدل های Hy3 شرکت Tencent و Step 3.7 Flash شرکت StepFun استفاده می کند!
این افزونه برای محصولات جت برینز و VSCode موجود است.
@TheRaymondDev
❤1
Forwarded from DevTwitter | توییت برنامه نویسی
یکی از قابلیتهای کمتر شناختهشدهی Laravel.
به جای حدس زدن اینکه یک تغییر باعث بهبود عملکرد شده یا نه، باید اندازهگیری کنی.
خیلی اوقات ما تغییراتی توی کد میدیم و براساس تجربیات دیگران یا داکیومنت حس میکنیم سریعتر شده.
گاهی جواب نمیده، ساعتها وقت صرف Refactor میکنیم اما در نهایت تفاوت عملکرد یا ناچیزه یا حتی بدتر از قبل!
با Benchmark میتونی دو یا چند پیادهسازی مختلف رو کنار هم اجرا کنی و زمان واقعی اجرای هر کدوم رو ببینی.
این دقیقا تفاوت بین Optimization و Guessing هست. بهینهسازی واقعی با احساس انجام نمیشه، با داده انجام میشه.
اگر تا امروز از Benchmark استفاده نکردی، احتمالا ارزش داره توی پروژه بعدیت امتحانش کنی
@DevTwitter | <Ehsan Rezaei/>
به جای حدس زدن اینکه یک تغییر باعث بهبود عملکرد شده یا نه، باید اندازهگیری کنی.
خیلی اوقات ما تغییراتی توی کد میدیم و براساس تجربیات دیگران یا داکیومنت حس میکنیم سریعتر شده.
گاهی جواب نمیده، ساعتها وقت صرف Refactor میکنیم اما در نهایت تفاوت عملکرد یا ناچیزه یا حتی بدتر از قبل!
با Benchmark میتونی دو یا چند پیادهسازی مختلف رو کنار هم اجرا کنی و زمان واقعی اجرای هر کدوم رو ببینی.
این دقیقا تفاوت بین Optimization و Guessing هست. بهینهسازی واقعی با احساس انجام نمیشه، با داده انجام میشه.
اگر تا امروز از Benchmark استفاده نکردی، احتمالا ارزش داره توی پروژه بعدیت امتحانش کنی
@DevTwitter | <Ehsan Rezaei/>
👍7❤6
Forwarded from یک برنامه نویس تنبل
🔶 پشت پرده سایت های هوش مصنوعی رایگان
این روزها چندین سایت ادعا می کنند که همه مدل های هوش مصنوعی را با میلیون ها توکن رایگان در اختیار کاربران قرار میدهند. اما آیا واقعاً چنین چیزی امکانپذیر است؟
اجرای مدل های بزرگ هوش مصنوعی به هزاران GPU و دیتاسنتر های قدرتمند نیاز دارد؛ زیرساختی که هزینه راهاندازی و نگهداری آن به میلیونها و حتی میلیاردها دلار میرسد. با این حال، بسیاری از این سایت ها هیچ اطلاعات شفافی درباره زیرساخت، شرکت ارائه دهنده یا منبع سرویس خود منتشر نمیکنند.
نکته جالب تر اینکه ظاهر، امکانات و حتی عملکرد بسیاری از این وب سایت ها تقریباً یکسان است. این موضوع نشان میدهد که احتمالاً بخش بزرگی از آنها تنها از یک API یا سرویس واسط مشترک استفاده میکنند؛ درست مانند ریسلر های هاست که خدمات یک دیتاسنتر را با نام های مختلف ارائه میدهند.
نتیجه هم معمولاً مشخص است؛ سرعت پایین، قطعی های مکرر، خطا های Timeout و ناپایداری سرویس. اگر یک سرویس واقعاً زیرساخت قدرتمندی داشته باشد، انتظار میرود عملکردی پایدار و قابل اعتماد ارائه دهد.
البته استفاده از API شرکت های دیگر ایرادی ندارد و بسیاری از کسب و کار های معتبر نیز از همین مدل استفاده میکنند. اما وعده هایی مانند «همه مدل ها، رایگان، نامحدود و بدون محدودیت» ادعاهایی هستند که باید با دید تردید به آنها نگاه کرد.
در دنیای هوش مصنوعی، پردازش در مقیاس بزرگ رایگان نیست و همیشه هزینه قابل توجهی دارد. به همین دلیل، بخش قابل توجهی از آنها یا وعده هایی فراتر از توان واقعی خود میدهند، یا سرویس ناپایدار و بی کیفیتی ارائه میکنند.
#هوش_مصنوعی
@TheRaymondDev
این روزها چندین سایت ادعا می کنند که همه مدل های هوش مصنوعی را با میلیون ها توکن رایگان در اختیار کاربران قرار میدهند. اما آیا واقعاً چنین چیزی امکانپذیر است؟
اجرای مدل های بزرگ هوش مصنوعی به هزاران GPU و دیتاسنتر های قدرتمند نیاز دارد؛ زیرساختی که هزینه راهاندازی و نگهداری آن به میلیونها و حتی میلیاردها دلار میرسد. با این حال، بسیاری از این سایت ها هیچ اطلاعات شفافی درباره زیرساخت، شرکت ارائه دهنده یا منبع سرویس خود منتشر نمیکنند.
نکته جالب تر اینکه ظاهر، امکانات و حتی عملکرد بسیاری از این وب سایت ها تقریباً یکسان است. این موضوع نشان میدهد که احتمالاً بخش بزرگی از آنها تنها از یک API یا سرویس واسط مشترک استفاده میکنند؛ درست مانند ریسلر های هاست که خدمات یک دیتاسنتر را با نام های مختلف ارائه میدهند.
نتیجه هم معمولاً مشخص است؛ سرعت پایین، قطعی های مکرر، خطا های Timeout و ناپایداری سرویس. اگر یک سرویس واقعاً زیرساخت قدرتمندی داشته باشد، انتظار میرود عملکردی پایدار و قابل اعتماد ارائه دهد.
البته استفاده از API شرکت های دیگر ایرادی ندارد و بسیاری از کسب و کار های معتبر نیز از همین مدل استفاده میکنند. اما وعده هایی مانند «همه مدل ها، رایگان، نامحدود و بدون محدودیت» ادعاهایی هستند که باید با دید تردید به آنها نگاه کرد.
در دنیای هوش مصنوعی، پردازش در مقیاس بزرگ رایگان نیست و همیشه هزینه قابل توجهی دارد. به همین دلیل، بخش قابل توجهی از آنها یا وعده هایی فراتر از توان واقعی خود میدهند، یا سرویس ناپایدار و بی کیفیتی ارائه میکنند.
#هوش_مصنوعی
@TheRaymondDev
👍1