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
👾 ساخت ربات تلگرام با JavaScript 🤖

برای ساخت ربات تلگرام با جاوا اسکریپت، می‌تونیم از کتابخانه node-telegram-bot-api استفاده کنیم که یکی از محبوب‌ترین راه‌ها برای ساخت ربات تلگرام با Node.js هستش و به شما این اجازه رو ‌میده تا به راحتی ربات‌های تعاملی ایجاد کنید 💥

مزایای استفاده از این کتابخانه

سادگی و سرعت در توسعه: با چند خط کد میتونید ربات تلگرام خودتونو بسازید.

پشتیبانی از API تلگرام: به تمامی امکانات API تلگرام دسترسی دارید.

منابع زیاد و مستندات خوب: یادگیری و توسعه با این کتابخانه به دلیل پشتیبانی مستندات کامل خیلی سادس.

نحوه نصب کتابخانه 🔰

اول از همه باید Node.js رو سیستمون نصب باشه !

حالا با استفاده از npm کتابخانه node-telegram-bot-api رو با استفاده از دستور زیر نصب کنید 🔻

npm install node-telegram-bot-api


ساخت یک ربات ساده تلگرام 🚀

توی این مثال میخوایم یه ربات بسازیم که به دستور /start جواب میده و به کاربر خوشامد می‌گه.

1️⃣ گرفتن توکن API از BotFather
اول باید از BotFather در تلگرام توکن API خود را دریافت کنید. ( آموزش )


2️⃣ نوشتن کد ربات
بعد از دریافت توکن، می‌تونید کد ربات رو با جاوا اسکریپت بنویسید.

برای این کار یک فایل با نام bot.js ایجاد میکنیم و کد زیر رو داخلش قرار میدیم 🔻

const TelegramBot = require('node-telegram-bot-api');

// ایجاد شیء ربات با توکن
const bot = new TelegramBot('YOUR_BOT_TOKEN', { polling: true });

// پاسخ به دستور /start
bot.onText(/\/start/, (msg) => {
bot.sendMessage(msg.chat.id, 'Hey, cooly coder 😎');
});


3️⃣ اجرای ربات
برای اجرای ربات کافیه با Node.js فایلی که ساختیم رو اجرا کنیم 🔻

node bot.js


حالا ربات شما فعاله و اگر در تلگرام دستور /start زو ارسال کنید برای ربات، پیام خوشامدگویی رو دریافت میکنید.

این ربات یک مثال خیلی ساده بود و خودتون میتونید با افزودن ویژگی‌های بیشتر مثل پاسخ به پیام‌ها یا ارسال data به API، ربات‌های خفن تری بسازید 💥

🌐 داکیومنت رسمی node-telegram-bot-api

امیدوارم از این مطلب لذت برده باشید، با ری‌اکشنای خودتون بهمون انرژی بدید ❤️‍🔥

#️⃣ #bot #nodejs #libarary

🚀 @coolycode
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM
می‌دونستین در کمتر از ۱۵۰ خط کد جاوااسکریپت، بدون هیچ وابستگی و بسته‌ای از npm می‌تونین اینجور بازی‌هایی رو بسازین؟

در واقع این نشون می‌ده که فقط با نودجی‌اس و بدون نیاز به blessed یا terminal kit میشه هر نوع برنامه ترمینالی ساخت.

چون اگر بتونیم input و state و output رو کنترل کنیم هر کاری میشه انجام داد.

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

گدرت جاوااسکریپت 💪😁

اگه خواستین بگین تا کدش و توضیحاتشو براتون بذارم.

#آموزش #جاوااسکریپت #بازی
#game #javascript #nodejs
ماژول fs در Node.js چیست ؟

ماژول fs (فایل سیستم) در Node.js برای کار با فایل‌ها و دایرکتوری‌ها استفاده می‌شود. این ماژول امکان خواندن، نوشتن، حذف و مدیریت فایل‌ها رو برای شما فراهم می‌کند.

متدهای مهم file system 🚀
fs.readFile(path, callback)
محتوای فایل رو میخونه و در صورت موفقیت آمیز بودن، اون رو به کال‌بک برمی‌گردونه.

fs.writeFile(path, data, callback)
محتوای پارامتر data رو داخل فایل می‌نویسه و فایل رو بازنویسی می‌کنه.

fs.existsSync(path)
به صورت همزمان بررسی می‌کنه که آیا فایل یا دایرکتوری وجود دارد یا خیر.

fs.unlink(path, callback)
برای حذف فایل ها به‌کار میره و میتونید باهاش هر فایلی رو پاک بکنید.

fs.rename(oldPath, newPath, callback)
نام یا مکان یک فایل رو تغییر می‌ده.

fs.mkdir(path, callback)
یک فولدر ( دایرکتوری ) جدید ایجاد می‌کنه.
🌐 مشاهده کامل متد های fs

#️⃣ #WhatsThat | #nodejs #fs

🚀 @coolycode
نود‌جی‌اس ( Node.js ) چیست ؟

نود‌جی‌اس یک محیط اجرایی سرور-محور برای اجرای کدهای جاوااسکریپتیه که به توسعه‌دهندگان این امکان رو می‌ده تا به جای مرورگر، از جاوااسکریپت در سمت سرور استفاده کنند.

ویژگی‌های کلیدی Node.js

📊 مقیاس‌پذیری بالا
معماری Node.js به گونه‌ای طراحی شده که برای برنامه‌هایی که نیاز به مدیریت تعداد زیادی از ارتباطات همزمان (مثل APIها و اپلیکیشن‌های بلادرنگ) دارند، بسیار مناسبه. به همین دلیل Node.js برای ساخت برنامه‌هایی مثل چت‌های بلادرنگ، وب‌سرویس‌های API و برنامه‌های اشتراک‌گذاری فایل بسیار محبوب است.


🚀 سرعت بالا
به دلیل استفاده Node.js از موتور V8 گوگل کروم که کد جاوااسکریپت رو به سرعت به کد ماشین تبدیل می‌کنه، از سرعت بالایی برخورداره. همچنین، با استفاده از معماری غیرهمزمان، درخواست‌ها به صورت کارآمد و بدون نیاز به انتظار مدیریت می‌شوند.


🔺 تک‌پردازشی، ولی بسیار کارا
نود‌جی‌اس تنها از یک رشته (thread) برای اجرای کد استفاده می‌کند، اما به دلیل None-Blocking بودن اون، عملیات سنگین رو به روشی بهینه مدیریت می‌کنه و این باعث می‌شه که مصرف منابع کم باشه و سرورها به سرعت به درخواست‌ها پاسخ دهند.


📦 مدیریت package‌ها با NPM
نود‌جی‌اس با یک سیستم package manager به نام NPM (Node Package Manager) همراه است که بزرگ‌ترین مخزن بسته‌های نرم‌افزاری متن‌باز است. با NPM، توسعه‌دهندگان می‌توانند به راحتی کتابخانه‌های مختلف را نصب و در پروژه‌های خود استفاده کنند.


غیر بلاک کننده ( Non-blocking )
نود‌جی‌اس از یک مدل ورودی/خروجی (I/O) غیربلاک‌کننده و رویداد-محور استفاده می‌کند. این بدان معناست که عملیات ورودی/خروجی (مثل خواندن و نوشتن فایل‌ها یا درخواست‌های شبکه) بدون مسدود کردن فرآیند اصلی انجام می‌شود. این ویژگی باعث می‌شود Node.js بتواند هزاران درخواست را همزمان مدیریت کند بدون اینکه نیاز به منتظر ماندن برای یک عملیات I/O باشد.

🌐 وبسایت رسمی Node.js

⬇️ صفحه دانلود Node.js

امیدوارم حسابی لذت برده باشید، توی پست های بعدی متد های بیشتری از Node.js رو‌ با هم دیگه بررسی میکنیم

#️⃣ #WhatsThat #nodejs #backend

🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
معرفی فریم ورک Express.js

یک فریمورک سبک، سریع و محبوب برای ساخت بکند اپلیکشن اپلیکیشن‌های وب و توسعه Apiها با استفاده از Node.js است.

ویژگی های کلیدی

سادگی : یادگیری و استفاده از Express.js بسیار آسان است.

سرعت : به دلیل ساختار سبک و بهینه، اپلیکیشن‌های ساخته شده با Express.js بسیار سریع هستند.

انعطاف‌پذیری : این فریم ورک به شما آزادی زیادی برای ساخت اپلیکیشن‌های دلخواه می‌دهد.

جامعه بزرگ : یک جامعه بزرگ از توسعه‌دهندگان وجود داره که از Express.js استفاده می‌کنند.


توی این ویدیو یه پروژه ساده با اکسپرس ایجاد کردیم 🚀

#framework #nodejs #backend

Channel | Group | YouTube
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
This media is not supported in your browser
VIEW IN TELEGRAM
سرو کردن فایل‌های HTML در Express.js

توی این ویدیو بهتون یاد دادم که چجوری میتونید خیلی ساده فایل های HTML‌ای سرو بکنید توی اکسپرس و بفرستید سمت کلاینت.

پ.ن : اگر نیاز داشته باشید که یه وبسایت استتیک بسازید با اکسپرس میتونید از این روش استفاده کنید 🚀


🌐 مشاهده کامل ویدیو در یوتوب

اگه به این سبک پستا علاقه داری به چنلمون یه سر بزن 🚀

#️⃣ #nodejs #youtube #backend 

〰️〰️〰️〰️〰️〰️〰️〰️〰️
Channel | Group | YouTube
Forwarded from FullstacksJS — Academy
قسمت چهارم ماب ریویو: معماری نرم افزار و DDD

تو این جلسه یک پروژه NestJS رو با هم ریویو می‌کنیم.

مشاهده ویدئو


اگر علاقه دارید می‌تونید کدهاتون رو برای من بفرستید تا توی این جلسه‌ها با همدیگه ریویوشون کنیم.

مباحث
00:00 ماب ریویو چیه؟
01:06 درباره پروژه؟
02:32 پارادایم Reactive Programming
03:55 معماری های Hexagonal
05:39 تعریف و انواع وابستگی توی معماری
06:55 مفهوم Dependency Inversion
13:41 مفهوم Dependency Injection
17:35 استفاده این مفاهیم توی معماری
20:08 لایه Domain توی معماری Clean
21:10 مزیت نام گذاری روی معماری‌ها و پترن‌ها
21:57 ‏Domain Driven Design چیه؟
34:24 معرفی منابع برای DDD
37:53 پرکیتس ها و اهمیت Communication
42:39 مسئولیت لایه Application
44:43 آنتی پرتن Anemic domain
46:48 مفهوم Ubiquitous language و Bounded Context
53:16 مفاهیم Strategic design و Tactical Design
54:29 فرق بین Value Object و Entity
1:00:42 مفهوم Domain Event
1:02:00 مفهوم Aggregate root
1:05:34 استفاده از این مفاهیم تو NestJS
1:06:53 مفهوم persistence ignorance
1:09:06 بی اهمیت بودن ابزارها و اهمیت نیاز بیزینس
1:12:03 چرا مقایسه ابزارها درست نیست
1:14:29 کجا باید از DDD استفاده کنیم؟
1:15:41 چرا کسب تجربه توی DDD سخته؟
1:16:34 پترن CQRS
1:19:26 چرا نباید همه جا از پترن‌ها و معماری‌ها استفاده کنیم؟


ماب ریویو چیه؟

سورس کد

اضافه کردن به تقویم


#mobreview #nestjs #cqrs #designpatterns #ddd #cleanarchitecture #hexagonarchitecture #mongodb #typescript #nodejs
Forwarded from Code Module | کد ماژول (genix)
میدونستی با Node.js میتونی انیمیشن های جذابی توی ترمینال بسازی؟ 🚀

یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.

برای اطلاعات بیشتر به این مقاله مراجعه کنید.

#nodejs
@CodeModule
Forwarded from Node Unique
🆕~> انواع معماری‌ها در 👩‍💻 Nodejs: انتخاب بهترین رویکرد برای پروژه. 🧐


⚪️معماری نرم‌افزار یکی از مهم‌ترین عوامل در موفقیت یا شکست یک پروژه است. وقتی صحبت از توسعه‌ی اپلیکیشن‌های مبتنی بر 👩‍💻Node.js می‌شود، انتخاب معماری مناسب می‌تواند عملکرد، مقیاس‌پذیری و نگهداری کد را بهبود بخشد. در این پست، به بررسی رایج‌ترین معماری‌های مورد استفاده در 👩‍💻Nodejs می‌پردازیم. 👍

1️⃣معماری MVC (Model-View-Controller):
⚪️معماری کلاسیک که اپلیکیشن را به سه لایه مدل (مدیریت مدل ها)، نمایش (رابط کاربری)، و کنترلر (مدیریت منطق و واسطه) تقسیم می‌کند.
⚪️مناسب برای پروژه‌های متوسط تا بزرگ که نیازمند کدی سازمان‌دهی‌شده هستند.

2️⃣معماری MVVM (Model-View-ViewModel):
⚪️شبیه به MVC است، اما با تمرکز بیشتر بر داده‌محوری و جداسازی بهتر منطق UI از منطق تجاری.
⚪️معمولاً برای پروژه‌های SPA (تک‌صفحه‌ای) استفاده می‌شود، به ویژه با فریمورک‌هایی مانند 👩‍💻 Vuejs یا 🏤 Angular.

3️⃣معماری لایه‌ای (Layered Architecture):
⚪️این معماری شامل لایه‌های مختلفی مانند کنترلر، سرویس‌ها، و مدل ها است.
⚪️مناسب برای پروژه‌هایی که نیاز به جداسازی وظایف در بخش‌های مختلف دارند.

4️⃣معماری میکروسرویس‌ها (Microservices):
⚪️اپلیکیشن به سرویس‌های کوچک و مستقل تقسیم می‌شود که هرکدام می‌توانند به طور جداگانه توسعه، تست، و مستقر شوند.
⚪️مناسب برای پروژه‌های بزرگ و پیچیده با تیم‌های متعدد.

5️⃣معماری Serverless (بدون سرور):
⚪️کد به صورت تابع‌های کوچک اجرا می‌شود و مدیریت سرورها بر عهده‌ی ارائه‌دهندگان ابری مثل AWS Lambda است.
⚪️برای پروژه‌هایی با نیاز به مقیاس‌پذیری بالا و هزینه‌های پایین مناسب است.

6️⃣معماری Event-Driven (مبتنی بر رویداد):
⚪️با استفاده از رویدادها و پیام‌ها (event emitters) کار می‌کند.
⚪️مناسب برای اپلیکیشن‌های بلادرنگ (real-time) مثل سیستم‌های چت، بازی‌های آنلاین، و اعلان‌ها.

7️⃣معماری Clean (معماری تمیز):
⚪️تأکید بر جداسازی منطق تجاری از زیرساخت‌ها و فناوری‌ها.
⚪️هدف آن ایجاد کدی خوانا، قابل نگهداری و مقیاس‌پذیر است.

8️⃣معماری Hexagonal (شش‌ضلعی):
⚪️به نام Ports and Adapters هم شناخته می‌شود.
⚪️هدف آن انعطاف‌پذیری بیشتر با جداسازی منطق کسب‌وکار از جزئیات تکنیکی است.

9️⃣معماری Monolithic (یکپارچه):
⚪️اپلیکیشن به صورت یک واحد بزرگ ساخته می‌شود.
⚪️مناسب برای پروژه‌های کوچک یا زمانی که نیاز به پیچیدگی کم و استقرار ساده است.

0️⃣1️⃣معماری Modular (ماژولار):
⚪️پروژه به ماژول‌های مستقل تقسیم می‌شود که هرکدام مسئولیت مشخصی دارند.
⚪️برای کدهای با قابلیت استفاده مجدد (reusable code) مناسب است و 🤟 nodejs با فریم ورک های مثل 👩‍💻 nestjs و angular 🏤 استفاده میشه بیشتر.

1️⃣1️⃣معماری CQRS (Command Query Responsibility Segregation):
⚪️وظایف دریافت داده‌ها (Query) و دستکاری داده‌ها (Command) را جدا می‌کند.
⚪️معمولاً در پروژه‌هایی با حجم بالای داده یا نیاز به پردازش پیچیده استفاده می‌شود.

2️⃣1️⃣معماری SOA (Service-Oriented Architecture):
⚪️مشابه میکروسرویس‌ها است، اما سرویس‌ها کمتر مستقل هستند و ارتباطات بیشتری دارند.
⚪️مناسب برای پروژه‌هایی با نیاز به سرویس‌های اشتراکی.

3️⃣1️⃣معماری Multi-Tenant (چند مستأجر):
⚪️برای سیستم‌هایی که به طور همزمان توسط چند کاربر یا شرکت استفاده می‌شوند (مانند SaaS) طراحی شده است.
⚪️مناسب برای پروژه‌های SaaS (نرم‌افزار به‌عنوان سرویس).

4️⃣1️⃣معماری Pipeline (خط لوله):
⚪️داده‌ها به صورت مرحله‌ای پردازش می‌شوند.
⚪️معمولاً در سیستم‌های پردازش داده‌های بزرگ (Big Data) استفاده می‌شود.

♨️~>لپ مطلب:
⚪️هر معماری مزایا و معایب خاص خود را دارد. انتخاب معماری مناسب به نیازهای پروژه، مقیاس آن، و تیم توسعه بستگی دارد. 👍

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #مقاله #معماری_نرم_افزار #nodejs

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Code Module | کد ماژول (genix)
‏Trust Proxy توی Express.js چیه و دقیقاً چه کاری میکنه؟ 🤔

‏Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.

حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطه‌ای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار می‌گیره. Express به‌طور پیش‌فرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.

‏۲. Trust Proxy به چه دردی میخوره؟

وقتی که برنامه‌ شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو می‌بینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای https مقدار http داشته باشه و کلی مشکل دیگه.

اینجاست که Trust Proxy به درد می‌خوره 👇🏻

‏- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.

‏- req.protocol‏ رو بر اساس X-Forwarded-Proto تنظیم میکنه. ‌‌‏
‏- req.hostname رو درست مقداردهی میکنه‏

۳. چجوری Trust Proxy رو توی Express فعال کنیم؟

خیلی ساده!
const app = express();
app.set("trust proxy", true);


با این تنظیم:

‏- req.ip مقدار واقعی آی‌پی کاربر رو میده.
‏- req.protocol مقدار واقعی http یا https رو نشون میده.

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


‏ ۴. Trust Proxy چه مقدارهایی میگیره؟


مقدار true همیشه بهترین گزینه نیست. Express چند مدل مقدار رو قبول میکنه:

app.set("trust proxy", false);  // پیش‌فرض، هیچ پراکسی‌ای رو قبول نمی‌کنه.
app.set("trust proxy", true); // به همه پراکسی‌ها اعتماد میکنه.
app.set("trust proxy", "loopback"); // فقط به 127.0.0.1 اعتماد میکنه.
app.set("trust proxy", "127.0.0.1"); // فقط به این IP خاص اعتماد میکنه.
app.set("trust proxy", ["192.168.1.1", "10.0.0.1"]); // لیستی از پراکسی‌های قابل‌اعتماد.
app.set("trust proxy", 2); // از آخرین دو پراکسی مقدار رو می‌خونه.


- مقدار 2 یعنی چی؟
وقتی مقدار 2 رو میدید، Express میاد ip واقعی کاربر رو از دو پراکسی آخر توی X-Forwarded-For استخراج میکنه. این کار به درد جایی میخوره که چند تا سرور بین کاربر و اپلیکیشن هستن.

- پس مقدار true بدیم یا نه؟
بهتره فقط به پراکسی‌هایی که می‌شناسی اعتماد کنید. مثلاً اگه سرور فقط Cloudflare یا Nginx قرار داره، میتونید فقط به اون آی‌پی‌ها اعتماد کنین تا از IP Spoofing جلوگیری بشه.


‏Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسی‌ای اعتماد نکنید! برای امنیت بیشتر، فقط به آی‌پی‌هایی که واقعاً Proxyهای خودتون هستن اجازه بدید.

برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.

#nodejs #express
@CodeModule
Forwarded from کدنویس یکروزه (پدرام رحیمی)
nodejs-intro.pdf
739.3 KB
روش ساخت سِرور با Node.js

پیش از این آشنایی با نُد و همینطور روش نصب اون رو شرح دادیم. حالا روش نوشتن برنامه و ایجاد یک سِرور کوچک را در چند خط ساده یاد بگیرید.

#nodejs #server #beginner #book
Forwarded from DevAcademy
سلام دوستان امیدوارم خوب باشید،
یک شرکت معتبر در آمریکا به صورت#ریموت با پرداخت#دلاری به دنبال نیرویی با پوزیشن زیر میباشد.
#Senior_#NodeJS_ #Developer#

#Responsibilities
Job description:

Senior NodeJS Developer (5+ yrs exp.)
- Expertise in NodeJS/NestJS frameworks
- Experience handling high load/traffic applications
- Cloud & Kubernetes environment experience
- RabbitMQ or similar message queue technologies
- Experience in scaling message consumers/workers
- MySQL database management for large datasets/high load is a huge plus
- ELK stack experience is a plus
- React front-end development skills is a plus


لطفا رزومه خود را پس ازمطالعه و تطابق با جاب دیسکریبشن با ذکر #پوزیشن به ایمیل یا دایرکت بنده ارسال کنید
EMAIL:[email protected]

💻@DevAcaademy
💬@DevAcademyGroup
‏اگه بهتون بگم با ‎#php میشه یه سروری نوشت که به صورت مولتی تِرِد و مولتی پراسس سوکت بده و ‎#NodeJS در برابرش عددی نیست و میشه باهاش چت نوشت یه جوری که تلگرامو بزاره جیبش احتمالا بهم میخندین؟
خنده ها تون که تموم شد این دوتا رو سرچ کنین.
#cphalcon
#swoole

<Mr pro grammer/>

@DevTwitter
Forwarded from Gopher Academy
🔵 عنوان مقاله
be experimenting with

🟢 خلاصه مقاله:
از کتابخانه‌های زیادی که می‌خواهند به مخاطبان بیشتری برسند، در حال حاضر نسخه‌های JavaScript ارائه می‌شود تا هم در مرورگر و هم در محیط‌های Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانت‌اند و بک‌اند است.

دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپ‌های دقیق و قابلیت tree-shaking؛ یا پورت از زبان‌های سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل می‌کنند و با ارائه TypeScript declarations سطح استفاده‌پسند ایجاد می‌شود.

چالش‌ها شامل انتخاب بین ESM و CJS، بهینه‌سازی اندازه باندل و دارایی‌های WASM، محدودیت‌های مرورگر (فایل‌سیستم و سوکت خام)، تفاوت‌های اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راه‌اندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارک‌گیری در محیط‌های مختلف و مستندسازی دقیق کمک‌کننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخه‌بندی SemVer، تست و انتشار مرحله‌ای بود.

نمونه‌های موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان می‌دهند با طراحی API مناسب و ابزار درست، پورت‌های جدی عملی است. قاعده تصمیم‌گیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعه‌دهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیت‌های سخت‌افزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرم‌های edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.

#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource

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


👑 @gopher_academy
Forwarded from ASafaeirad
TIL
There's a Node.JS util to strip ANSI escape codes

import { stripVTControlCharacters } from 'node:util';

const text = '\u001B[4mUnderlined\u001B[0m';
console.log(stripVTControlCharacters(text)); // "Underlined"


#nodejs #til