Node.js ממציא ריאן דאהל משחרר דנו: TypeScript / V8 Runtime Environment

מנוע Runtime Engine של Google V8 + TypeScript: שיפורים בשרת Node.js


תקן שרת האינטרנט Node.js הוצג בשנת 2009 על ידי ריאן דאהל והפך בהמשך לאספקט מרכזי בפלטפורמות פיתוח עכשוויות JavaScript. שרתי רשת Apache מתפקדים על בסיס תהליכים משורשרים, ואילו שרתי Node.js פועלים עם לולאות אירועים. אצל משתמשים רבים בו זמנית, הופכת במקביל לשרשור "דולף" ב- Apache, בעוד שרתי Node.js משתמשים בכלי התקשרות חוזרים בכדי לחסל את זמני ההמתנה לשיעורי מקביל מהירים במיוחד. JavaScript פועלת על ידי תכנון על בסיס לולאות אירועים אשר דאהל תעתיק לסביבת זמן ריצה בצד השרת לבניית שרת אינטרנט עם מבנה עיבוד של בקשות קלט / פלט שאינו חוסם. זה מאפשר למתכנתי יישומי Node.js לתסריט תוכניות במקביל מאוד באותה חומרה הזורמת נתונים בקצב מהיר יותר תוך תמיכה גם ב- TCP, DNS, & HTTP ללא אפאצ’י. השימוש בבקשות / בתגובות חתוכות, בפונקציות שמירה על החיים וממשקי API מוכרים הפועלים באופן בלתי תלוי בפלטפורמה הביאו להצלחה של Node.js כתקן שרת אינטרנט, אם כי הוא כולל גם תלות בפייתון. כמעט 10 שנים מאוחר יותר, Dahl פירק את הטעויות שעדיין קיימות ב- Node.js כדי להפעיל מחדש פלטפורמה חדשה שנכתבה ב- Rust / Go שעובדת עם TypeScript & מנוע זמן ההפעלה של Google V8 בסביבת ארגז חול מאובטח.

דנו 2018: ניסיוני, התפתחותי, & מוגבלת לתמיכת TypeScript

המהדורה הראשונה של דנו בשנת 2018 משכה תשומת לב חיובית רבה בקהילת הפיתוח של JavaScript מכיוון שהיא הומצאה על ידי היוצר המקורי של Node.js. דהל הציג יום עיון בכנס JavaScript JavaScript JSConf.EU שכותרתו "10 דברים שאני מצטער על Node.js". דהל קינן כי כבר לא ניתן לשנות רבים מהבעיות המבניות שמצא במסגרת, מכיוון שכל כך הרבה פרויקטים של JavaScript שונים מבוססים על בסיס Node.js כפי שהוא מתוכנן כעת. מההכרה הכפולה הזו המשיך דאל לקודד גרסת גרסת בטא של דנו.

“השימוש בצומת זה ממש כמו ציפורניים על לוח הגיר עבורי. אני רואה את הבאגים שהצגתי שזוכים’לא ממש באגים בשלב זה הם’מחדש איך זה עובד אבל הם באגים והיו טעויות עיצוב שנעשו פשוט לא ניתן לתקן עכשיו כי שם’תוכנה כל כך הרבה שמשתמשת בה.”

על פי הדיווחים, דהל בילה את שנת 2017 כחבר בתוכנית Google Resin-Brain בעבודה עם TensorFlow ונושאים הקשורים לעיבוד מחדש של וידיאו. בכדי להבין את שינוי הפרספקטיבה ביחס לפלטפורמת Node.js, מומלץ להשוות בין שני הסרטונים:

ראיין דאהל: מצגת מקורית של Node.js (2009)

  • "…V8: גוגל
  • ליבב: ספריית לולאות אירועים
  • ליבי: ספריית בריכות
  • מנתח http: מנתח HTTP ragel
  • evcom: ספריית שקעי זרם על גבי ליבב
  • אודים: פותר DNS שאינו חוסם…"

למידע נוסף על העיצוב של שרת האינטרנט המקורי Node.js.

10 דברים שאני מתחרט על Node.js – ראיין דאהל – JSConf EU (2018)

  • "תומך ב- TypeScript מחוץ לקופסה.
  • משתמש בגרסה האחרונה של V8.
  • אין חבילה.json.
  • לא בלילה.
  • לא תואם במפורש לצומת.
  • מייבא כתובות URL של קוד מקור בלבד.
  • ניתן לשלוט על מערכת קבצים וגישה לרשת על מנת להריץ קוד ארגז חול.
  • יחיד הפעלה."

למידע נוסף על דנו: זמן ריצה מאובטח של TypeScript הבנוי ב- V8.

בעיות ב- Node.js: אבטחת אינטרנט, מודולים, Index.js, & תהליך הבנייה

כאשר הציג את דנו באירוע JSConf.EU, הצהיר דאל את התגלית כי "JavaScript בצד השרת דרש לולאת אירועים כדי להצליח" היה החלק הגדול ביותר ב- Node.js שאומץ באופן נרחב בתחום ה- IT. דאל עזב את פרויקט Node.js בשנת 2012 לאחר הפרוטוקולים ל- HTTP & הוקמה תמיכה ב- SSL. באותה עת היו ל- Node.js גרעין קטן, תמיכה בשרת Windows, ומערכת API יציבה, כמו גם מערכת אקולוגית הולכת וגדלה של מודולים חיצוניים באמצעות NPM. במהלך 6 החודשים האחרונים, דהל התחיל מחדש את הקידוד על הרציף עם יעדים שונים.

מבחינת חרטות על פרויקט שרת האינטרנט Node.js, הצהיר דאהר:

  • חרטה: אין כל שימוש בהבטחות להמתנה / לחכות
  • חרטה: אבטחת אינטרנט, הרשאות כתיבה, & גישה לקובץ
  • חרטה: מערכת ה- Build (GYP / GN / Python)
    —> טוב יותר היה ממשק פונקציה זרה (FFI)
  • חרטה: ג’ייסון & תלות במאגר המרכזי של NPM
  • חרטה: מודולי הצומת כבד מדי & לעיתים קרובות נדרש ללא הרחבה
  • חרטה: Index.js מסבך את מערכת טעינת המודולים & יתר על המידה "חמוד"

בסך הכל, דאל הודה שהוא עדיין אוהב את Node.js, מבנה הקלט / פלט, & תכנות בפלטפורמה, אך בנה סביבת זמן ריצה של דנו כדי להתמודד עם חרטות אלו עם מוצר חדש.

התקן Deno באמצעות Bash:

כינוי file_server ="דנו \

https://deno.land/x/net/file_server.ts –allow-net"

שדרג לגרסה האחרונה שפורסמה של Deno:

file_server – טען מחדש

למידע נוסף על סביבת הפעלת שרת האינטרנט Deno עבור TypeScript.

Deno: שעון מוצר חשוב עבור Node.js, JavaScript, & תמיכה ב- TypeScript

Deno משתמש ב- JavaScript כארגז חול מאובטח ומאפשר למשתמשים להצטרף לרשת מאובטחת בזמן ריצה. זה לא מאפשר לקשור פונקציות מקוריות שרירותיות ל- V8. במקום זאת, כל שיחות המערכת מתבצעות באמצעות העברת הודעות. Deno אינו תומך כרגע בתאימות למודולים אחרים של Node.js, ומתמקד אך ורק בתמיכת TypeScript. על כל הקבצים המיובאים לדרוש סיומת קבצים & השתמש בתמונות V8 לזמני הפעלה מהירים יותר בהרכבה. דהל מתכנת בימים אלו את דנו ב- C ++, Go, & חלודה. רבים מההתקדמות & לשינויים שהציג דנו אפשרות טובה לשלב בסופו של דבר בפרויקט Node.js. Deno הוא פרויקט חשוב לצפייה בעתיד של JavaScript, TypeScript, & פיתוח Node.js.

צומת EventMachine :: run (): "בתור אירוע אסינכרוני מונע זמן ריצה של JavaScript, Node נועד לבנות יישומי רשת הניתנים להרחבה … זאת בניגוד למודל המקביל השכיח יותר כיום בו משתמשים בחוטי מערכת הפעלה. רשת מבוססת חוט אינה יעילה יחסית וקשה מאוד לשימוש. יתר על כן, המשתמשים ב- Node אינם חופשיים מדאגות מפני נעילת מתים של התהליך, מכיוון שאין מנעולים. כמעט שום פונקציה ב- Node מבצעת באופן ישיר קלט / פלט, כך שהתהליך לעולם לא נחסם. מכיוון ששום דבר לא חוסם, מערכות ניתנות להרחבה סבירות מאוד לפתח ב- Node … הצומת דומה בעיצוב למושפע ממערכות כמו מכונת האירועים של רובי או Twisted של פייתון. Node לוקח את מודל האירוע קצת יותר רחוק. הוא מציג לולאת אירועים כבניית זמן ריצה במקום כספרייה." למידע נוסף על Node.js.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map