Dev Fuel – Telegram
Dev Fuel
144 subscribers
41 photos
12 videos
28 links
تو این چنل قراره در مورد تکنولوژی های مختلف برنامه نویسی ، خصوصا JS با هم کلی چیز یاد بگیریم.
(بیشتر حول محور بک اند).
Download Telegram
عکس اول مقایسه سرعت بان با سایر تکنولوژی ها بر واحد Request Per Second هست.
طبق این مقایسه ، بان 2 برابر سریع تر از NodeJs ( با فریمورک Fastify ) ، و حتی با Go هم تقریبا برابری می‌کنه.

عکس دوم هم مقایسه فریمورک های Js هست. ElysiaJs بر پایه ران تایم Bun تقریبا 18 برابر سریع تر از اکسپرس بر پایه ران تایم NodeJs هست!

منبع :
https://dev.to/jthanh8144/frameworks-of-bunjs-elysiajs-and-hono-4all
2
نصفه شبی یه موضوع به ذهنم زد راجع بهش تحقیق کنم!
درباره اینکه برنامه نویس ها چطور آدم هایی هستند؟ افراد برنامه نویس ، گیک توی تکنولوژی و ... واقعا چطور عمل می‌کنن؟
آیا همه این افراد همیشه از خلق کردن لذت می‌برن؟ اینکار همیشه براشون لذت بخشه؟

آیا واقعا اینطوریه که توی فیلما نشون میدن؟ یه هودی میپوشی یه کافی می‌زنی بر بدن و می‌ری 24 ساعته می‌چسبی به سیستم؟

دارم راجع بهش تحقیق می‌کنم و به امید خدا فردا یه پست راجع بهش می‌ذارم. راستی نظر شما چیه؟ خود شما چه حسی نسبت به این کار دارید و دیدتون نسبت به کار چطوریه؟

❗️نظر و تجربیات شما در کامنت برامون ارزشمنده ، بهره می‌بریم و در پست بعدی استفاده میشه.
👍5😁1
یه بار داشتم تو سیستم کد می‌زدم ، پسر خاله 9 ساله ام پرسید چیکار داری می‌کنی؟
گفتم هیچی ، دارم کار می‌کنم.

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

برگشت یه نگاه خردمندانه کرد و گفت :
هه ، تو فقط یه برنامه نویسی هکر نیستی که هک کنی 😶

خواستم بگم یه بچه 9 ساله فرق برنامه نویس و هکر رو فهمید ، خیلی ها هنوز نفهمیدن 😂

پ.ن:روی صحبتم با اوناییه که تا می‌بینن یکی برنامه نویسه میگن : پیج فلان یارو رو برام هک می‌کنی؟🤦‍♂
👍51
🧩 برنامه‌نویسی، ساخت چیزهای جدید، گیک بودن و سر و کله زدن با کلی تکنولوژی آیا همیشه لذت‌ بخشه؟

آیا اصل داستان همون چیزیه که توی فیلما نشون میدن؟ یه هودی می‌پوشی یه کافی هم می‌زنی بر بدن و 24 ساعت توی سیستم؟(البته که شدنیه فقط توی اون کافی یه چیز باید بندازی)

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

رفتم تحقیق کردم.
واقعیت اینه که برنامه‌نویسی همیشه اون تصویری که تو ذهن داریم نیست.
این مسیر همیشه پر از هیجان، لذت، و حس ساختن نیست.کلا نه تنها این کار ، بلکه در همه حرفه ها همینطوره.

خیلی از برنامه‌نویس‌های معروف و حرفه‌ای دنیا هم دقیقاً همین حس رو داشتن.
چند تا مثال از افراد معروف این حوزه پیدا کردم : ( مثال ها با هوش مصنوعی پیدا شده اند )


👤 Dan Abramov (عضو تیم React – سازنده Redux)

گاهی فقط می‌خوام لپ‌تاپمو ببندم و دیگه هیچ‌وقت برنگردم به برنامه‌نویسی. مخصوصاً وقتی حس می‌کنم هیچ چیزو درست نمی‌فهمم.

👤 Kent C. Dodds (مدرس React و از چهره‌های معروف انجمن JS)

وقتی بچه‌دار شدم، یه مدت واقعاً علاقه‌ای به برنامه‌نویسی نداشتم. حس می‌کردم شاید دیگه هیچ‌وقت نتونم برگردم بهش.

👤 John Carmack (خالق Doom و Quake)

بخش زیادی از زندگی‌مو با اشتیاق برای کدنویسی گذروندم، ولی گاهی دچار خستگی و تکرار شدم. اون موقع‌ها انگیزه‌مو از دست می‌دادم.

خب حالا راهکار چیه؟ در این مدت چه کار هایی کنیم خوبه؟🤔

واقعیت اینه که هیچ راهکار مشخص و قطعی وجود نداره برای هر کسی ممکنه متفاوت باشه.
اما یک سری راهکار های کلی هستند که در این موقعیت می‌تونن کمک کنند :

1⃣ استراحت آگاهانه: گاهی مغز خسته است و یه استراحت کوتاه می‌تونه کمک کننده باشه.(بی هدف در سوشال مدیا گشتن استراحت نیست)


2⃣ یادآوری هدف‌ها: به خودت یادآوری کن چرا شروع کردی. حتی نوشتن یا مرورش می‌تونه شوق اولیه رو زنده کنه.


3⃣ انجام کارهای کوچک و فوری: یه تسک ساده رو کامل کن. حتی یه قدم کوچیک باعث می‌شه دوباره به حرکت بیفتی.

4⃣ صحبت با آدم‌های هم‌مسیر: گپ با کسی که شرایط مشابهی داشته باعث می‌شه بفهمی تنها نیستی و این حس طبیعیه
3🆒2👍1
شما هم مثل من فکر می‌کردین معماری نرم افزار ، فقط در همین حد خلاصه میشد که می‌گفتیم برنامه Microservice, Layered یا ... است؟

پست بعدی درباره این که معماری نرم افزار فقط در همین حد خلاصه نمیشه صبحت می‌کنیم ، و قراره تعریف دقیق تری ازش داشته باشیم.
معماری نرم افزار یعنی چی؟

مثلا اگه شخصی بپرسه معماری که در این برنامه پیاده سازی کردی چیه ، احتمالا بگیم که مثلا معماری این برنامه Microservice , Layered یا ... است. اما در معماری نرم افزار اینها فقط ساختار هستند!

پس معماری نرم افزار دقیقا یعنی چی؟
معماری نرم‌افزار یک هدف دائماً در حال حرکت (تغییرپذیر) است، چون اکوسیستم توسعه‌ی نرم‌افزار به‌سرعت در حال تحول است.
ماهیت معماری نرم افزار به قدری پویاست که حتی ممکنه تعریف خودش هم تغییر کنه!
برخلاف تصور سنتی که معماری رو یه تصمیم‌گیری اولیه و تغییرناپذیر می‌دونه، معماری مدرن باید انعطاف‌پذیر، قابل تغییر و پویا باشه. سبک‌هایی مثل میکروسرویس‌ها این نگاه رو عملی کردند. پس معمارها باید دائماً خودشون و تصمیمات‌شون رو با تغییرات دنیای نرم‌افزار به‌روز کنن.

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

معماری = ساختار + تصمیمات + ویژگی‌ها + اصول طراحی

یعنی معماری شامل این‌هاست:
1-ساختار سیستم (Structure): مثل Microservices یا Layered

2-ویژگی‌های معماری (Architectural Characteristics): مثل مقیاس‌پذیری، در دسترس بودن، امنیت، کارایی و ...

3-تصمیمات معماری (Architecture Decisions): مثلاً چرا فلان تکنولوژی انتخاب شده؟ چرا از این سبک استفاده شده؟ چرا فلان ویژگی مهم‌تر از اون یکیه؟

4-اصول طراحی (Design Principles): مثل Loose Coupling، High Cohesion، Separation of Concerns و ...

هر کدام از موارد اشاره شده توضیحات مفصل خودشون رو دارند و برای درک بهتر هر کدوم می‌تونید سرچ کنید.

برگرفته از کتاب Fundamentals of Software Architecture

#architecture
🔥3
متاستفانه یا خوشبختانه من کلا تا حالا روی لینکداین هم نگاه نکردم 😂

امروز بعد مدتها به اکانتم یه نگاه انداختم دیدم کویره ، برای شروع یه چندتا از پست های اینجا رو اونجا می‌ذارم.
لینکش رو هم تو کامنت می‌فرستم شما هم بفرستید همگی با هم ارتباط بگیریم اونور.
(اگه نکته ای چیزی هم راجع بهش میدونید تو کامنت بگید دمتون گرم ❤️)
3👍1
دانشگاه برای آموزش اصول بنیادی علوم کامپیوتر ساخته شده، نه برای یاد دادن ابزارها و فریم‌ورک‌های مد روز مثل React یا HTML/CSS.
اگه کسی انتظار داره توی رشته‌ی کامپیوتر در دانشگاه، نحوه‌ی ساختن صفحات وب با React یا Vue رو یاد بگیره، هدف اصلی این رشته رو اشتباه فهمیده.

🔹 دانشگاه می‌خواد بهت تفکر الگوریتمی، مدیریت حافظه، درک عمیق از ساختار داده‌ها، و مبانی برنامه‌نویسی رو یاد بده — نه چیزهایی که با دیدن ویدیو تو یوتیوب می‌تونی یاد بگیری.
🔹 زبان‌هایی مثل C و ++C رو انتخاب می‌کنن چون تمرکز روی مفاهیم پایه و بهینه‌سازیه، نه راحتی یا سرعت یادگیری.

در نهایت:

> دانشگاه مهندس حل مسئله تربیت می‌کنه، نه صرفاً کدنویس با دانش یه ابزار خاص.

🤖خلاصه سازی شده یک دیدگاه با هوش مصنوعی
👍2
منطقی مثل Js 👀
3
‏Node.js با وجود Single thread بودنش، چطور تسک‌های سنگین رو انجام میده؟🤔
(مدیونید اگه احساس کنید پست طولانیه و نخونید. خدا شاهده از سر و تهش کلی زدم طولانی نیست بخون به درد میخوره 😂❤️)

این بزرگوار (Node.js) با وجود اینکه تک‌نخ (Single Thread) هست، پشت صحنه یه Thread Pool داره که عصای دستشه. یعنی چی حالا؟

ما می‌دونیم که Node.js یک ران‌تایم غیرهمزمان (asynchronous) هست. یعنی وقتی داره خط به خط کدها رو اجرا می‌کنه، اگه به یه عملیات سنگین یا زمان ‌بر برسه، کل نخ اصلی رو نگه نمیداره تا اون عملیات تموم بشه. پس چی کار می‌کنه؟

(پیام بازرگانی :
ببینید تسک‌های زمان بر کلاً دو دسته اند. یه سری‌شون که سنگینن و نیاز به پردازش CPU دارن (مثل خوندن فایل یا رمزنگاری)، میرن به Thread Pool. یه سری دیگه که بیشتر منتظر I/O هستن (مثل درخواست HTTP یا اتصال به دیتابیس)، به سیستم‌عامل سپرده می‌شن و اصلاً به Thread Pool نیازی ندارن. مثلاً Promise‌ هاتوی خود نخ اصلی توسط Event Loop مدیریت می‌شن و به Thread Pool نمیرن، مگه اینکه داخلشون یه عملیات سنگین (مثل رمزنگاری) باشه. خلاصه که Node.js هر تسک رو می‌فرسته جای درستش. خودش هم میره سراغ اجرای خط بعدی کد. )

‏Event Loop‌‏ چیه؟

‏Event Loop‏ قلب تپنده‌ی Node.js هست. یه حلقه‌ی بی انتهاست که مدام چک می‌کنه آیا تسک جدیدی توی Event Queue (صف رویدادها) هست یا نه. اگه باشه، اون تسک رو بر میداره و اجرا می‌کنه. اگه نباشه، منتظر می‌مونه تا یه تسک جدید بیاد. یعنی بیچاره نخ اصلی هیچوقت بیکار نمی‌مونه.

‏Event Queue چیه؟

اینطوری در نظر بگیریم که یه صف هست که تمام کارهایی که منتظر اجرا هستن توش وایستادن. هر وقت یه عملیات غیرهمزمان (مثل پاسخ یه درخواست HTTP یا خوندن یه فایل) تموم می‌شه، نتیجه‌ش میاد تو این صف و Event Loop اونو بر میداره و اجرا می‌کنه.

‏Thread Pool چطور کار می‌کنه؟اینهمه پیش زمینه گفتیم که برسیم به اصل موضوع این پست.

برای عملیات سنگین (مثل دسترسی به فایل‌سیستم، فشرده‌سازی داده‌ها یا رمزنگاری)، Node.js از یه Thread Pool که معمولاً ۴ تا نخ داره استفاده می‌کنه. این نخ‌ها جدا از نخ اصلی هستن و توسط libuv (یک لایبرری نوشته شده با C) مدیریت میشن. وقتی یه تسک سنگین به Node.js میدیم ، اونو می‌فرسته به Thread Pool، و وقتی کار تموم شد، نتیجه رو برمی‌گردونه به Event Queue تا نخ اصلی بتونه پردازشش کنه.

این معماری باعث می‌شه Node.js برای برنامه‌هایی که ورودی/خروجی (I/O) زیادی دارن (مثل وب‌سرورها) خیلی سریع و بهینه باشه. اما اگه تسک‌ها خیلی سنگین باشن (مثل محاسبات پیچیده)، ممکنه Thread Pool پر بشه و عملکرد افت کنه. برای اینجور کارا معمولاً از ابزارهای دیگه یا Worker Threads استفاده می‌شه.
#nodejs
1
بله؟😐
قسم خورد؟ از تجربه‌اش گفت ؟
یکی جلوی سم آلتمن رو بگیرههه
چقدر غم انگیزه واقعا...
گناه ما واقعا چی بود؟
چقدر هممون هر روز داریم تلاش می‌کنیم توی این جامعه زنده بمونیم. چقدر تلاش می‌کنیم که فعال بمونیم. اون از بیرون این از درون... هم درون داره نابودمون می‌کنه هم بیرون باهامون مشکل داره.
این تصاویر برای هممون عادیه مثل خیلی چیزای دیگه که نباید عادی می‌بود.
روزانه کلی زمان می‌ذاریم که توی این فضای لعنتی بگیم ایرانی نیستیم بابا نترس ، اجازه بده وارد بشم.
یه نظر سنجی داشته باشیم ببینم بیشتر دوست دارید پست ها تو چه زمینه ای باشه
Anonymous Poll
35%
Js
38%
NodeJs
23%
NestJs
50%
همه چی
15%
پهپ
Forwarded from Digiato | دیجیاتو
💢مدیرعامل گیت‌هاب کناره‌گیری کرد؛ پروژه‌ها تحت نظارت تیم CoreAI مایکروسافت قرار می‌گیرد

🔺«توماس دومکه» (Thomas Dohmke)، پس از مدت‌ها فعالیت به‌عنوان مدیرعامل #گیت_هاب، از این مسئولیت کنار رفت و گیت‌هاب اکنون ارتباط و تعامل عمیق‌تری با تیم CoreAI مایکروسافت دارد.

🔺#مایکروسافت پس از خروج دومکه که نزدیک به ۴ سال در این جایگاه بود، تصمیم گرفته است گیت‌هاب را به‌صورت مستقیم‌ در ساختار تیم CoreAI ادغام کند. دومکه اعلام کرده قصد دارد بار دیگر وارد دنیای استارتاپ‌ها شود و فرصت‌های جدیدی را خارج از مایکروسافت و گیت‌هاب دنبال کند.

🔺از زمانی که مایکروسافت در سال ٢٠١٨ با پرداخت ٧.۵ میلیارد دلار گیت‌هاب را خرید، این پلتفرم به‌عنوان یک شرکت مستقل فعالیت می‌کرد. اما استعفای دومکه بخشی از یک تغییر سازمانی بزرگ است که نحوه مدیریت گیت‌هاب را دگرگون می‌کند. مایکروسافت تصمیم گرفته جایگزینی برای مدیرعاملی گیت‌هاب تعیین نکند و تیم مدیریت گیت‌هاب حالا مستقیماً به تیم CoreAI گزارش خواهند داد.

جزئیات بیشتر
🔸🔸🔸
🟣 Digiato
🎞 Digiatoofficial
🤖 Digiato
💭 @Digiato
Please open Telegram to view this post
VIEW IN TELEGRAM
💔3
خب دوستان به نظر باید دنبال جایگزین گیت هاب باشیم که مایکروسافت قراره تو اینم گند بزنه
😐2
از فردا بابت هر کامیت باید پول بدیم 😂
‏داینامیک ماژول در NestJS چیست؟

ماژول‌های NestJS معمولاً ثابت‌اند. یعنی یه چیزی مثل UserModule می‌سازیم، و فقط یک بار import می‌کنیم و تمام.

ولی اگه بخوایم ماژولی بسازیم که در هر پروژه با کانفیگ خودش کار کنه چی؟
مثلاً یه دیتابیس ماژول که تو یه پروژه با Postgres وصل شه، تو یکی دیگه با MySQL!
اینجاست که Dynamic Module میاد وسط.

‏ Dynamic Module یعنی ماژولی که موقع import شدن می‌تونی بهش option بدی تا خودش رو همون‌جا بر اساس اون option پیکربندی کنه.

مثال:

@Module({})
export class DatabaseModule {
static register(options: DbOptions): DynamicModule {
return {
module: DatabaseModule,
providers: [
{ provide: 'DB_OPTIONS', useValue: options },
],
exports: ['DB_OPTIONS'],
};
}
}

حالا هر جا که خواستیم:

imports: [
DatabaseModule.register({ host: 'localhost', port: 5432 }),
]

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

‏ NestJS پشت صحنه این رو به عنوان یه ماژول جدید می‌شناسه و Provider های‌اون رو مطابق چیزی که دادیم تزریق می‌کنیم.

میشه از این ویژگی در Logger، Auth، Database یا هر سرویس Shareable که تو پروژه‌های مختلف با تنظیمات مختلف کار می‌کنه استفاده کنیم.
#nestjs