דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
רפאלר

רפאל

@רפאל
אודות
פוסטים
186
נושאים
3
קבוצות
0
עוקבים
3
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר
    רפאלר רפאל

    @צדיק-תמים אמר במגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר:

    וגם פוש לפי מה שהבנתי
    מוגבל ל50/100 מגה

    מדוייק

    GitHub blocks pushes that exceed 100 MB.

    הפתרון הוא שימוש ב Git Large File Storage (או בקיצור Git LFS)

    Git LFS מיועד עבור קבצים מעל 100MB, הקבצים אינם מאוחסנים בRepository, במקום זאת Git LFS יוצר Pointer file שמשמש כReference עבור אותם קבצים.
    בחשבון החינמי של Github\Gitlab אתה מוגבל עד 2GB לקובץ.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    רציתי להעלות את כל הקוד שהתגבש לי לחיפוש נהדר,
    אבל @yossiz אומר שזה לא מענין אף אחד ה WIX שלי.

    @אבי-203 חלילה לי מלחלוק על @yossiz אבל אני חושב שאדרבה, זה מעניין מאוד.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @yossiz אמר בהחלפת הקלדה לעברית.:

    (בעצם זה חוסך יצירה מחדש של ה-map בכל יצhרה של ה-class)

    בהחלט, אולם שימוש בStatic (כפי שהצעת) יסדר את העניין.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @yossiz

    אפשר לשאול למה לא עשית convert ו-lookup סטטיים

    שקלתי את העניין אבל הצעד היה מאריך את הסינטקס וממילא פוגע בקריאות.

     return str.replace(/./g, x => LayoutConvertor.#lookup.get(x) ?? LayoutConvertor.#lookup.get(x.toLowerCase()) ?? x)
    

    (ואז כבר די מיותר להשתמש בקלאס).

    כמפתח TS למדתי לשנוא הרחבות של הPrototype, ובתור איש #C אני לא מסוגל לראות קוד משוטט מחוץ למחלקה מרחף לו בחלל 🌌 .

    שורה תחתונה: שיקולים רגשיים בלבד שמזיקים לסביבה.

    אדרבה אני מזמין אותך לשנות את הקוד כרצונך ובטוחני שהתוצאה תהיה מרשימה ביותר.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @אבי-203
    אני חושב שהקוד תקין.

    class LayoutConvertor {
      static convert(str) {
        return str.replace(/./g, x => this.#lookup.get(x.toLowerCase()) ?? x)
      }
    
      static #lookup = new Map([
        ["q", "/"],
        ["w", "'"],
        ["e", "ק"],
        ["r", "ר"],
        ["t", "א"],
        ["y", "ט"],
        ["u", "ו"],
        ["i", "ן"],
        ["o", "ם"],
        ["p", "פ"],
        ["[", "]"],
        ["{", "}"],
        ["]", "["],
        ["}", "{"],
        ["\\", "\\"],
        ["|", "|"],
        ["a", "ש"],
        ["s", "ד"],
        ["d", "ג"],
        ["f", "כ"],
        ["g", "ע"],
        ["h", "י"],
        ["j", "ח"],
        ["k", "ל"],
        ["l", "ך"],
        [";", "ף"],
        [":", ":"],
        ["'", ","],
        ["\"", "\""],
        ["z", "ז"],
        ["x", "ס"],
        ["c", "ב"],
        ["v", "ה"],
        ["b", "נ"],
        ["n", "מ"],
        ["m", "צ"],
        [",", "ת"],
        ["<", ">"],
        [".", "ץ"],
        [">", "<"],
        ["/", "."],
        ["?", "?"]
      ]);
    }
    

  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @yossiz ודאי הבנת מדוע הקובץ הזה נצרך, לכן תמהני על מה שכתבת.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @yossiz חידות לי דבריך, מדובר בקוד Javascript פשוט.


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @yossiz הקוד קריא וברור בGithub, מה מונע ממנו לעשות בו שימוש?


  • החלפת הקלדה לעברית.
    רפאלר רפאל

    @אבי-203 מסתבר (איך לא) שכמו כל רעיון אדיר בחיים, מישהו כבר חשב עליו 😕, ומימש אותו בדומה לאפשרות השנייה שהצעת.

    שימוש:

    const he = require('convert-layout/he');
    console.log(he.fromEn("nv bnag?"));
    
    

  • קוד חמוד/רע/איום ליצירת רשימת מספרים ב-JS
    רפאלר רפאל

    @yossiz

    מי נתן לך רשות להכניס לפה typescript?

    אני מתנצל, לא העלתי בדעתי שהפורום הוא TypeFree.

    אני מניח שאתה מתכוון ל-polling ולא ל-pulling

    צודק תיקנתי, (בראש שלי זה תמיד Pulling, מלשון משיכה, ולא סקר).

    אבל אני לא מבין למה אתה אומר שזה משמעותית לאין ערוך

    אכן מימוש של רעיון זהה, אולם תבדוק מתי מימשת Iterator או לחלופין יצרת Generator שאינו אסינכרוני לאחרונה.

    Enumrable/Enumerator אכן שימושיים ב#C, בשילוב עם מתודות הLINQ, אולם אינם שימושיים כלל כשלעצמם, לכן לדעתי כל עוד שהIterator Helpers אינם קיימים בJS, אין הרבה מה לעשות עם הIterators/Generators הללו.


  • קוד חמוד/רע/איום ליצירת רשימת מספרים ב-JS
    רפאלר רפאל

    עד כמה שIterators/Generators שימושיים, סבורני שהגירסה האסינכרונית (AsyncIterator) משמעותית לעין ערוך.
    להלן מימוש של Polling באמצעות Async Generator:

    class StockPricePoller {
      private readonly _url = "https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new";
    
      public async waitFor(thresholdPrice: number): Promise<number> {
        for await (const currentPrice of this.stockPrice())
          if (currentPrice >= thresholdPrice) return currentPrice;
      }
    
      private async *stockPrice(): AsyncGenerator<number> {
        while (true) yield await fetch(this._url).then(x => +x.text())
      }
    }
    

    שימוש:

    const price = await new StockPricePoller().waitFor(5);
    

    הדוגמא לא מושלמת, והיה רצוי להמתין בין הבקשות (Throttling).

    אגב הרעיון קיים גם ב#C ומכונה AsyncEnumerable
    בקוטלין הוא מכונה Asynchronous Flow (דגם היברידי של תכנות אסינכרוני ותכנות ריאקטיבי).


  • קבצים ב node js
    רפאלר רפאל

    @yossiz
    ישנם שני סיבות:

    1. Scalability: הנפח של הנתונים רק הולך וגדל, ניתן להניח שבנקודת זמן כלשהי בעתיד, האפשרות לשמור את הנתונים בצורה מקומית תהיה בלתי אפשרית \ יקרה להחריד.
    2. Availability: בעידן של הLoad balancing, אכסון המידע בNodes שונים, לא מאוד יעיל אם יש צורך בשליפתו.

  • בעקבות האשכול תבניות של API - איזה תחליף יש לnode.js ??
    רפאלר רפאל

    @davidnead זה בדיוק מה שניסיתי להסביר, מנסיוני הצנוע הפיתוח בASP מהיר יותר מNode.
    הקמת אפליקציה הכוללת מסד נתונים, אימות, וHttp API היא משימה שמסתכמת בדקות ספורות עבור מפתחים בASP.
    ובכלל הפיתוח בASP, מלא אוטומציות, לדוגמה המחלקות שאתה בונה מתורגמות לטבלאות במסד הנתונים, אחרי שיש לך Entity שמייצגת טבלה, באפשרותך ליצור Controller שמכיל נקודות קצה (וכן Views המכילים קוד תצוגה) עבור כל הפעולות הבנאליות (CRUD) עבור אותו Entity בלחיצת כפתור.


  • ASP.NET vs ...
    רפאלר רפאל

    @nigun מה שניסיתי להסביר זה שASP זה Stack הכולל שרת HTTP, גישה למסדי נתונים, קריאה וכתיבה לקבצים וכו`, היתרון של ASP היא השימוש השיטתי של כלל המרכיבים בתכנות אסינכרוני, מה שאומר שבשימוש נכון לא קיימת המתנה עבור פעולות מסוג IO כלל.


  • ASP.NET vs ...
    רפאלר רפאל

    @nigun צרפתי מקור, עם זאת צריך לזכור שישנם צווארי בקבוק רבים, כך שהחשיבה בכיוון אחד הוא מוטעה.
    אני התייחסתי לRequest Per Seconds, שבו ASP מצטיינת תודות לשימוש האינטנסיבי של השרת Kestrel והמרכיבים של הFramework בתכנות אסינכרוני, בה הThread חוזר לThreadpool בהמתנה לפעולות מסוג IO.

    הBenchmark שציינתי מייצג את הComposite scores, שזה ציון המשקלל את שאר הטסטים.


  • בעקבות האשכול תבניות של API - איזה תחליף יש לnode.js ??
    רפאלר רפאל

    הוזכרו כאן Frameworks רבים אולם מקומה של ASP.NET נפקד, לכן לקחתי על עצמי בדחילו ורחימו את המשימה החשובה 😊 ( אני חייב לציין שזו דעתי האישית בלבד, ואני אשמח לשמוע את חוות דעתם של המומחים ממני כאן)

    ASP.NET מהירה בהרבה מNodeJs, ולמעשה היא נחשבת אחת מהWeb servers המהירים והיעילים ביותר כיום (משאירה הרחק מאחור את Java, Go, NodeJs).

    בניגוד לפיתוח בסביבת NodeJs בה אתה נתון לחסדיהם של ספריות שנכתבו ע"י חברות ואנשים שונים בתקווה שהכל יתחבר איך שהוא לאפליקציה אחת, בASP.NET הפיצרים החשובים והשימושים ביותר מובנים בFramework לדוגמא:

    • Dependency Injection
    • Logger
    • Localization
    • Template engine
    • WebSocket
    • ORM
    • Authentication/Authorization

    ** חלק מהפריטים ברשימה הנ"ל מהווים ספריות בפני עצמם, אולם כולם נכתבו ותוכננו בהתאם לתמונה הגדולה.

    כחלק מהגדרות הBuild ניתן לבחור במצב Self-hosted, מה שאומר שבסיום התהליך, נקבל קובץ הרצה ללא תלויות (ניתן להרצה כיישום Portable על כל מחשב), לחלופין ניתן לפרוס את האפליקציה באמצעות תמונת Docker רשמית של Microsoft.

    מספר בקשות לשניה:
    בקשות לשניה

    לסיכום
    NodeJs איננה מציעה יתרונות כלשהם על פני ASP.NET ,למעשה אני סבור שהיא מציעה רק חסרונות שהמשמעותי שביניהם הוא היותה Single-Threaded, הטיב להגדיר זאת @dovid בשימוש באנלוגיה של טרקטור צעצוע שעבר הסבה לשימוש באתרי בנייה.
    ASP.NET לעומת זאת היא סביבה יציבה מאוד, בה יש דרך מוגדרת לבצע משימות, בה כולם מדברים באותה שפה ושבה אתה מקבל יכולות אדירות בתמורה למעט מאוד שורות קוד.

    אגב שווה להכיר את התחביר המינימלי החדש של ASP.NET שדומה באופן חשוד לExpress:

    var app = WebApplication.CreateBuilder(args).Build();
    
    app.MapGet("/", () => "Hello World!");
    
    app.Run();
    

    שרת HTTP בשלושה שורות בלבד.

    הקוד הנ"ל מתאפשר עקב שיפורים (חלקם בתחביר של השפה) שהתבצעו בשנים האחרונות:

    1. Implicit using directives: חסל סדר הרשימה הארוכה של Using בראש כל קובץ.
    2. Top level statements: ניתן לכתוב קוד בקובץ הראשי מחוץ למחלקה או למתודה,
    3. אין יותר צורך במחלקת Startup.

  • הרצת כמה גירסאות NODEJS במקביל ע"י PM2
    רפאלר רפאל

    @מנצפך להלן נידון בGithub לגבי העניין, עם זאת אני סבור שכדאי לשקול את השימוש בDocker.

  • 1
  • 2
  • 6
  • 7
  • 8
  • 9
  • 10
  • 8 / 10
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום