فرض کن چند سال دیگه هوش مصنوعی بتونه خیلی از کارهای انسانی رو سریعتر و دقیقتر انجام بده. آیا باید اجازه بدیم همهی این کارها رو به AI بسپاریم؟
ایدهی جالبی که در بحث آیندهی کار مطرح شده اینه که شاید بعضی شغلها حتی اگر AI بتونه انجامشون بده، بهتر باشه همچنان برای انسان باقی بمونن؛ نه به خاطر اینکه AI توانایی انجامشون رو نداره، بلکه چون خودِ حضور انسان، ارتباط و مسئولیتی که به عهده میگیره بخشی از ارزش اون کاره.پس سؤال آینده فقط این نیست که «AI چه کارهایی میتونه انجام بده؟»شاید سؤال مهمتر این باشه: چه کارهایی رو میخوایم همچنان انسانها انجام بدن؟
بیشتر اینجا بخونید
@ClickUniversity
ایدهی جالبی که در بحث آیندهی کار مطرح شده اینه که شاید بعضی شغلها حتی اگر AI بتونه انجامشون بده، بهتر باشه همچنان برای انسان باقی بمونن؛ نه به خاطر اینکه AI توانایی انجامشون رو نداره، بلکه چون خودِ حضور انسان، ارتباط و مسئولیتی که به عهده میگیره بخشی از ارزش اون کاره.پس سؤال آینده فقط این نیست که «AI چه کارهایی میتونه انجام بده؟»شاید سؤال مهمتر این باشه: چه کارهایی رو میخوایم همچنان انسانها انجام بدن؟
بیشتر اینجا بخونید
@ClickUniversity
هممون میدونیم که Ux چقدر توی فروش محصول و ارزش دادن خدمات شما تاثیر گذار و مهمه؛ اما اینجا یه اشتباه بزرگی برای یسری از افراد پیش میاد:
اون افراد فکر میکنند که اگر سایتشونرنگی رنگی باشه و هزاران انیمیشن بریزن تو سایتشون ، یعنی Ux.
اما غلطه. دقت کنین که هرچیز قشنگی، به کاربر سایت یا اپ شما کمک نمیکنه.
@ClickUniversity
اون افراد فکر میکنند که اگر سایتشون
اما غلطه. دقت کنین که هرچیز قشنگی، به کاربر سایت یا اپ شما کمک نمیکنه.
خیلی ساده و روزمره مثال بزنم، پاستیل خیلی چیز جذاب و خفنیه، اما به سلامتی شما کمک نمیکنه. درعوض کاهو، درسته خیلی سادست و نه گیاه زیباییه نه حتی طعم داره! اما یعالمه خاصیت برای بدن داره.
مثال توی مارکت واقعی بزنم؟ باشه.
سافت ۹۸، یکی از بازدیدترین سایت های ایران. فکر میکنید این ابر سایت نمیتونه ۱۰۰ تا متخصص js بگیره که سایتشو پر انیمیشن کنن؟ مطمئنا میتونه. اما نمیکنه. چرا؟ چون نیازی بهش نداره و کاربراش بهترین تجربه کاربری رو دارن. با ۲ تا کلیک برنامه رو دانلود میکنین و تمام.
@ClickUniversity
اگر بهعنوان یک توسعهدهنده JavaScript و React کار میکنید، بهینهسازی Performance یکی از مهارتهای مهمیه که باید دائماً روش کار کنید.
این مقاله ۱۰ نکته کاربردی برای بهبود عملکرد اپلیکیشنهای React رو بررسی میکنه.
🔗 Read
@ClickUniversity
این مقاله ۱۰ نکته کاربردی برای بهبود عملکرد اپلیکیشنهای React رو بررسی میکنه.
🔗 Read
@ClickUniversity
شرکت TypeSafe اومده یه مدلی به اسم Jev،که توسط دیوگو آلمیدا (از محققان سابق OpenAI و از سازندگان ChatGPT) ساخته شده رو ارائه داده ،این مدل با مدلهای زبانی معمولی مثل ChatGPT فرق داره؛ Jev متن تولید نمیکنه، بلکه فقط تصمیمهای سریع میگیره و به جای جواب دادن با جمله، مستقیم یک انتخاب، امتیاز یا احتمال برمیگردونه.
چطور ازش استفاده کنم؟
استفاده از Jev سادهست. شما دو چیز بهش میدید: یک وضعیت (state) و یک یا چند سوال (question). بعدش Jev جوابهای مشخص و قابل برنامهنویسی برمیگردونه. سه نوع سوال داره:
· اولی Choice (انتخاب): از بین یک لیست گزینه، یکی رو انتخاب میکنه. مثلاً «این تیکت باید به کدوم تیم بره؟»
· دومیScore(امتیاز): یک چیز رو با یک مقیاس عددی میسنجه. مثلاً «این مشتری چقدر عصبانیه؟»
· سومی Naul (بله/خیر): احتمال درست بودن یک جمله رو بین ۰ تا ۱ برمیگردونه. مثلاً «آیا این مشتری درخواست بازگشت وجه کرده؟»
یه مثال ساده
فرض کن یک ایمیل پشتیبانی داری و میخوای بدونی چقدر فوریه. کافیه به Jev بگی:
وضعیت: «سه روزه که مشکل پرداخت دارم و کسی جوابم رو نداده.»
سوال: «این پیام فوریت داره؟» (نوع Noul)
مدل Jev مستقیم برمیگردونه: ۰.۹۷ (یعنی ۹۷٪ احتمال داره که فوریه).
مزیت اصلیش چیه؟
سرعتش خیلی بالاتره (۷۰ تا ۵۰۰ میلیثانیه) و هزینهاش خیلی کمتره. TypeSafe ادعا میکنه در بعضی کارها تا ۲۰۰ برابر سریعتر و ۴۰۰ برابر ارزونتر از مدلهای زبانی بزرگه، چون از تولید متن پرهیز میکنه و فقط تصمیم میگیره. همین باعث شده برای کارهای تکراری داخل برنامهها (مثل مسیریابی، دستهبندی، فیلتر کردن) خیلی مناسب باشه.
اگه بخوای امتحانش کنی، باید توی سایت TypeSafe توی لیست انتظار (Waitlist) ثبتنام کنی تا دعوتنامه برات بیاد.
اینم سایتش ، سایت ش هم خیلی باحاله ؛) https://typesafe.ai/
@ClickUniversity
چطور ازش استفاده کنم؟
استفاده از Jev سادهست. شما دو چیز بهش میدید: یک وضعیت (state) و یک یا چند سوال (question). بعدش Jev جوابهای مشخص و قابل برنامهنویسی برمیگردونه. سه نوع سوال داره:
· اولی Choice (انتخاب): از بین یک لیست گزینه، یکی رو انتخاب میکنه. مثلاً «این تیکت باید به کدوم تیم بره؟»
· دومیScore(امتیاز): یک چیز رو با یک مقیاس عددی میسنجه. مثلاً «این مشتری چقدر عصبانیه؟»
· سومی Naul (بله/خیر): احتمال درست بودن یک جمله رو بین ۰ تا ۱ برمیگردونه. مثلاً «آیا این مشتری درخواست بازگشت وجه کرده؟»
یه مثال ساده
فرض کن یک ایمیل پشتیبانی داری و میخوای بدونی چقدر فوریه. کافیه به Jev بگی:
وضعیت: «سه روزه که مشکل پرداخت دارم و کسی جوابم رو نداده.»
سوال: «این پیام فوریت داره؟» (نوع Noul)
مدل Jev مستقیم برمیگردونه: ۰.۹۷ (یعنی ۹۷٪ احتمال داره که فوریه).
مزیت اصلیش چیه؟
سرعتش خیلی بالاتره (۷۰ تا ۵۰۰ میلیثانیه) و هزینهاش خیلی کمتره. TypeSafe ادعا میکنه در بعضی کارها تا ۲۰۰ برابر سریعتر و ۴۰۰ برابر ارزونتر از مدلهای زبانی بزرگه، چون از تولید متن پرهیز میکنه و فقط تصمیم میگیره. همین باعث شده برای کارهای تکراری داخل برنامهها (مثل مسیریابی، دستهبندی، فیلتر کردن) خیلی مناسب باشه.
اگه بخوای امتحانش کنی، باید توی سایت TypeSafe توی لیست انتظار (Waitlist) ثبتنام کنی تا دعوتنامه برات بیاد.
اینم سایتش ، سایت ش هم خیلی باحاله ؛) https://typesafe.ai/
@ClickUniversity
۴ قابلیت TypeScript، زمانی خودشو نشون میده که پروژه بزرگ شده باشه.
🔹 1. satisfies
این Object باید این ساختار را داشته باشد.
🔹 2. never
مطمئن شو هیچ حالت/Caseای جا نمانده.
🔹 3. Branded Types
این دو string/number نباید با هم قاطی شوند.
🔹 4. Template Literal Types
این string باید الگوی خاصی داشته باشد.
ــــــــــــــــــــــــــــــــــــ
📌 پ.ن:
در یک پست اختصاصی میام چند مثال از هر یک اینها میزنم که تا راحت مطلب جا بیوفته.
@ClickUniversity
🔹 1. satisfies
این Object باید این ساختار را داشته باشد.
🔹 2. never
مطمئن شو هیچ حالت/Caseای جا نمانده.
🔹 3. Branded Types
این دو string/number نباید با هم قاطی شوند.
🔹 4. Template Literal Types
این string باید الگوی خاصی داشته باشد.
ــــــــــــــــــــــــــــــــــــ
📌 پ.ن:
در یک پست اختصاصی میام چند مثال از هر یک اینها میزنم که تا راحت مطلب جا بیوفته.
@ClickUniversity
مدل Jev که اینجا معرفی کردیم و واقعا سرو صدا کرده با ۱۲۰ میلیون توکن رایگان در اختیار همه کاربران قرار گرفت.
من خواستم اشتراکش رو بگیرم ولی الان واقعا خوشحالم که رایگانه حتما تستش کنید لذت دنیا رو میبرید، بسیار وحشی و قویه.
http://console.typesafe.ai
درواقع رایگان نشده، اول به ایمیلتون ۵ دلار شارژ میده و با استفاده از این ۵ دلار ۱۲۰ میلیون توکن میتونید فعال کنید.
@ClickUniversity
من خواستم اشتراکش رو بگیرم ولی الان واقعا خوشحالم که رایگانه حتما تستش کنید لذت دنیا رو میبرید، بسیار وحشی و قویه.
http://console.typesafe.ai
درواقع رایگان نشده، اول به ایمیلتون ۵ دلار شارژ میده و با استفاده از این ۵ دلار ۱۲۰ میلیون توکن میتونید فعال کنید.
@ClickUniversity
سلام.
یه پروژه یی هست به نام Blobatar ٬ و ایدش اینکه که برای ساخت تصویر پروفایل٬دگه لازم نباشه عکس آپلود کنیم.
نکتهی جالب اینه که تولید آواتار deterministic هستش یعنی قابلی پیش بینیه٬ بطور مثال اگه دوباره بنویسی امیر همون دوبار اواتار امیر رو میده یعنی جدید نمیده هربار رندوم باشه.
حالا چه مزیتی داره؟
نیاز به ذخیره سازی عکس کاربر نیست.
حجم تصاویر پروفایل حذف میشود.
آواتارها بهصورت خودکار ساخته میشوند.
برای هر username میتوان یک ظاهر ثابت داشت.
در کجا ها کاربردیه؟
برای پروژههایی مثل کامنت، چت، شبکه اجتماعی و داشبورد خیلی کاربردیه.
🔗Link
@ClickUniversity
یه پروژه یی هست به نام Blobatar ٬ و ایدش اینکه که برای ساخت تصویر پروفایل٬دگه لازم نباشه عکس آپلود کنیم.
نکتهی جالب اینه که تولید آواتار deterministic هستش یعنی قابلی پیش بینیه٬ بطور مثال اگه دوباره بنویسی امیر همون دوبار اواتار امیر رو میده یعنی جدید نمیده هربار رندوم باشه.
حالا چه مزیتی داره؟
نیاز به ذخیره سازی عکس کاربر نیست.
حجم تصاویر پروفایل حذف میشود.
آواتارها بهصورت خودکار ساخته میشوند.
برای هر username میتوان یک ظاهر ثابت داشت.
در کجا ها کاربردیه؟
برای پروژههایی مثل کامنت، چت، شبکه اجتماعی و داشبورد خیلی کاربردیه.
🔗Link
@ClickUniversity
خیلی وقت ها توی پایتون مجبور میشیم برای یه عملیات ساده، یه function چند خطی با def تعریف کنیم. اما امروز میخوام بهتون بگم که سینتکس lambda این مشکل رو حل میکنه.
بزارید توی یه مثال خیلی ساده اینو بهتون بگم. فرض کنید میخواید یه تابع تعریف کنید که عدد رو 2 برابر کنه؛
با def :
اما باlambda :
@ClickUniversity
بزارید توی یه مثال خیلی ساده اینو بهتون بگم. فرض کنید میخواید یه تابع تعریف کنید که عدد رو 2 برابر کنه؛
با def :
def double(x):
return x * 2
print(double(5)) # 10
اما با
double = lambda x: x * 2
print(double(5)) # 10
@ClickUniversity
مجموعهای عالی از منابع Python
A Great Collection of Python Resources
یک مجموعه از منابع آموزشی پایتون که برای یادگیری و عمیقتر شدن در اکوسیستم پایتون جمعآوری شده.
اگر دنبال منابع مختلف براش هستید، این لینک میتونه نقطه شروع خوبی باشه.
🔗 Link
@ClickUniversity
A Great Collection of Python Resources
یک مجموعه از منابع آموزشی پایتون که برای یادگیری و عمیقتر شدن در اکوسیستم پایتون جمعآوری شده.
اگر دنبال منابع مختلف براش هستید، این لینک میتونه نقطه شروع خوبی باشه.
🔗 Link
@ClickUniversity
هوش مصنوعی ها در عصر دیزاین پترن ها.
با ورود AI، نقش Design Patternها هم داره تغییر میکنه،
امروز AI میتونه Pattern پیشنهاد بده یا حتی پیادهسازیش کنه؛
پس سؤال مهمتر اینه:
اصلاً اینجا به Pattern نیاز دارم؟
این مقاله سوال هایی که ممکنه پیش بیاد رو برسی کرده.
🔗 Link
@ClickUniversity
با ورود AI، نقش Design Patternها هم داره تغییر میکنه،
امروز AI میتونه Pattern پیشنهاد بده یا حتی پیادهسازیش کنه؛
پس سؤال مهمتر اینه:
اصلاً اینجا به Pattern نیاز دارم؟
این مقاله سوال هایی که ممکنه پیش بیاد رو برسی کرده.
🔗 Link
@ClickUniversity
سلام.
یه ابزاری هست به نام MobX، کارش چیه؟
قضیه ازین قراره که این ابزار مثل ابزار Redux ، میاد روی State مدیریت میکنه.
خوب حالا فرقش چیه هردو که در عمل یکین؟
این MobX این عمل کرد رو داره :
اما Redux این عمل کرد رو داره:
خوب جای مقایسه زیاد داره اما همش نمیگنجه که بگم داخل این پست.
@ClickUniversity
یه ابزاری هست به نام MobX، کارش چیه؟
قضیه ازین قراره که این ابزار مثل ابزار Redux ، میاد روی State مدیریت میکنه.
خوب حالا فرقش چیه هردو که در عمل یکین؟
این MobX این عمل کرد رو داره :
کدنویسی نسبتاً ساده و کمحجم
کمتر درگیر dispatch و reducer میشوی
برای Stateهای پیچیده و آبجکتهای زیاد راحت است
اما Redux این عمل کرد رو داره:
یادگیریش کمی کمی پیچیدهتر
حجم کد معمولاً بیشتره
ساختاریافتهتر
خوب جای مقایسه زیاد داره اما همش نمیگنجه که بگم داخل این پست.
@ClickUniversity
چطور ممکنه کسی علناً بگه «AI میتونه نابودمون کنه» ولی خودش شبانهروزی داره همون رو میسازه و سرعتش رو هم بیشتر میکنه؟ خب، این مقاله میگه جوابش فقط طمع و ریاکاری نیست، بلکه سه تا چیز دست به دست هم دادن که عملاً توقف رو غیرممکن میکنه: اول، شرکتها تو یه دوراهی زندانی گیر افتادن — هیچکس به اون یکی اعتماد نداره، میترسه کند شه و رقیبش بزنه جلو، پس همه گاز میدن! دوم، حتی اگه بخوان بایستن، مدلهایی که قبلاً منتشر شدن دیگه تو دست همه پخشه و جمعکردنشون نشدنیه. سوم، دولتها هم که وارد شدن — آمریکا و چین به هم اعتماد ندارن و AI شده زیرساخت امنیت ملی، پس هر کی فکر میکنه اون یکی جلو زده، بیشتر فشار میاره. نتیجه؟ یه «قفلشدگی کامل» که هر روز محکمترم میشه و مشکل هم از آدم بده نیست، خودِ سیستم طوریه که نگهداشتنش تقریباً محاله!
حالا اگه دوست داشتی خودت متن کامل رو بخونی، برو اینجا 👇
📃 Link
@ClickUniversity
حالا اگه دوست داشتی خودت متن کامل رو بخونی، برو اینجا 👇
📃 Link
@ClickUniversity
اسم pnpm رو احتمالا کمتر شنیدید و هرچی شنیدید بیشتر npm بوده٬ حالا فرقشون چیه باهم٬ در حالی که هردو بر مدیریت پکیچ های nodejs تمرکز دارن؟
pnpm:
npm:
الان که فرقشون رو فهمیدید انتخاب با خود شماست که از کدوم استفاده میکنید.
@ClickUniversity
pnpm:
مصرف فضای دیسک: کمتر
سرعت نصب: معمولاً سریعتر
محبوبیت/سازگاری: بسیار محبوب، مخصوصاً در پروژههای مدرن
npm:
مصرف فضای دیسک: بیشتر
سرعت نصب: خوب
محبوبیت/سازگاری : بسیار گسترده و استاندارد
الان که فرقشون رو فهمیدید انتخاب با خود شماست که از کدوم استفاده میکنید.
@ClickUniversity
این وبسایت میاد اشکال های مختلف هندسی و غیر هندسی رو در دسترس شما ها قرار میده و میتونید با اضافه کردن ادویه خلاقیت ٬ بهترین تجربه کاربری رو خلق کنین.
🔗Link
@ClickUniversity
🔗Link
@ClickUniversity
گیت خراب شد؟ نترس!
Flight Rules for Git
یه راهنمای کاربردی برای وقتی که با Git به مشکل خوردی؛ از اشتباه در commit و rebase گرفته تا چیزهایی که فکر میکنی دیگه قابل برگشت نیستن.
این ریپو می تونه یکی از ریپو هایی باشه که نجات دهندهس.
🔗 Git Flight Rules
@ClickUniversity
Flight Rules for Git
یه راهنمای کاربردی برای وقتی که با Git به مشکل خوردی؛ از اشتباه در commit و rebase گرفته تا چیزهایی که فکر میکنی دیگه قابل برگشت نیستن.
این ریپو می تونه یکی از ریپو هایی باشه که نجات دهندهس.
🔗 Git Flight Rules
@ClickUniversity
🦀 چیزهایی که Rust دارد و C ندارد
وقتی از C به Rust میری، یهسری قابلیتها واقعاً باعث میشن دلت برای Rust تنگ بشه!
از مدیریت حافظه و Resourceها گرفته تا Generics، Traitها، Pattern Matching، تستنویسی و Error Handling؛
این مقاله چندتا از چیزهایی رو بررسی میکنه که Rust توسعه رو امنتر و راحتتر میکنه.
🔗 Read
@ClickUniversity
وقتی از C به Rust میری، یهسری قابلیتها واقعاً باعث میشن دلت برای Rust تنگ بشه!
از مدیریت حافظه و Resourceها گرفته تا Generics، Traitها، Pattern Matching، تستنویسی و Error Handling؛
این مقاله چندتا از چیزهایی رو بررسی میکنه که Rust توسعه رو امنتر و راحتتر میکنه.
🔗 Read
@ClickUniversity
همونطوری که قبلا اشاره کردم و گفتم چند مثال از هر یک اینها میزنم که تا مطالب جا بیوفته برا شما،
آقا در پروژه های بزرگ این تایپ ها :
ممکنه که کارساز نباشن هی دردسر برا شما بتراشن.
اینجاست که این ۴ قابلیت بکارمون میاد:
و حالا اگر بعدا بنویسی :
این بزرگوار یعنی TypeScript بهت هشدار میده که این cancelled رو در switch مدیریت یا نکردی.
ممکنه که این ProductId رو به اشتباه به getUser() میدی اما این Branded Types میاد جلوشو میگیره.
مثلاً میخواهی اسم Eventها همیشه این شکلی باشند:
میتونیم اینو بنویسیم:
حالا اینو بنویسیم:
ولی:
زمانی استفاده میشه که string ها یک الگوی مشخص داره.
@ClickUniversity
آقا در پروژه های بزرگ این تایپ ها :
String
Number
Boolean
ممکنه که کارساز نباشن هی دردسر برا شما بتراشن.
اینجاست که این ۴ قابلیت بکارمون میاد:
satisfies
type Config = {
port: number;
mode: "dev" | "prod";
};
const config = {
port: 3000,
mode: "dev"
} satisfies Config;never
type Status = "loading" | "success" | "error";
function handleStatus(status: Status) {
switch (status) {
case "loading":
return "در حال بارگذاری";
case "success":
return "موفق";
case "error":
return "خطا";
default:
return assertNever(status);
}
}
function assertNever(value: never): never {
throw new Error("Unexpected value");
}
و حالا اگر بعدا بنویسی :
type Status =
| "loading"
| "success"
| "error"
| "cancelled";
این بزرگوار یعنی TypeScript بهت هشدار میده که این cancelled رو در switch مدیریت یا نکردی.
Branded Types
type UserId = string & {
__brand: "UserId";
};
type ProductId = string & {
__brand: "ProductId";
};
function getUser(id: UserId) {}
function getProduct(id: ProductId) {}ممکنه که این ProductId رو به اشتباه به getUser() میدی اما این Branded Types میاد جلوشو میگیره.
Template Literal Types
مثلاً میخواهی اسم Eventها همیشه این شکلی باشند:
user:created
user:deleted
product:created
product:deleted
میتونیم اینو بنویسیم:
type Event = `${"user" | "product"}:${"created" | "deleted"}`حالا اینو بنویسیم:
const event: Event = "user:created"; // ✅
ولی:
const event: Event = "banana:hello"; // ❌
زمانی استفاده میشه که string ها یک الگوی مشخص داره.
@ClickUniversity
یه فرم ورک جدید این روزا اومده اسمش tinyjs هستش که برای ساخت اپ های دسکتاپ (macOS، Windows و Linux) با زبان JavaScript بکار میره٬ که حجم خروجیش (Build) فقط ۶ مگابایت (حدودا٬ چون بسته به برنامه ممکنه حجم زیاد بشه ) هستش.
بریم سراغ معماری:
اما بریم سراغ کامیونتی:
از اونجایی که این فریم ورک تازه متولد شدست انچنان محبوبیت نداره ٬
در حال حاضر در فاز جلب توجه اولیه (Buzz) در رسانهها و انجمنهای تکنولوژی مانند daily.dev، Reddit و Hacker News قرار داره.
@ClickUniversity
بریم سراغ معماری:
بک اند : بر روی موتور txiki.js (ترکیبی از QuickJS و libuv) اجرا میشه و دسترسی کامل به سیستم مانند فایلها، سوکتها، پروسهها، FFI و دیتابیس SQLite داره.
ارتباط (IPC): به جای استفاده از پورت localhost، از طریق Unix socket بین بخش بکاند و فرانتاند ارتباط برقرار میکند.
بدون نیازمندیهای سنگین: نیازی به Electron، Chromium یا اجرای محیط Node.js در زمان اجرا (Runtime) نداره.
فرانتاند (Frontend): از وبویوی نیتیو (Native Webview) سیستمعامل استفاده میکنه.
اما بریم سراغ کامیونتی:
از اونجایی که این فریم ورک تازه متولد شدست انچنان محبوبیت نداره ٬
در حال حاضر در فاز جلب توجه اولیه (Buzz) در رسانهها و انجمنهای تکنولوژی مانند daily.dev، Reddit و Hacker News قرار داره.
@ClickUniversity
این Leptos کاری شبیه به nextjs انجام میده اما به جای JavaScript از Rust استفاده میشه.
با Leptos میتونی:
نقاط قوت:
نقطه ضعف:
بیا باهم یه قطعه کد ساده ازین Leptos ببینیم:
@ClickUniversity
با Leptos میتونی:
رابطهای کاربری تعاملی (Interactive UI) بسازی.
برنامههای Single Page Application (SPA) بسازی.
از Server-Side Rendering (SSR) برای سرعت بهتر استفاده کنی.
کد فرانتاند و بکاند را با یک زبان (Rust) بنویسی.
نقاط قوت:
سرعت بالا (به دلیل Rust و WebAssembly).
امنیت بیشتر نسبت به بسیاری از زبانهای سطح بالاتر.
امکان استفاده مشترک از Rust در فرانتاند و بکاند.
نقطه ضعف:
یادگیری سختتر چون باید Rust یاد بگیری.
اکوسیستم آن هنوز به اندازه nextjs بزرگ نیست.
بیا باهم یه قطعه کد ساده ازین Leptos ببینیم:
#[component]
fn Button() -> impl IntoView {
view! {
<button>
"Click"
</button>
}
}
@ClickUniversity