جستجو برای:
  • صفحه اصلی
  • وبلاگ تخصصی جاوااسکریپت
    • جاوااسکریپت
    • Angular
    • Nodejs
    • Reactjs
    • Vuejs
    • Electronjs
    • دیتابیس MongoDB
    • کتابخانه های جاوا اسکریپت
    • فریمورک های جاوا اسکریپت
  • تونل یادگیری رایگان
    • آموزش رایگان جاوااسکریپت
      • 1) جاوااسکریپت چیست؟
      • 2) بارگذاری جاوااسکریپت
      • 3) کامنت گذاشتن در جاوااسکریپت
      • 4) متغیرها در جاوااسکریپت
      • 5) عملگرها در جاوااسکریپت
      • 6) انواع داده در جاوااسکریپت
      • 7) اعداد در جاوااسکریپت
      • 8) رشته ها در جاوااسکریپت
      • 9) متد های رشته در جاوااسکریپت
      • 10) آرایه ها در جاوااسکریپت
      • 11) متدهای آرایه در جاوااسکریپت
      • 12) مرتب سازی آرایه در جاوااسکریپت
      • 13) اشیا در جاوااسکریپت
      • 14) توابع در جاوااسکریپت
      • 15) توابع ریاضی در جاوااسکریپت
      • 16) دستور شرطی if در جاوااسکریپت
      • 17) دستور Switch در جاوااسکریپت
      • 18) آموزش حلقه for در جاوااسکریپت
      • 19) آموزش حلقه while
    • آموزش رایگان جی کوئری
      • 1) جی کوئری چیست ؟
      • 2) نصب جی کوئری
      • 3) سینتکس جی کوئری
      • 4) سلکتورها در جی کوئری
      • 5) رویداد ها در جی کوئری
      • 6) Hide و Show در جی کوئری
      • 7) افکت Fade در جی کوئری
      • 8) افکت Slide در جی کوئری
      • 9) انیمیشن در جی کوئری
      • 10) افکت ها در جی کوئری
      • 11) دسترسی به محتوای تگ ها (Get)
      • 12) ارسال اطلاعات به تگ ها (Set)
    • آموزش های کامل جاوااسکریپت
      • آموزش کامل Operators (عملگرها)
      • آموزش کامل حلقه ها و شرط ها
      • آموزش کامل Objects (اشیا)
      • آموزش کامل Arrays (آرایه ها)
      • آموزش کامل Functions (توایع)
  • دوره ها
    • دوره رایگان جاوااسکریپت
    • دوره رایگان عملگرها (Operators)
    • دوره رایگان شرط ها و حلقه ها
    • دوره رایگان اشیا (Objects)
    • دوره رایگان آرایه ها (Arrays)
    • دوره رایگان توابع (Functions)
    • دوره پروژه محور هیولای جاوااسکریپت
    • دوره رایگان React مقدماتی
    • دوره پروژه محور هیولای React
    • دوره برای ایران | وردپرس
    • دوره هیولای درآمدزایی
    • نیچ کورس مهارت نرم
  • آموزش رایگان برنامه نویسی
    • قدم صفر سوالات برنامه نویسی
    • قدم اول آموزش رایگان HTML
 
MEGA JS
  • صفحه اصلی
  • وبلاگ تخصصی جاوااسکریپت
    • جاوااسکریپت
    • Angular
    • Nodejs
    • Reactjs
    • Vuejs
    • Electronjs
    • دیتابیس MongoDB
    • کتابخانه های جاوا اسکریپت
    • فریمورک های جاوا اسکریپت
  • تونل یادگیری رایگان
    • آموزش رایگان جاوااسکریپت
      • 1) جاوااسکریپت چیست؟
      • 2) بارگذاری جاوااسکریپت
      • 3) کامنت گذاشتن در جاوااسکریپت
      • 4) متغیرها در جاوااسکریپت
      • 5) عملگرها در جاوااسکریپت
      • 6) انواع داده در جاوااسکریپت
      • 7) اعداد در جاوااسکریپت
      • 8) رشته ها در جاوااسکریپت
      • 9) متد های رشته در جاوااسکریپت
      • 10) آرایه ها در جاوااسکریپت
      • 11) متدهای آرایه در جاوااسکریپت
      • 12) مرتب سازی آرایه در جاوااسکریپت
      • 13) اشیا در جاوااسکریپت
      • 14) توابع در جاوااسکریپت
      • 15) توابع ریاضی در جاوااسکریپت
      • 16) دستور شرطی if در جاوااسکریپت
      • 17) دستور Switch در جاوااسکریپت
      • 18) آموزش حلقه for در جاوااسکریپت
      • 19) آموزش حلقه while
    • آموزش رایگان جی کوئری
      • 1) جی کوئری چیست ؟
      • 2) نصب جی کوئری
      • 3) سینتکس جی کوئری
      • 4) سلکتورها در جی کوئری
      • 5) رویداد ها در جی کوئری
      • 6) Hide و Show در جی کوئری
      • 7) افکت Fade در جی کوئری
      • 8) افکت Slide در جی کوئری
      • 9) انیمیشن در جی کوئری
      • 10) افکت ها در جی کوئری
      • 11) دسترسی به محتوای تگ ها (Get)
      • 12) ارسال اطلاعات به تگ ها (Set)
    • آموزش های کامل جاوااسکریپت
      • آموزش کامل Operators (عملگرها)
      • آموزش کامل حلقه ها و شرط ها
      • آموزش کامل Objects (اشیا)
      • آموزش کامل Arrays (آرایه ها)
      • آموزش کامل Functions (توایع)
  • دوره ها
    • دوره رایگان جاوااسکریپت
    • دوره رایگان عملگرها (Operators)
    • دوره رایگان شرط ها و حلقه ها
    • دوره رایگان اشیا (Objects)
    • دوره رایگان آرایه ها (Arrays)
    • دوره رایگان توابع (Functions)
    • دوره پروژه محور هیولای جاوااسکریپت
    • دوره رایگان React مقدماتی
    • دوره پروژه محور هیولای React
    • دوره برای ایران | وردپرس
    • دوره هیولای درآمدزایی
    • نیچ کورس مهارت نرم
  • آموزش رایگان برنامه نویسی
    • قدم صفر سوالات برنامه نویسی
    • قدم اول آموزش رایگان HTML
0
ورود و ثبت نام

وبلاگ

MEGA JS مقالات برنامه نویسی وبلاگ Denojs Deno js چیست؟ آیا جایگزین nodejs میشود؟

Deno js چیست؟ آیا جایگزین nodejs میشود؟

25 تیر 1399
ارسال شده توسط محمدرضا حاجی مقصودی
Denojs
5.39k بازدید

 

معرفی Deno js

Deno js یا دینو یه محیط Runtime برای اجرای کدهای جاوااسکریپت و تایپ اسکریپت روی موتور V8 گوگل (همون موتوری که nodejs رو اجرا میکنه) هست. Denojs بهشت برنامه نویسای تایپ اسکریپت هست چرا که اتوماتیک کدهای Typescript رو به Javascript تبدیل میکنه و بعد اجراش میکنه. Deno js با زبان برنامه نویسی Rust نوشته شده و با هدف رفع ۱۰ مشکل Nodejs ساخته شده و یه جورایی آپدیت جدید Nodejs محسوب میشه. Deno اومده تا مشکلاتی رایج در Node مثل Dependecyها، کتابخانه ها، ماژول ها، ابزار tooling و امنیت رو از بین ببره و یه جورایی رقبایی که بخاطر این مشکلات برای جاوااسکریپت شاخ شدن رو یه بار دیگه از میدون خارج کنه.

دینو جی اس چیه؟

دینو یا دنو؟ خب اول از همه سر تلفظ اسمش باهم بحث کنیم، تلفظ درستش دِنو هست. اما خود آقای Rayan Dahl (رایان دال) تو کنفرانس آخرش گفت، تلفظ کنیم دینو که نزدیک به کلمه Dinosaur (دایناسور) هست. حالا اینکه چرا دایناسور نمیدونم، صاحبش عشقش کشیده بذاره دینو بر وزن دایناسور. همین آقای رایان دال خالق پلتفرم nodejs در سال ۲۰۰۹ بوده. نکته جالبش اینجاست که در هر دو اسم Deno و Node از حروف یکسان استفاده شده و فقط ترتیب حروف عوض شده. احتمالا علت نام گذاری Denojs همین نکته بوده که یه اسم با معنی و با حروف node پیشنهاد بدن.

(یه تحلیل شخصی برای علت که بنده دارم) به نظرم همین که اسم Deno چیدمانی متفاوت از node هست و خالق هر دو پلتفرم یک نفر هست پس میشه این احتمال رو داد که قراره جایگزین nodejs بشه و بعد از ۱۰ سال تجربه ای که سر توسعه nodejs بدست آورده میخواد ضعف های nodejs را بهبود و نقطه قوت هاش رو تقویت کنه. البته این تحلیل شخصی هست و هیچ مستندی نداره. اما در ادامه مقاله با مستندات موجود در سایت رسمی Denojs به آدرس deno.land درباره این پلتفرم جنجالی صحبت کنیم.

خب بریم سراغ اصل داستان که Deno چیه؟ و کاربرد Deno چیه؟

Deno js چیست؟

در سال ۲۰۱۸ جناب رایان دال یه کنفرانس داشت که میتونید تو یوتیوب ببینید، درباره ۱۰ تا اشتباه از Nodejs گفت که قراره در پلتفرم جدیدی به اسم nodejs 2 این اشتباهات رو اصلاح کنه و دلیلش هم کاملا مشخصه. یکی از دلایل اصلیش اینه که سال ۲۰۰۹ هنوز اکمااسکریپت ۶ و ۷ معرفی نشده بودند و نود جی اس callback محور بود ولی الان مواردی مثل Promise وجود داره ولی خب امکان آپدیت ورژن nodejs نیست چراکه خیلی از پروژه ها به مشکل میخورن و نمیشه کل پروژه های nodejs رو دوباره تغییر بدهند و ۹ مورد دیگر که تصمیم گرفت در قالب پلتفرمی جدی معرفی کند که طبق آخرین استانداردهای جاوااسکریپت باشد. و این یه نکته جذاب محسوب میشه چون ورژن های اخیر جاوااسکریپت واقعا جذاب و عالی شده.

پس تا اینجای کار متوجه شدید که Deno مثل Node  یک پلتفرم مبتنی بر Back-end هست اما هنوز خیلی جای کار داره تا بخواد جایگزین Nodejs بشه.

 

ویژگی های Deno js

سرعت:

Deno سریع تر از nodejs است، deno از موتور V8 و همچنین قابلیت‌های کامپایل از پیش انجام شده.

سازگاری:

Deno با ماژول‌های Node.js موجود سازگار است، و کد Node.js موجود خود را بدون هیچ گونه تغییر قابل توجهی اجرا کنید.

امنیت:

Deno از مدل امنیتی sandboxed استفاده می‌کند که امنیت برنامه های شما را تامین میکند.

 

شباهت Deno js با Node js چیست؟

  • کاربرد هر دو پلتفرم Node و Deno توسعه سمت بک اند وبسایت و اپلیکیشن هست.
  • در هر دو پلتفرم Denojs و Nodejs با سینتکس جاوااسکریپت میتونیم کد بزنیم.
  • هم دینو و هم نود روی موتور V8 گوگل اجرا میشوند.

تفاوت Deno js با Node js چیه؟

  • امنیت بیشتر Deno js نسبت به nodejs.
  • کتابخانه استاندارد کامل تر Deno به نسبت کتابخانه پیش فرض Node.
  • پشتیبانی دینو از تایپ اسکریپت در هسته پلتفرم.
  • در Deno js هیچ اجباری در استفاده از NPM ندارید.
  • در deno js نیازی به Package.json نیست تا Dependencyها رو کنترل کنید
  • Deno js نیازی به Node_modules نیست

خب قراره در ادامه مقاله تخصصی تر بررسی کنیم که Deno برای چی اومده و آیا جایگزین مناسبی برای Node هست؟

مقاله مرتبط: معرفی پلتفرم Nodejs

 

مزایا و معایب Deno js

مزایای Deno js:

  1. امنیت: deno به طور پیش فرض در حالت امن اجرا  میشود و برای دسترسی به فایل ها مجوز خاصی نیاز دارد.
  2. عدم نیاز به نصب جداگانه: نیازی به نصب جداگانه کتابخانه ها نیست
  3. پشتیبانی از تایپ اسکریپت: Deno به طور پیش فرض از تایپ اسکریپت پیشتیبانی میکند.
  4. مدیریت وابستگی با url: دینو جی اس بدون استفاده از سیستم مدیریت بسته، وابستگی‌ها را از URLها بارگذاری می‌کند.
  5. پشتیبانی از ماژول‌های اکمااسکریپت: Deno از ماژول های ES پشتیبانی میکند که ساختار کد بهتر میشود.

 

معایب Deno js:

  1. جامعه: Deno از جامعه توسعه دهنگان کوچک است و منجر به منابع کمتر میشود.
  2. عدم پشتیبانی از برخی از ویژگی ها: برخی ویژگی و قابلیت ها در نود جی اس وجود دارد ولی در Deno هنوز وجود ندارد.
  3. نقض در اکو سیستم: اکوسیستم هنوز در حال توسعه هستند و ممکن است نسبت به نود جی اس کامل نباشد.

چرا باید از Deno JS استفاده کنیم؟

آقا یعنی بجای node از Deno استفاده کنیم؟ خب طبق گفته های جناب رایان دال در کنفرانس باید این اتفاق بیوفته. خب چرا؟ چون زمانی که nodejs ساخته شد در سال ۲۰۰۹ هنوز چیزی به اسم اکما اسکریپت ۶ یا ۲۰۱۵ درست نشده بود. پس در nodejs خبری از Promise ها نبود و nodejs یک پلتفرم callback محور بود. البته الان میشه با promise ها و async و await هم در nodejs کار کرد بواسطه کتابخانه های موجود در NPM.

اما دیگه نمیشه هسته node رو تغییر داد چون خیلی برنامه ها و پروژه ها دارن با callbackها کار میکنن و اگه بخواد همچین تغییری در هسته ایجاد بشه اون برنامه ها از کار میوفتن و کلا داستان بهم میریزه. پس یه پلتفرم جدید ساخته شد به اسم Deno js تا این پلتفرم مطابق آخرین استاندادرهای جاوااسکریپت تا سال ۲۰۱۸ باشد. و پلتفرم Deno JS یک پلتفرم Promise محور هست و مخصوص استفاده از Async و ‌Await توسعه داده شده و این دقیقا همون هدف اصلی جاوااسکریپت در سمت بک اند هست.

در هسته این پلتفرم از زبان بسیار قدرتمند و جذاب Rust استفاده شده که به نظرم نقطه قوت Deno js همینجاست.  البته Denojs بر اساس جاوااسکریپت، Go و ++C و تایپ اسکریپت و Rust نوشته شده که خود پشتیبانی از تایپ اسکریپت هم تا حدودی به قدرت این پلتفرم کمک کرده. چرا که خیلی از فریمورک های جاوااسکریپت مثل انگولار از تایپ اسکریپت استفاده میکنن پس شما میتونید از تایپ اسکریپت به صورت Built-in در Deno js استفاده کنید. 

در Deno js نیازی به Node_modules و Package.json ندارید! فوق العاده اس. میتونید کتابخانه هارو به صورت مستفیم از سرور با URL بگیرید. که روی کامپیوترتون Cache میشه و سرعت کامپایل شدیدا افزایش پیدا میکنه. پس دیگه نیازی به استفاده NPM نیست! ویژگی جدید و خوب Deno امنیت اون هست. Deno به صورت پیش فرض اجازه دسترسی به هیچ چیزی ندارد و مثلا حتی موقع راه انداختن سرور از شما اجازه میخواد. دقیقا مثل اپلیکیشن هایی که شما در  اندروید نصب میکنید و از شما اجازه میخواد تا به دوربین و مخاطبین دسترسی پیدا کنه.

 

چه شرکت هایی از deno js استفاده میکنند؟

  • Microsoft
  • Amazon
  • Shopify
  • Salesforce

 

آیا Denojs جایگزین Nodejs میشه؟

خب طبق استدلال های پاراگراف بالا Deno js جایگزین بهتر، قوی تر و کامل تر برای Nodejs هست با امنیت بسیار بالاتر. اما چون Deno js تازه معرفی شده و نسخه رسمیش کمتر از ۱ ماه هست که اومده برای اثبات خودش نیاز به گذر زمان داره و این مواردی که گفته شد بر اساس مستندات و گفته های توسعه دهندگانش هست. نکته بعدی اینه که میلیون ها پکیج و کتابحونه برای Nodejs وجود داره اما هیچ کدوم برای استفاده از دینو استاندارد نشدن و شاید بیشتر از ۱ سال زمان نیاز داره تا این اتفاق بیوفته.

و هیچ وقت از نسخه های اول هیچ پلتفرمی برای پروژه هاتون استفاده نکیند. چون ایرادات و باگ هایی داره که نیاز به رفع داره. پس اینکه بگیم Denojs جایگزین Node میشه شاید بیشتر از یکسال زمان ببره تا همه انتظارات node در deno براورده بشه. البته همه این ها حدس و احتمال بنده هست و سرعت تکنولوژی خیلی خیلی بیشتر از این حرفاست. شاید زودتر شایدم دیرتر.

یعنی دیگه Nodejs یاد نگیریم؟

یاد بگیر آقا. حتی اگه در آینده قرار باشه بجای node از deno استفاده کنی باز باید nodejs یاد بگیری. چرا که سینتکس تا حدودی همونه و شما از یادگیری نود جی اس ضرر نمیکنید. در ضمن تا دینو جا بیوفته و بشه اعتماد کرد شاید خیلی طول بکشه و تا اون موقع شما میمونی و دست های خالی. پس پیشنهاد میکنم حتما Nodejs یاد بگیر. مطمئن باش Denojs هم بهتر یاد میگری.

الان موقع یادگیری Deno JS هست؟

به نظرم الان نه! یعنی در تیرماه ۹۹ که دارم این مقاله رو مینویسم، میگم Deno یاد نگیرید. البته اگه یاد بگیری ضرر نمیکنی. اگه node بلدی و میخوای اضافه یاد بگیری، اوکیه. اما اگه تازه میخوای بک اند شروع کنی پیشنهاد میکنم Node یاد بگیر تا زمانی که دینو جا بیوفته و براش کتابخونه های مورد نیاز بیاد و باگ های احتمالی بر طرف بشه. الان تقریبا هر هفته یک آپدیت برای دینو میاد و برای شمایی که تازه میخوای back-end یاد بگیری منبع و آموزش مناسبی برای deno نیست و در ضمن تعداد برنامه نویس هاش خیلی کمه و اگه به مشکل بخوری ممکنه نتونی زود جوابتو پیدا کنی.

پس اول Node یاد بگیر اگه دوس داشتی آپدیت باشی و آینده نگر برو سراغ Deno Js

در ماه های آینده تخصصی تر Deno js و Node js رو بررسی میکنیم که در چه مواردی کدوم قوی تر عمل میکنه.

 

سخن آخر

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

اشتراک گذاری:
برچسب ها: Deno jsدینو جی اس

7 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • Aria گفت:
    21 مهر 1399 در 11:28

    اونوقت دینو هم مثل نو جی اس برای سایت های تک صفحه مناسبه یا نه برای سایت های چند صفحه ای هم مناسبه؟

    برای پاسخ دادن وارد شوید
  • سبحان اسفندیاری گفت:
    11 مرداد 1399 در 00:04

    با سلام و عرض خسته نباشید دینو با ریکت بیشتر سازگاری داره یا آنگولار

    برای پاسخ دادن وارد شوید
    • محمدرضا حاجی مقصودی گفت:
      12 مرداد 1399 در 16:32

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

      برای پاسخ دادن وارد شوید
  • محمدرضا گفت:
    28 تیر 1399 در 02:09

    خیلی عالی و خوب بود قشنگ کسی که فقط اسمشو شنیده و هیچ چیز دربارش نمیدونه با این مقاله یه آشنایی خیلی خوبی پیدا میکنه😍❤

    برای پاسخ دادن وارد شوید
    • محمدرضا حاجی مقصودی گفت:
      28 تیر 1399 در 16:53

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

      برای پاسخ دادن وارد شوید
    • arian گفت:
      30 تیر 1399 در 10:18

      مرسی از اینکه وقت گذاشتید و همچین ویدیو فوق العاده با کیفیتی تولید کردید آقای حاجی مقصودی عزیز 🌹⁦👌🏻⁩⁦💛

      برای پاسخ دادن وارد شوید
      • محمدرضا حاجی مقصودی گفت:
        30 تیر 1399 در 18:09

        مرسی بابت تماشا.

دیدگاهتان را بنویسید لغو پاسخ

برای نوشتن دیدگاه باید وارد بشوید.

جستجو برای:
هیولای جاوااسکریپت

آموزش پروژه محور جاوااسکریپت

آموزش پروژه محور جاوااسکریپت

دسته‌ها
  • Angular
  • Business, Customer Service
  • Business, Sales
  • Business, Small Business
  • Denojs
  • Electronjs
  • Mongo DB
  • Nodejs
  • React
  • Vue
  • آموزش طراحی سایت با HTML
  • ابزار و تکنولوژی
  • جاوا اسکریپت
  • جاوااسکریپت
  • دسته‌بندی نشده
  • سوالات برنامه نویسی
  • فریم ورک ها
  • کتابخانه
  • کتابخانه ها
  • هیولای برنامه نویسی | آموزش رایگان برنامه نویسی
  • وبلاگ
  • یادگیری React
  • یادگیری جاوااسکریپت
  • یادگیری جی کوئری
جاوااسکریپت را از کجا شروع کنیم؟

نقشه راه یادگیری جاوا اسکریپت

MEGAJS | مگا جی اس

جدیدترین نوشته ها
  • Zodiac Casino 50 Free Spins No Deposit Bonus
  • Real Money Online Casinos in New Zealand.4
  • Real Bitcoin Casino Play Now With Real Crypto
  • High Society Casino High Roller Experience
درباره MEGA JS، دنیای جذاب جاوااسکریپت

جاوا اسکریپت یک زبان برنامه نویسی همه فن حریف برای برنامه نویسی وبسایت، اپلیکیشن، هوش مصنوعی، ربات تلگرام، فیلترنویسی اینستاگرام و حتی بازی سازی استفاده میشه. وبسایت MEGAJS اولین مرجع تخصصی آموزش جاوااسکریپت، کتابخونه ها و فریمورک های JavaScript به زبان فارسی هست.

لوگو اینماد

دوره های رایگان مگا جی اس

دوره رایگان آموزش جاوااسکریپت
دوره رایگان آموزش ری اکت

دوره رایگان آموزش عملگرهای جاوا اسکریپت
دوره رایگان آموزش حلقه ها و شرط ها
دوره رایگان آموزش آبجکت های جاوااسکریپت
دوره رایگان آموزش آرایه ها در جاوا اسکریپت
دوره رایگان آموزش توابع در جاوااسکریپت

دوره های هیولای مگا جی اس

دوره ۲۰روش درآمدی هیولای درامدزایی
دوره پروژه محور هیولای جاوا اسکریپت
دوره پروژه محور هیولای ری اکت

فیلم های آموزشی رایگان در

کانال آپارات MEGAJS   کانال آپارات MEGAJS

کانال یوتوب MEGAJS   

تمامی حقوق برای سایت MEGA JS محفوظ می باشد.
ثبت سفارش
×
ورود | ثبت‌نام
شماره موبایل یا ایمیل نامعتبر است.
ورود شما به معنای پذیرش شرایط مگا جی اس و قوانین می باشد

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت