למה לא להשתמש ב-GoTo

כל מתכנת צעיר שהולך ללמוד מהחכמים ממנו מגיע מתישהו לשלב בו אומרים לו שבשום פנים ואופן צריך להשתמש ב-GoTo, שפקודת ה-GoTo היא האויב הגדול של כל מתכנת, שאם תשתמש ב-GoTo כולם יצחקו עליך ואף אחד לא יקבל אותך לעבודה. בעוד שיכול מאוד להיות שההצהרות השלישית והרביעית נכונות, השנייה לא נכונה וזה תלוי איך אתה מסתכל על הראשונה. אז למה לא להשתמש ב-GoTo?, מתכנת צעיר בטח שואל את עצמו. זה נכון ש-GoTo היא פתרון פשוט וקל לבעיות מעצבנות אבל היא לרוב תגרום לבעיות גדולות יותר בהמשך מסיבה אותה אפרט מיד. מה הרי המתכנת רוצה מהתוכנה שלו? דבר ראשון שהוא צריך לרצות הוא שהיא תעבוד. אם היא לא עובדת מה שהיא שווה. הדבר השני והשלישי שהוא צריך לרצות, הסדר תלוי את מי שואלים, הם שהתוכנית שלו תהיה יעילה ואז אלגנטית ופשוטה. השאלה אם היא עובדת או לא לא קשורה לדיון הזה אבל צריך לשים לב לדרישות השנייה והשלישית. יכול להיות שהשימוש ב-GoTo תוביל לתוכנה יעילה אבל יכול להיות שלא. מה שכן בטוח הוא שהיא לא תהיה אלגנטית ופשוטה. ומה שמתכנת צעיר עוד לא כל כך מבין הוא שהתוכנה שהוא כותב לא תמיד תישאר מתחת לידיים שלו ולרוב הוא גם לא ירצה שהיא תישאר. ובמיוחד אם עובדים על פרויקט גדול בחברה רצינית עם עוד הרבה אנשים, התוכנה צריכה להיות קריאה מאוד וקלה להבנה, לפעמים מעבר להיותה יעילה ואופטימלית. והשימוש ב-GoTo דופק את העיקרון הזה. שימוש ב-GoTo גורם לקפיצות במבנה הבקרה של התוכנה. ולא, זה בכלל לא אותו הדבר כמו מבנים חוזרים (לולאות, while, וכו’…) כי הם בנויים בבלוקים פשוטים שחוזרים על עצמם. גם Continue Reading →


Posted in Practice, Programming, Thinking Out Loud by with 2 comments.