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

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

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

הבעיה היא לא הgoto

מתוזמן נעוץ נעול הועבר תכנות
51 פוסטים 8 כותבים 768 צפיות 7 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD dovid

    הנה דוגמא בnodejs

    $ node contact.js a 
    # The Above command lauches a prompt
    ? Enter firstname .. John
    ? Enter lastname .. Doe
    ? Enter phone number .. +145****
    ? Enter email address .. john.doe@contacto.com
    New contact added
    

    הכל אוטומטי וגנרי בזכות ספריות מתאימות, זה ההגדרה:

    const questions = [
      {
        type : 'input',
        name : 'firstname',
        message : 'Enter firstname ..'
      },
      {
        type : 'input',
        name : 'lastname',
        message : 'Enter lastname ..'
      },
      {
        type : 'input',
        name : 'phone',
        message : 'Enter phone number ..'
      },
      {
        type : 'input',
        name : 'email',
        message : 'Enter email address ..'
      }
    

    זה הקוד! :

    prompt(questions).then((answers) =>  addContact(answers));
    
    ח מנותק
    ח מנותק
    חוקר
    כתב ב נערך לאחרונה על ידי
    #20

    @dovid אמר בהבעיה היא לא הgoto:

    הנה דוגמא בnodejs

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

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

      עושים גם לזה משהו מוכן, תחשוב על משהו כזה

       condition: x => x.input == '*', action: 'goToStep', param: 2
      
      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      nigunN תגובה 1 תגובה אחרונה
      2
      • dovidD dovid

        עושים גם לזה משהו מוכן, תחשוב על משהו כזה

         condition: x => x.input == '*', action: 'goToStep', param: 2
        
        nigunN מנותק
        nigunN מנותק
        nigun
        כתב ב נערך לאחרונה על ידי
        #22

        @dovid
        ומה קורה מאחורי הקלעים? GOTO?

        מייל: nigun@duck.com

        dovidD תגובה 1 תגובה אחרונה
        1
        • nigunN nigun

          @dovid
          ומה קורה מאחורי הקלעים? GOTO?

          dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #23

          @nigun מאה אפשרויות... goto לא תיתכן לדעתי באופן דינמי.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          nigunN תגובה 1 תגובה אחרונה
          1
          • dovidD dovid

            @nigun מאה אפשרויות... goto לא תיתכן לדעתי באופן דינמי.

            nigunN מנותק
            nigunN מנותק
            nigun
            כתב ב נערך לאחרונה על ידי
            #24

            @dovid
            אז מה כן? מערך?

            מייל: nigun@duck.com

            dovidD תגובה 1 תגובה אחרונה
            1
            • nigunN nigun

              @dovid
              אז מה כן? מערך?

              dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #25

              @nigun כתבתי לך מאה אפשרויות, אתה מציק.
              אתה באמת רוצה שתחיל לפרט? הנה חשבת לבד על מערך, יופי יש לך תשובה אפשרית.

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              nigunN תגובה 1 תגובה אחרונה
              0
              • dovidD dovid

                @nigun כתבתי לך מאה אפשרויות, אתה מציק.
                אתה באמת רוצה שתחיל לפרט? הנה חשבת לבד על מערך, יופי יש לך תשובה אפשרית.

                nigunN מנותק
                nigunN מנותק
                nigun
                כתב ב נערך לאחרונה על ידי
                #26

                @dovid
                רציתי לדעת האם אני בכיוון?

                מייל: nigun@duck.com

                dovidD י 2 תגובות תגובה אחרונה
                0
                • nigunN nigun

                  @dovid
                  רציתי לדעת האם אני בכיוון?

                  dovidD מנותק
                  dovidD מנותק
                  dovid
                  ניהול
                  כתב ב נערך לאחרונה על ידי
                  #27

                  @nigun אחד הכיוונים 🙂
                  המימוש פה הוא החלק השולי.

                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  תגובה 1 תגובה אחרונה
                  3
                  • nigunN nigun

                    @dovid
                    רציתי לדעת האם אני בכיוון?

                    י מנותק
                    י מנותק
                    יוסף בן שמעון
                    כתב ב נערך לאחרונה על ידי
                    #28

                    @nigun לא נראה לי שזה אמור להיות מורכב, קח פונקציה כזו

                    function buildQuestions (questions) {
                        var answers = {};
                        for (var i = 0; i < questions.length; i++) {
                            var question = questions[i];
                            var input = read(question);
                            answers[question.name] = input;
                        }
                        return answers;
                    }
                    function read (question) {
                        var input = readAGI(question.massage, question.type);
                        if (!input && question.isRequired && question.tryAgain) {
                            --question.tryAgain;
                            return read(question);
                        }
                        return input;
                    }
                    

                    ותעביר לה גייסון כמו שדוד הציע, תוסיף לגייסון שדות כמו isRequired tryAgain ויש לך קוד שיתאים לכל השיחות

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

                      צורת הדברים כבר נידונה והתבשלה כאן
                      https://tchumim.com/post/59303
                      ועדיין אין לי פיתרון לשלוחה שאמורה להיות עם תפריטים ותפריטי משנה וכו'.
                      אציין שלכן אני עדיין לא עברתי לצורת העבודה של מערך נתונים נדרשים, כי לרוב אני מתחיל עם תפריטים וכו, ורק בשלב כלשהוא יש לי למשל רישום שאני עובד כעת לקבל רשימת נתונים בזה אחר זה.
                      ולכן יותר נוח לי לעבוד על ידי שאני דורש נתון נתון ומבצע פקודות לפי הנתון שקיבלתי

                      י תגובה 1 תגובה אחרונה
                      4
                      • ח חוקר

                        צורת הדברים כבר נידונה והתבשלה כאן
                        https://tchumim.com/post/59303
                        ועדיין אין לי פיתרון לשלוחה שאמורה להיות עם תפריטים ותפריטי משנה וכו'.
                        אציין שלכן אני עדיין לא עברתי לצורת העבודה של מערך נתונים נדרשים, כי לרוב אני מתחיל עם תפריטים וכו, ורק בשלב כלשהוא יש לי למשל רישום שאני עובד כעת לקבל רשימת נתונים בזה אחר זה.
                        ולכן יותר נוח לי לעבוד על ידי שאני דורש נתון נתון ומבצע פקודות לפי הנתון שקיבלתי

                        י מנותק
                        י מנותק
                        יוסף בן שמעון
                        כתב ב נערך לאחרונה על ידי
                        #30

                        @חוקר שקול כתיבה בצורה כזו

                        const questions = {
                            firstname: {
                                type: 'input',
                                name: 'firstname',
                                message: 'Enter firstname ..',
                                nextStep () {
                                    if(answers.talmid) return this.yeshivaCode;
                                    else return this.otherStep
                                }
                            }
                        }
                        

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

                        ח תגובה 1 תגובה אחרונה
                        6
                        • י יוסף בן שמעון

                          @חוקר שקול כתיבה בצורה כזו

                          const questions = {
                              firstname: {
                                  type: 'input',
                                  name: 'firstname',
                                  message: 'Enter firstname ..',
                                  nextStep () {
                                      if(answers.talmid) return this.yeshivaCode;
                                      else return this.otherStep
                                  }
                              }
                          }
                          

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

                          ח מנותק
                          ח מנותק
                          חוקר
                          כתב ב נערך לאחרונה על ידי
                          #31

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

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

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

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

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

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

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

                              @חוקר
                              אולי אפשר את התפריט כעץ של מערכים
                              ולהכניס את הספרות להקשה בצאצאים של המערך
                              דהיינו בתפריט היעד
                              ואז הוא יעשה לולאה שמחפשת את תפריט המתאים
                              למשל אם הקיש 3 וימצא צאצא עם alise 3-5 אז הוא יעבור לתפריט הנ"ל
                              אפשר גם 3,4,5 וכדומה
                              אפשר גם להשתמש בregex

                               clienttype: {
                                      type: 'input',
                                      name: 'clienttype',
                                      message: 'Enter firstname ..',
                               acte:{
                              yeshivaCode:{
                                      type: 'input',
                                      alise: '1-2',
                                      message: 'Enter Code ..',
                                }
                              }ColleCode:{
                                      type: 'input',
                                      alise: '3-4',
                                      message: 'Enter Code ..',
                                }
                              

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

                              מייל: nigun@duck.com

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

                                @nigun
                                אני חוזר ואומר את הנקודה.
                                אני לא חושב שנכון מצידי לעבוד עם מערך בראש הקוד.
                                יש לי המון פעולות לביצוע בין לבין.
                                למשל בהקשת תאריך, אני מעבד את התאריך שהמאזין הקיש בפורמט 18052020 לאובייקט תאריך שממנו אני מקבל מחרוזת בשם 20200518 שהשאלה הבאה בתור משמיעה נתון מתיקיה ששמה כשם התאריך שהוקש בפורמט המעובד, אז אני לא יכול לקבוע זאת בראש הדף.
                                אני חייב שהקוד יהיה סיפור ויובן בכל שלב מה השלב הקודם והשלבהבא

                                nigunN תגובה 1 תגובה אחרונה
                                2
                                • ח חוקר

                                  @nigun
                                  אני חוזר ואומר את הנקודה.
                                  אני לא חושב שנכון מצידי לעבוד עם מערך בראש הקוד.
                                  יש לי המון פעולות לביצוע בין לבין.
                                  למשל בהקשת תאריך, אני מעבד את התאריך שהמאזין הקיש בפורמט 18052020 לאובייקט תאריך שממנו אני מקבל מחרוזת בשם 20200518 שהשאלה הבאה בתור משמיעה נתון מתיקיה ששמה כשם התאריך שהוקש בפורמט המעובד, אז אני לא יכול לקבוע זאת בראש הדף.
                                  אני חייב שהקוד יהיה סיפור ויובן בכל שלב מה השלב הקודם והשלבהבא

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

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

                                  מייל: nigun@duck.com

                                  ח תגובה 1 תגובה אחרונה
                                  1
                                  • nigunN nigun

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

                                    ח מנותק
                                    ח מנותק
                                    חוקר
                                    כתב ב נערך לאחרונה על ידי
                                    #36

                                    @nigun אמר בהבעיה היא לא הgoto:

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

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

                                    dovidD י 2 תגובות תגובה אחרונה
                                    0
                                    • ח חוקר

                                      @nigun אמר בהבעיה היא לא הgoto:

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

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

                                      dovidD מנותק
                                      dovidD מנותק
                                      dovid
                                      ניהול
                                      כתב ב נערך לאחרונה על ידי
                                      #37

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

                                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                      תגובה 1 תגובה אחרונה
                                      2
                                      • ח חוקר

                                        @nigun אמר בהבעיה היא לא הgoto:

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

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

                                        י מנותק
                                        י מנותק
                                        יוסף בן שמעון
                                        כתב ב נערך לאחרונה על ידי
                                        #38

                                        @חוקר אמר בהבעיה היא לא הgoto:

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

                                        דוגמא פשוטה לבעיה, אחד הערכים שאני משתמש הוא איזה ספרות לאפשר למאזין להקיש בתפריט/השאלה הנוכחית, ואם עשיתי תפריט שבתחילת כתיבת הקוד חשבתי לתת לו לבחור את האפשרויות 1258 בלבד, ולאחר כתיבת הקוד אני מחליט להוסיף את אפשרות 7 לתפריט, אז אני מוסיף תנאי באם ההקשה שווה 7 מה לבצע, אך אני חייב לזכור להוסיף למקשים המותרים את 7 וס"ה יהיה 12578, וכן לשנות בהודעת התפריט את החלק הנוסף.

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

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

                                        @חוקר אמר בהבעיה היא לא הgoto:

                                        אם המערך יהיה למעלה, אני יסתובב הלוך ושוב ואני ישאיר חלקים לעדכון אח"כ ואני ישכח וכו'.

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

                                        clickoneC תגובה 1 תגובה אחרונה
                                        2
                                        • י יוסף בן שמעון

                                          @חוקר אמר בהבעיה היא לא הgoto:

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

                                          דוגמא פשוטה לבעיה, אחד הערכים שאני משתמש הוא איזה ספרות לאפשר למאזין להקיש בתפריט/השאלה הנוכחית, ואם עשיתי תפריט שבתחילת כתיבת הקוד חשבתי לתת לו לבחור את האפשרויות 1258 בלבד, ולאחר כתיבת הקוד אני מחליט להוסיף את אפשרות 7 לתפריט, אז אני מוסיף תנאי באם ההקשה שווה 7 מה לבצע, אך אני חייב לזכור להוסיף למקשים המותרים את 7 וס"ה יהיה 12578, וכן לשנות בהודעת התפריט את החלק הנוסף.

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

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

                                          @חוקר אמר בהבעיה היא לא הgoto:

                                          אם המערך יהיה למעלה, אני יסתובב הלוך ושוב ואני ישאיר חלקים לעדכון אח"כ ואני ישכח וכו'.

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

                                          clickoneC מנותק
                                          clickoneC מנותק
                                          clickone
                                          כתב ב נערך לאחרונה על ידי clickone
                                          #39

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

                                          אבל באמת שווה לבדוק גם את הצד השני...

                                          אין טסט כמו פרודקשן.

                                          המייל שלי urivpn@gmail.com

                                          תגובה 1 תגובה אחרונה
                                          4
                                          תגובה
                                          • תגובה כנושא
                                          התחברו כדי לפרסם תגובה
                                          • מהישן לחדש
                                          • מהחדש לישן
                                          • הכי הרבה הצבעות


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

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

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