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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ביל גייטס - תודה!

ביל גייטס - תודה!

מתוזמן נעוץ נעול הועבר תכנות
21 פוסטים 8 כותבים 684 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי אפליקציה שכתובה בצד שרת Node.js וצד לקוח אנגולר
    בהתחלה התלבטתי איך לכתוב את השרת, ההחלטה היתה לכתוב אותו בטייפסקריפט
    השרת והקליינט משתמשים בקובץ טייפים משותף של כל הישויות המשותפות ביניהם.

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

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

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

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

    בברכה מרובה
    ידידכם הדוש"ט

    dovidD א 2 תגובות תגובה אחרונה
    15
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
      #2

      @יוסף-בן-שמעון איך כותבים נורמלי TypeScript בnodejs?
      עם tsnode?
      יש מצב למדריך קצר למתחיל (בהגדרות פרוייקט VSCODE)?
      כי תמיד אחרי דקה ברחתי לישן והטוב.

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

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

      י חגיח 2 תגובות תגובה אחרונה
      4
      • י מנותק
        י מנותק
        יוסף בן שמעון
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid בלי נדר, כשאפנה אשנה לכתוב מדריך אי"ה

        צדיק תמיםצ תגובה 1 תגובה אחרונה
        3
        • צדיק תמיםצ מנותק
          צדיק תמיםצ מנותק
          צדיק תמים
          השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
          #4

          @יוסף-בן-שמעון ג"א מצפה בכליון עיניים!

          Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
          טיפים

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

            @dovid
            אפשר לכאורה גם עם tsnode, וגם להגדיר את הסקריפט start ככה:

            {
                "scripts":
                {
                    "start": "tsc && node dist/app.js"
                }
            }
            תגובה 1 תגובה אחרונה
            4
            • yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי yossiz
              #6

              נראה לי ש-tsnode לא מומלץ, בטח לא לפרודקשיין, וגם לפיתוח לא. זה כבד ולא יעיל.
              בעקירון זה כמו ש @חגי כתב. יש דגל --watch על פקודת tsc עבור פיתוח.

              יש פה סדרת פוסטים יפה בעברית
              https://blog.castnet.club/blog/js-best-practices-config-ts-part-a

              (מקור - מחקר ישן שלי, זה אחת מהחלומות שלי לעבור ל-TS אחת ולתמיד)

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

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

                @yossiz + @חגי
                כיום אני פותח VSCODE ותמחיל לכתוב נוד בלי שום הכנות מוקדמות,
                ואני מקבל בF5 דיבאג עשיר וטוב.
                ביקשתי מ@יוסף-בן-שמעון מדריך קצר בסגנון של איזה התקנה/הגדרה חד פעמית שבה החיים נהיים יפים.
                זה לא מה שאתם מתכוונים, נכון?
                כי מה שאני מבין ממכם זה "תגדיר תכתוב תוסיף תתקין תוודא" פר פרוייקט.

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

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

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

                  ובכן גם node בצורתו הטהורה מצריך שיהיה לך קובץ הגדרות פר פרוייקט, אז בשביל זה אנשים משתמשים בnpm init,
                  אז אפשר גם באותה מידה ליצור את הסקריפט הבא:

                  #!/bin/bash
                  npm init
                  cat > tsconfig.json << EOF
                  {
                    "compilerOptions": {
                      "module": "commonjs",
                      "esModuleInterop": true,
                      "target": "es6",
                      "moduleResolution": "node",
                      "sourceMap": true,
                      "outDir": "dist"
                    },
                    "lib": ["es2015"]
                  }
                  EOF
                  

                  ואז להריץ במקום npm init

                  וכמובן באופן כללי כדאי להריץ לפני npm i -g typescript

                  dovidD chvC 2 תגובות תגובה אחרונה
                  2
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לחגי ב נערך לאחרונה על ידי dovid
                    #9

                    @חגי סלח לי, אבל נראה שאתה נותן עצות בהרבה בטחון בלי נסיון יומיומי.
                    ראשית כל אתה טועה, ניתן להריץ נוד בלי שום npm ובלי קובץ package. גם אם רוצים חבילה מסויימת, כיום ניתן ישר להתקין (npm i) בלי לעשות init כלל.
                    דבר שני אתה אומר בזלזול שnpm init שקול ללכתוב 10 שורות טקסט. אוקי.
                    עריכה: כעת הבנתי שהתכוונת לקובץ סקריפט במערכת. טוב, אני משתמש בwindows ובעצם אני צריך לכתוב את זה בbat או ps, ואם כבר לכלול שמה כל הגדרה אחרת שנצרכת לסעיף הבא. רעיון.
                    דבר שלישי בכלל לא מפריע כל פעם ליצור tsconfig. זה הבעיה הקטנה וזה לא כ"כ טרחה כי זה רק ביצירת הפרוייקט. מה שמפריע לי זה איך להגדיר את הVSCODE מהר בלי לחפוש כל פעם בארבעה פורומים. הVSCODE זו סביבת העבודה המועדפת עלי, ואני רוצה שכמו בפרוייקט נוד (כלומר קובץ JS בודד בתיקיה) בעת לחיצה על F5 הוא יריץ את הapp.ts בנוד בצורה טובה (דיבאג מלא של נקודות עצירה ממוקדות מאוד, צפיה במשתנים וכו').

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

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

                    חגיח 2 תגובות תגובה אחרונה
                    0
                    • חגיח מנותק
                      חגיח מנותק
                      חגי
                      השיב לdovid ב נערך לאחרונה על ידי
                      #10

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

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

                        @dovid אמר בביל גייטס - תודה!:

                        טוב, אני משתמש בwindows ובעצם אני צריך לכתוב את זה בbat או ps

                        הרצתי את זה בmingw שמגיע עם git, זה גם עובד 🙂 (וככל הנראה גם ב-wsl)
                        וגם הנחתי שVSCODE יקרא אוטומטית את הsource map ולא צריך משהו מיוחד בשביל לדבג typescript, אני אנסה לבדוק את זה

                        עריכה:
                        אכן זה עובד ללא שום הגדרות מיוחדות
                        479bd6f1-df9d-432d-a00f-ca9fce8355f3-image.png

                        רק צריך להגדיר בtsconfig שייצר source map

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

                          @חגי נהדר, אני אבדוק.
                          בינתיים בדקתי בVIsual Studio 2022, וזה ממש עובד תענוג.

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

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

                          תגובה 1 תגובה אחרונה
                          1
                          • chvC מנותק
                            chvC מנותק
                            chv
                            השיב לחגי ב נערך לאחרונה על ידי
                            #13

                            @חגי נשמע מעניין, לא לגמרי הבנתי
                            אולי כדאי שתכתוב את זה בצורה מסודרת? באיזה מקום יעודי
                            יכול לעזור להרבה אנשים

                            בלוג | מייל

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

                              @chv ממש פשוט:
                              א. חד פעמית להריץ במחשב

                              npm i -g typescript
                              

                              ב. לפתוח תיקיה בVSCODE, ליצור קובץ tsconfig.json עם התוכן הבא:

                              {
                                  "compilerOptions": {
                                    "module": "commonjs",
                                    "esModuleInterop": true,
                                    "target": "es6",
                                    "moduleResolution": "node",
                                    "sourceMap": true,
                                    "outDir": "dist"
                                  },
                                  "lib": ["es2015"]
                                }
                              

                              ג. ליצור קובץ ts, לכתוב קוד, ולהריץ עם F5.

                              תודה @חגי !

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

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

                              צדיק תמיםצ תגובה 1 תגובה אחרונה
                              9
                              • צדיק תמיםצ מנותק
                                צדיק תמיםצ מנותק
                                צדיק תמים
                                כתב ב נערך לאחרונה על ידי צדיק תמים
                                #15

                                @יוסף-בן-שמעון @חגי מה עם טעינה חמה? בjs אני משתמש בnodemon, ואז יש לי בpackage.json משהו כזה בערך:

                                "start": "cross-env NODE_ENV=production node app.js",
                                "dev": "cross-env NODE_ENV=development nodemon app.js",
                                

                                בפרודקשן אני מריץ כרגיל עם npm start, ובפיתוח אני מריץ עם npm run dev, ונהנה מטעינה חמה, שבלי זה זה ממש סיוט לרסטרט את השרת בכל שינוי...
                                בפרודקשן של הts עשיתי:

                                    "start": "tsc && node dist/app.js",
                                

                                וזה עובד מעולה, מקמפל ואז מריץ,
                                אבל לא הצלחתי להשיג טעינה חמה...
                                זה לכאורה מה שצריך:

                                    "dev": "tsc --watch && nodemon dist/app.js"
                                

                                אבל זה אמנם מקמפל מחדש את הקבצי ts בכל שינוי, אבל השרת בעצמו לא רץ...
                                מישהו יודע?
                                עריכה: יש חבילה בשם ts-node-dev - npx ts-node-dev app.ts, אבל @yossiz אמר בביל גייטס - תודה!:

                                נראה לי ש-tsnode לא מומלץ, בטח לא לפרודקשיין, וגם לפיתוח לא. זה כבד ולא יעיל.
                                בעקירון זה כמו ש @חגי כתב. יש דגל --watch על פקודת tsc עבור פיתוח.

                                למה? מה ההבדל?

                                Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                                טיפים

                                yossizY 2 תגובות תגובה אחרונה
                                0
                                • א מנותק
                                  א מנותק
                                  ארכיטקט
                                  השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                                  #16

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

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

                                  nigunN תגובה 1 תגובה אחרונה
                                  4
                                  • nigunN מנותק
                                    nigunN מנותק
                                    nigun
                                    השיב לארכיטקט ב נערך לאחרונה על ידי nigun
                                    #17

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

                                    נ.ב. אם זה מעניין מישהו מצאתי ראיון עם אנדרס על TS
                                    הוא אומר שהם הוציאו את הTS לקוד פתוח בהבנה שהקהיל של JS לא תאמץ משהו בקוד סגור.
                                    https://changelog.com/podcast/152

                                    מייל: nigun@duck.com

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

                                      @צדיק-תמים אמר בביל גייטס - תודה!:

                                      עריכה: יש חבילה בשם ts-node-dev

                                      אפשר גם להריץ tsnode דרך nodemon

                                      למה? מה ההבדל?

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

                                      לעמות זה דגל --watch של tsc מקמפל מחדש רק קבצים ששונו לכן זה הרבה יותר קליל. לכאורה צריך רק להריץ nodemon על תקיית ה- dist. אבל לא בדקתי מה החוויה אז. אולי יש משהו יותר טוב

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

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

                                        @צדיק-תמים אמר בביל גייטס - תודה!:

                                        .
                                        זה לכאורה מה שצריך:
                                        "dev": "tsc --watch && nodemon dist/app.js"

                                        אבל זה אמנם מקמפל מחדש את הקבצי ts בכל שינוי, אבל השרת בעצמו לא רץ...

                                        כמעט נכון... ה-&& אומר להריץ את הפקודה השניה אחרי שהראשונה מסתיימת ו-watch אף פעם לא מסתיים. במקום זה תכתוב & וזה אמור לעבוד

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

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

                                          @yossiz אמר בביל גייטס - תודה!:

                                          תכתוב & וזה אמור לעבוד

                                          זה לא עובד ב-CMD או PS
                                          אז בצורה חוצה פלטפורמות:
                                          https://www.npmjs.com/package/concurrently

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

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

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

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

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