קוד ספגטי הוא כינוי לקוד תוכנה שכתוב באופן מבולגן ולא מובנה. השורות והפקודות בו מעורבבות זו בזו, כמו מנה של ספגטי, ולכן קשה למתכנת חדש להבין מה הקוד עושה.
קוד כזה נוצר לעיתים כאשר כותבים גרסה ראשונית של תוכנה ואז מוסיפים לה תכונות בלי לתכנן מחדש את המבנה. לעתים זה קורה בגלל לחץ זמן.
מאפיין טיפוסי הוא שימוש בפקודת goto. goto היא פקודה שמורה למעבד "לקפוץ" לשורה מסוימת בקוד במקום להמשיך לפי הסדר. קפיצות כאלה יוצרות זרימה מסובכת וקשה לעקוב אחריה. אם מוסיפים קפיצות כאלה שוב ושוב, הקוד נעשה מפותל ובעייתי לתחזוקה.
בשנת 1968 אדסחר דייקסטרה פרסם מאמר שבו התנגד לשימוש ב-goto. בעקבות זאת התפתח רעיון של תכנות מובנה, כתיבה ברורה יותר של קוד. היום בדרך כלל נמנעים מ-goto, ומשתמשים בה רק במקרים מיוחדים.
כדי להבהיר קוד מוסיפים "comments", הערות בתוך הקוד שהמחשב מתעלם מהן. ההערות עוזרות למי שקורא את הקוד להבין מה עושה כל חלק.
יש מצבים שבהם הקוד הדומה לספגטי דווקא רצוי. קוד וירוסים לעתים מלא בקפיצות אקראיות, כדי להקשות על מציאתו וניתוחו. גם בתחרויות לכתיבת קוד בלתי קריא (כמו Obfuscated C) משתמשים בטכניקות כאלה כדי להקשות על ההבנה.
קיימת דוגמה קלאסית בפורטרן שבה שורות מסומנות במספרים והן קופצות זו לזו. כאשר קוראים את הקוד מלמעלה למטה יש רושם שחלק משורות פועלות ביחד, אך קפיצות חוזרות מפצלות אותן ומעוררות בלבול. דוגמה זו ממחישה איך הפקודות GO TO מקשות על זיהוי סדר הפעולות.
קוד ספגטי הוא קוד מחשב שמבולגן וקשה לקרוא. השורות בו מעורבבות, כמו ספגטי בצלחת.
הקוד הזה נוצר הרבה כשמוסיפים דברים לתוכנה בלי לסדר מחדש. לפעמים מהירות העבודה גם גורמת לזה.
יש פקודה שנקראת goto. goto אומרת למחשב לקפוץ לשורה אחרת. הקפיצות עושות את הקוד מסובך ובלתי ברור.
בשנת 1968 מישהו בשם דייקסטרה אמר שלא כדאי להשתמש ב-goto. מאז מנסים לכתוב קוד מסודר ופשוט.
כדי להסביר את הקוד כותבים הערות. הערות (comments) הן טקסט שהמחשב מתעלם ממנו והן עוזרות לבני אדם.
יש גם מקרים שבהם רוצים שהתוכנית תהיה מסובכת. וירוסים משתמשים בקפיצות כדי להסתיר את עצמם. יש גם תחרויות שבהן מנסים לכתוב קוד בלתי קריא.
יש דוגמה בפורטרן עם שורות שמקפיצות אחת את השנייה. זה מראה איך הקפיצות עושות את הקוד לבלגן.
תגובות גולשים