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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. C# או NODE.JS

C# או NODE.JS

מתוזמן נעוץ נעול הועבר תכנות
51 פוסטים 9 כותבים 2.2k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    השיב לשואף ב נערך לאחרונה על ידי nigun
    #18

    @שואף אמר בC# או NODE.JS:

    @nigun נקודה חשובה באמת. למרות שיש את החיסרון (שאני עדיין לא מספיק מבין לעומק) שבNODE אתה לא מריץ כל פעם את הסקריפט וממילא כשעושים שינוי צריך לעשות איזו הפעלה מחדש.

    אכן בעיה
    הפתרון הפשוט הוא לעבוד עם שתי סביבות עבודה
    ולעדכן את הסביבת פרודקשן בשעות שקטות.

    אם זה לא שייך, אפשר להתגבר על זה ע"י חלוקה למיקרוסרביס
    דהיינו לעשות שרת בנוד וכדו' שיהיה אחרי רק על שמירת נתונים בזיכרון וכדו'
    ואת שאר הקוד לשים בסקריפטים/שרת נפרד. (כשאני כותב "שרת" אני לא מתכוון למכונה נפרדת כמובן).

    מייל: nigun@duck.com

    תגובה 1 תגובה אחרונה
    2
    • שואףש מנותק
      שואףש מנותק
      שואף
      השיב לyossiz ב נערך לאחרונה על ידי
      #19

      @yossiz אמר בC# או NODE.JS:

      @שואף PHP לא נבנתה מתחילה עבור שימוש כזה. אבל במשך חייה הארוכות PHP עברה כמה אבלוציות...
      אני לא ממליץ על שימוש ב-PHP עבור, אבל בשקלול העלות/תועלת של האפשרויות קח בחשבון ש(לכאורה) זה אפשרי לגמרי ב-PHP.
      תבדוק את זה:
      https://amphp.org (עדיין לא פתוח בנטפרי, שלחתי בקשה לפתיחה)
      https://reactphp.org (עדיין לא פתוח בנטפרי, שלחתי בקשה לפתיחה)
      https://github.com/WyriHaximus/reactphp-cron

      תודה, נראה מעניין. אם תוכל לעדכן כשהאתרים ייפתחו.

      ליצירת קשר: admin@i-call.me

      הידד! גישה למייל גם בלי מחשב ואינטרנט!

      yossizY תגובה 1 תגובה אחרונה
      0
      • yossizY מנותק
        yossizY מנותק
        yossiz
        כתב ב נערך לאחרונה על ידי
        #20

        @שואף אמר בC# או NODE.JS:

        למרות שיש את החיסרון (שאני עדיין לא מספיק מבין לעומק) שבNODE אתה לא מריץ כל פעם את הסקריפט וממילא כשעושים שינוי צריך לעשות איזו הפעלה מחדש.

        לא הייתי אפילו לוקח את זה בחשבון.
        PM2 יכול לטפל בזה.
        בכל מקרה אני מקווה שאתה לא עובד ישירות על מכונת הפרודקשיין
        ואם כן בעת העלאה אתה מפעיל מחדש את השרת גם כן. אפשר לחבר סקריפט קטנצ'יק עבור עדכון השרת.

        אלא מאי אתה מתכוון שאז אתה מפסיד את ה-state הגלובלי שבזכרון?
        האם ב-PHP המצב יותר טוב? הרי שם אי אפשר בכלל לשמור על state גלובלי.

        @nigun אמר בC# או NODE.JS:

        דהיינו לעשות שרת בנוד וכדו' שיהיה אחרי רק על שמירת נתונים בזיכרון וכדו'

        לא צריך לממש בעצמך דברים שאחרים כבר מימשו. יש את redis, או ספריות שעושים את זה בתוך נוד.

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        nigunN תגובה 1 תגובה אחרונה
        1
        • nigunN מנותק
          nigunN מנותק
          nigun
          השיב לyossiz ב נערך לאחרונה על ידי nigun
          #21

          @yossiz אמר בC# או NODE.JS:

          לא צריך לממש בעצמך דברים שאחרים כבר מימשו. יש את redis, או ספריות שעושים את זה בתוך נוד.

          גם את redis צריך ללמוד😕
          אני מצאתי שיותר קל להשתמש בספריה מאשר ללמוד את הAPI של redis.

          @yossiz אמר בC# או NODE.JS:

          לא הייתי אפילו לוקח את זה בחשבון.
          PM2 יכול לטפל בזה.
          בכל מקרה אני מקווה שאתה לא עובד ישירות על מכונת הפרודקשיין
          ואם כן בעת העלאה אתה מפעיל מחדש את השרת גם כן. אפשר לחבר סקריפט קטנצ'יק עבור עדכון השרת.
          אלא מאי אתה מתכוון שאז אתה מפסיד את ה-state הגלובלי שבזכרון?
          האם ב-PHP המצב יותר טוב? הרי שם אי אפשר בכלל לשמור על state גלובלי.

          הבעיה היא שבהפעלה מחדש כל החיבורים נופלים
          ובשרת אסטריסק זה בעיה.

          מייל: nigun@duck.com

          תגובה 1 תגובה אחרונה
          3
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לdovid ב נערך לאחרונה על ידי
            #22

            @dovid אמר בC# או NODE.JS:

            מבחינת ארכיטקטורה, nodejs מאוד מאוד מתחיל מהקרשים, כל דבר מאוד מאוד "ידני" שמה,

            אני לא מרגיש כך. בשימוש ב-express אני מקבל את הבקשה בצורה מסודרת מאוד. אני לא מכיר איך בדיוק הבקשה נראית בנוד native. אבל אין סיבה לא להשתמש בספריות.

            @dovid אמר בC# או NODE.JS:

            אם אתה מתכוון לכמות התחביר הרבה של C#, כלומר טיפוסים מחלקות ובכלל כל הטיפוסיות הקשוחה,

            כן, לזה התכוונתי. אבל זה לא over engineered אלא שפה שונה.
            זו שפה עם טייפים סטטיים (שהוא הרבה יותר טוב לביצועים). ו-object oriented. זה מסביר כל ה-over engineering, לא?

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            A תגובה 1 תגובה אחרונה
            0
            • A מנותק
              A מנותק
              avr416
              כתב ב נערך לאחרונה על ידי
              #23

              איזה כיף! סוף סוף יש דיון מעניין 🙂

              אין לי תשובה לשאלה שלך, אבל בתור אחד שבא מPHP (שרק עכשיו נחשפתי אליה בקוד של לקוח שלי..) אז מניח שיהיה לך הרבה יותר קל להגר לJS מאשר לC#.
              JS יותר דומה לPHP מאשר לC#.
              C# היא שפה עם טיפוסיות חזקה, כל דבר צריך להצהיר עליו לפני (מחלקות וכו') ואתה לא יכול פשוט לכתוב וזהו. אין דבר כזה.

              (הערת אגב - דווקא היום נראה שיש אופנה חזקה בJS לאמץ את הצדדים הללו של C#. הרבה אנשים עוברים לאמץ את התכונות של הטיפוסיות החזקה מC#, ועוברים להשתמש בTS (טייפסקריפט בלע"ז). לאט לאט אני שומע על הרבה מתכנתים שכבר לא משתמשים בexpress בnode, אלא בnestjs שהוא כעין אנגולר לשרת נוד. (בסוף כשאתה כותב פרוייקט לטווח ארוך, גם אם הוא פרוייקט קטן - זה מצדיק את עצמו. הפרוייקט בנוי בצורה מסודרת, כל אחד יכול להבין מה הולך בפנים, מה אתה מצפה מעביר לפונקציה / מחזיר ממנה וכו').

              לעצם הצורך שלך, אני בכלל לא מבין למה אתה לא יכול להמשיך להשתמש בקטע קוד שאתה מריץ אותו בcron? מה רע לך בזה? ודווקא ספציפית לזה לא בטוח שנוד הכי טוב..
              נוד עובד על תהליך (פרוסס) אחד, והוא משתמש בצורה אסינכורנית כדי לענות לאלפי בקשות בו זמנית. אבל דווקא בדברים שצריך בהם הרבה גישה לקבצים וכדו' (I/O) מקובל לומר שזה לא הצד החזק שלו.. וכן אם אתה צריך הרבה חישובים בדרך - זה גם לא הצד החזק של נוד. (ואם הבנתי אותך נכון, אתה צריך סקריפט שפונה לדטה בייס, עושה חישובים ואז מבצע פעולות, וכלל אין צורך להחזיר תשובה ללקוח..)
              נוד נועדה לאפליקציות מרובות בקשות בו זמנית, וזה אכן הצד החזק שלה. (למרות שהיום .net core לא פחות מהיר ואולי אפי' יותר, תעשה חיפוש בגוגל ותמצא מלא השוואות ביניהם).

              אז כמו שדוד כתב - תוודא מה בדיוק הצרכים שלך (חישוביות / גישה להרבה קבצים או דטה בייס / החזרת תשובה ללקוח וכו'), ותעשה השוואה אחד מול השני מה יותר יעיל לך. שניהם אהובים טובים וברורים, ובשניהם יש עבודה ודרישה.

              אם כי כמו שאמרתי בהתחלה, ללמוד JS בלי להבין יותר קל ומהר, מאשר ללמוד C#..

              nigunN yossizY 2 תגובות תגובה אחרונה
              5
              • A מנותק
                A מנותק
                avr416
                השיב לyossiz ב נערך לאחרונה על ידי avr416
                #24

                @yossiz אמר בC# או NODE.JS:

                אני לא מרגיש כך. בשימוש ב-express אני מקבל את הבקשה בצורה מסודרת מאוד. אני לא מכיר איך בדיוק הבקשה נראית בנוד native. אבל אין סיבה לא להשתמש בספריות.

                נכון אבל בASP.NET אתה בכלל יכול לא לדעת שיש דבר כזה שנקרא request..
                וזה מה שדוד התכוון לברזלים.

                @dovid אמר בC# או NODE.JS:

                אם אתה מתכוון לכמות התחביר הרבה של C#, כלומר טיפוסים מחלקות ובכלל כל הטיפוסיות הקשוחה,

                כן, לזה התכוונתי. אבל זה לא over engineered אלא שפה שונה.
                זו שפה עם טייפים סטטיים (שהוא הרבה יותר טוב לביצועים). ו-object oriented. זה מסביר כל ה-over engineering, לא?

                נראה לי שלטייפים סטטיים אין קשר להשפעה על הביצועים בכלל, אלא לכתיבה ותחזוקת הקוד וניפוי שגיאות. לכן הרבה עוברים לTS

                yossizY תגובה 1 תגובה אחרונה
                0
                • nigunN מנותק
                  nigunN מנותק
                  nigun
                  השיב לavr416 ב נערך לאחרונה על ידי
                  #25

                  @avr416 אמר בC# או NODE.JS:

                  אבל דווקא בדברים שצריך בהם הרבה גישה לקבצים וכדו' (I/O) מקובל לומר שזה לא הצד החזק שלו.. וכן אם אתה צריך הרבה חישובים בדרך - זה גם לא הצד החזק של נוד.

                  יותר גרוע מPHP?

                  מייל: nigun@duck.com

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • yossizY מנותק
                    yossizY מנותק
                    yossiz
                    השיב לavr416 ב נערך לאחרונה על ידי yossiz
                    #26

                    @avr416 אמר בC# או NODE.JS:

                    אבל דווקא בדברים שצריך בהם הרבה גישה לקבצים וכדו' (I/O) מקובל לומר שזה לא הצד החזק שלו..

                    נראה לי שזה בדיוק הפוך. המודל של נוד לא טוב לקוד שצורך הרבה CPU כי הכל רץ בתוך thread אחד וה-multi-tasking הוא cooperative ולא preemtive. אבל בקוד עם הרבה I/O זה יותר חסכוני להשתמש ב-thread אחד ו-event loop במקום ב-thread pool. שלא לדבר על PHP בלי thread pool ושום דבר אלא thread (או תהליך) חדש לכל בקשה, זה הכי גרוע כי ה-I/O תוקע את ה-thread עד שהיא תסתיים.

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                    A תגובה 1 תגובה אחרונה
                    3
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב לavr416 ב נערך לאחרונה על ידי yossiz
                      #27

                      @avr416 אמר בC# או NODE.JS:

                      נראה לי שלטייפים סטטיים אין קשר להשפעה על הביצועים בכלל

                      נראה לי שאתה לא צודק...
                      אתה צודק שזה תורם גם לתחזוקת הקוד וניפוי שגיאות, אבל הוא גם תורם גדול לביצועים.
                      אפשר להצדיק את דבריך ביחס ל-typescript כי שם זה מתקמפל ל-JS רגיל, אז מן הסתם אין יתרונות בביצועים, או אולי יתרון מינורי. אבל שפה שכל כולה טייפים סטטיים מסוגל לביצועים גבוהים יותר.

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      A תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לnigun ב נערך לאחרונה על ידי
                        #28

                        @nigun אמר בC# או NODE.JS:

                        יותר גרוע מPHP?

                        בהחלט, בפעולות עתירות CPU (כמו שהעיר @yossiz).

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה
                        2
                        • ב מנותק
                          ב מנותק
                          ב.ל
                          כתב ב נערך לאחרונה על ידי
                          #29

                          קופץ על האשכול ..
                          אשמח להפניות למדריכים מומלצים ומפורטים על node.js
                          לj.s מצאתי הרבה ואילו על node לא מוצא כ"כ

                          ליצירת קשר - baruchlamdan@gmail.com

                          yossizY תגובה 1 תגובה אחרונה
                          0
                          • A מנותק
                            A מנותק
                            Avraham Wales
                            כתב ב נערך לאחרונה על ידי
                            #30

                            יש בעברית הספר של רן בר זיק (בתשלום) כאן או מאמרים כאן

                            ב תגובה 1 תגובה אחרונה
                            0
                            • ב מנותק
                              ב מנותק
                              ב.ל
                              השיב לAvraham Wales ב נערך לאחרונה על ידי ב.ל
                              #31

                              @Avraham-Wales אמר בC# או NODE.JS:

                              יש בעברית הספר של רן בר זיק (בתשלום) כאן או מאמרים כאן

                              יש לי את זה.
                              מחפש עוד..

                              ליצירת קשר - baruchlamdan@gmail.com

                              תגובה 1 תגובה אחרונה
                              0
                              • yossizY מנותק
                                yossizY מנותק
                                yossiz
                                השיב לב.ל ב נערך לאחרונה על ידי
                                #32

                                @ב-ל בד"כ לא אוהבים פה קפיצות על אשכולות. אפשר לפתוח אשכול חדש.

                                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                תגובה 1 תגובה אחרונה
                                6
                                • yossizY מנותק
                                  yossizY מנותק
                                  yossiz
                                  השיב לשואף ב נערך לאחרונה על ידי
                                  #33

                                  @שואף אמר בC# או NODE.JS:

                                  אם תוכל לעדכן כשהאתרים ייפתחו

                                  נפתחו

                                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                                  תגובה 1 תגובה אחרונה
                                  3
                                  • ח מנותק
                                    ח מנותק
                                    חוקר
                                    כתב ב נערך לאחרונה על ידי
                                    #34

                                    לעצם הנושא עליו נפתח הדיון כאן.
                                    אני עובד היום עם PHP ובמקביל עם NODEJS.
                                    התחלתי עם PHP וכשזה לא הספיק לעומסים למדתי נוד וכבר מצאתי הרבה סיבות לעבוד איתו.
                                    אני עובד עם שניהם משולב על שרת אחד עם שרת nginx שזה לא מפריע לי ולא אחד על חשבון השני.
                                    לדעתי @שואף יהיה לך תועלת גדולה מלימוד nodejs למרות הזמן הרב שזה ידרוש ממך.
                                    אני עשיתי את זה מכורח המצב עבור המערכות של המצינגים שרציתי לחסוך את הבדיקה מול הAPI של צ'רידי עבור כל שיחה אלא שהמידע המתקבל יהיה נגיש לכל השיחות מאותה קריאה, והתחלתי ללא שום ידע בJS (יעידו על זה השאלות שלי כאן בפורום כשהתחלתי עם נוד), אך לאחר מכן העברתי לנוד עוד מערכות כישיבה על קברו ופתחתי עוד ועוד מערכות בנוד.
                                    ומצד שני לדברים קטנים אני עדיין משתמש בPHP.
                                    אני יכתוב מה שעולה לי בראש, ומסתבר שיש הרבה יותר.
                                    מהמעלות בנוד:
                                    תהליך שרץ בצד השרת כל הזמן, אתה שומר נתונים לאורך התהליך ללא הצבתם ושליפתם בכל קריאה מחדש, שזה אומר שנתונים קבועים וכדומה אתה שולף פעם אחת באתחול השרת והמידע נגיש לך לאורך הדרך ללא שליפתו מהד"ב לכל קריאה מחדש. אינו זולל CPU (אבל זולל ראם לפי הכמות שתאחסן בזמני), עמיד בעומסים.
                                    ולגבי שאילתך, יש ספריה פשוטה של תזמון משימות, אתה יכול לתזמן לפי תאריכים, לפי זמנים ודקות ועוד ולשנות את התזמון ולבטל וכו' בתוך הקוד ללא cron.
                                    ובכלל זה היה קפיצה טובה בשבילה לJS שכבר באה מאוד הרבה לשימוש בממשק שלי שהיא אגב פרימוורק ב PHP.
                                    מהחסרונות: כל שינוי דורש אתחול של השרת (כמעט שזה אינו מורגש ללקוחות, אבל עדיין מסרבל, ובעיקר שמי שרגיל לPHP זה באמת מנכסס).
                                    יש להזהר שלא ליצור לולאות שזוללות זיכרון או מה כי אז תוכל להפיל לעצמך את השרת (משא"כ PHP שבדר"כ מגביל את עצמו לכמות הראם שמאפשר לסקריפט לצרוך).

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

                                    בנוסף אציין שגם אני ב"ה אברך כולל במשך היום, ומפרנס את עצמי מהעבודה בערבים ובצהריים, אין לי את כל הזמן שבעולם, אך אני לא מתחרט שעברתי לנוד. התועלת שהייתה לי ממנה היא לאין ארוך (ואכן רק בזכות החברים כאן בפורום ובעיקר @dovid שהמליצו לי לבצע את המהלך)

                                    תגובה 1 תגובה אחרונה
                                    9
                                    • nigunN מנותק
                                      nigunN מנותק
                                      nigun
                                      כתב ב נערך לאחרונה על ידי nigun
                                      #35

                                      @שואף
                                      הבנת מה ההבדלים בסופו של יום בין נוד לC#?
                                      מתי כדאי להשתמש בC# ומתי בנוד?
                                      אני לא בטוח שהבנתי , אולי מישהו יעשה סיכום ברור?
                                      (לא שאני יעבור מחר שפה, אבל מעניין אותי מה המעלות של כל שפה)

                                      מייל: nigun@duck.com

                                      dovidD תגובה 1 תגובה אחרונה
                                      1
                                      • dovidD מנותק
                                        dovidD מנותק
                                        dovid ניהול
                                        השיב לnigun ב נערך לאחרונה על ידי
                                        #36

                                        @nigun לא יהיה לך סיכום כי זה מידי הרבה פרמטרים.
                                        C# לעומת JS זה סיכום אחד,
                                        וNODE לעומת ASP או ASP CORE זה סיכום אחר.
                                        את שואף מעניין התוצאה אז ערבבנו בין השניים כדי לסכם מה הוא יעבור בכל אחד.

                                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • שואףש מנותק
                                          שואףש מנותק
                                          שואף
                                          כתב ב נערך לאחרונה על ידי
                                          #37

                                          די השתכנעתי להתקדם לנוד, בפרט לאור ההודעה היפה והמנומקת של הרב @חוקר. תודה לכל מי שטרח לענות.
                                          למעשה עברתי על המדריכים בW3SCHOOL והתחלתי כבר לתרגל, ולהתרגל לתפיסה שכל כך שונה מPHP.
                                          אגב, אני רואה בהרבה מקומות שמשייכים את נוד לMONGODB. יש קשר בינהם? מה רע בMYSQL ? זאת אומרת אני יודע שיש הבדלים גדולים בגישה בין MYSQL וMONGO, אבל האם זה יש סיבה שמדריכים של PHP ממשיכים עם MYSQL, ונוד עם MONGO?
                                          תודה

                                          ליצירת קשר: admin@i-call.me

                                          הידד! גישה למייל גם בלי מחשב ואינטרנט!

                                          ח yossizY 2 תגובות תגובה אחרונה
                                          2

                                          • 1
                                          • 2
                                          • 3
                                          בא תתחבר לדף היומי!
                                          • התחברות

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

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