tgoop.com/fullStackDevs/549
Last Update:
#DenoJs
#NodeJs
#JsRuntime
❇️ DENO.JS 💎
🔸 در سال 2018 طی کنفرانسی آقای Ryan DahI درباره 10 چیز درمورد Node.js که از آنها پیشمان و متاثر است سخنرانی کرد.
در انتهای این کنفرانس از پروژه جدیدی پرده برداری کرد که به تازگی نسخه 1.0 آن release شده است.
🔹 این پروژه DENO.JS است. Deno از ریشه کلمه Node میباشد و بعضی از دولوپران آنرا نسخه ی 2 پروژه Node.js می دادنند.
اما این تفکر کاملا ناعادلانه و غیر منصفانه است.
🔸آقای Ryan DahI خالق Deno میباشد و همچنین Node.js را نیز ایشان کدنویسی کرده است.
▫️اما چرا اقای Ryan DahI به جای بهبود Node.js، به Deno و دوباره نویسی یک Runtime جدید برای جاوا اسکریپت روی آورد⁉️
❇️ اقای Ryan Dahi از تمامی نواقص و تکنولوژی های قدیمی که در Node.js استفاده شده است آگاهی دارد و در نتیجه تصمیم به ساختن نسخه ی جدیدی از نود جی اس کرده است. زمانی که متوجه این موضوع شدند که Node.js نیازمند upgrade هایی است ، انجام اینکار کار برای وی غیر ممکن بود، چرا که Node.js در زمان کوتاهی محبوبیت بسیاری کسب کرد و اپلیکیشن ها و Package های زیادی در هر جا یافت میشدند که از Node.js استفاده میکردند و میکنند.
پس در نتیجه Ryan Dahl زمان و هزینه کافی برای پذیرفتن این ریسک نداشت که Node.js را دچار تغییرایی کند و تمام اپلیکیشن ها و پکیج هایی کنونی را با مشکل سازگاری با تغییرات جدید مواجه کند.
پس تصمیم گرفت که به طور کلی Node.js را به روشی بهتر دوباره نویسی کرده و به همین دلیل Deno.js را به وجود آورد.
❇️ ران تایم Deno بسیار شبیه به Node بوده و تمامیه کاربردهایی که Node دارد را نیز دارا است و با مزیت های خاص خودش که به معرفی آنها میپردازیم.
🔹 پروژه Deno.js ران تایمی جدید برای جاوااسکریپت در خارج از مرورگر است که از V8 استفاده میکند.
▪️ این پروژه با موارد زیر ساخته شده است :
▫️هسته Deno به وسیله Rust نوشته شده است در حالی که هسته Node با C++ نوشت شده است.
▫️ مورد دوم Tokio میباشد. از آنجایی که هسته Deno با Rust نوشته شده است برای event loop در Deno از Tokio که یک ماژول Rust است برای کار کردن با futures به منظور asynchronous programming به جای Libuv استفاده شده است.
▫️مورد سوم TypeScript میباشد. حتما شگفت زده خواهید شد که بدانید بدون نیاز به انجام configuration خاصی به صورت دستی، قادر خواهید بود تا با تایپ اسکریپت در Deno کار کنید. Deno کامپایلر و همه چیز های دیگر را به صورت توکار در اختیار شما قرار میدهد تا از تایپ اسکریپ استفاده کنید.
▪️تمام انچه تا کنون گفته شده تنها بخش کوچکی از مزایای Deno میباشد و هنوز از ویژگی های اصلی Deno سخنی گفته نشده است.
🔰 Security
🔸 یکی از مهمترین ویژگی های Deno امنیت میباشد. به صورت پیشفرض node اجازه دسترسی به همه چیز را میدهد. یعنی اینکه میتوان read و write درون file system انجام داد. دسترسی به شبکه و environment variables نیز از دیگر موارد میباشد.
ممکن است به عنوان یک توسعه دهنده به این فکر کنید که "امکان دسترسی داشتن به همه چیز که خیلی خوب است". ام اگر از لحاظ امنیتی در هنگام کد نویسی مراقب کدهایی که مینویسید، نباشید. باعث به وجود آمدن خطرات امنیتی ای میشوید.
🔹 در مقابل در Deno برای چنین دسترسی های امنیتی ای باید به صورت صریح به اسکریپت مربوطه از طریق command line اجازه دسترسی دهید.
🔰 نه به NPM و node_modules 😨
🔸برای مدیریت dependency ها در Deno دیگر به سیاه چاله ای به نام node_module و NPM وابستگی ندارید.
اما چطور ممکن است⁉️
🔹دنو نیز همانند مرورگر، ماژول های مورد نیاز را از طریق URL لود و کش میکند.
در دنو با import کردن پکیج ها با URL شان میتوانید از آنها استفاده کنید.و بدین ترتیب پکیج های Deno نیازی به متمرکز شدن در جای به نام npm ندارند.
زمانی که اپلیکیشن اجرا میشود Deno تمامیه ماژول های import شده را دانلود میکند و آنها را کش میکند.
💎 ویژگی های خارق العاده Deno خیلی بیشتر از آن است که به طور کامل آنها را در یک یا چند پیام شرح داد . در این پست تلاش کردیم تا تنها بخش کوچک و مهمی از ویژگی های Deno را توضیح دهیم.✌🏻
▫️Happy Deno.js Coding 😉
@FullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/549