ניפוי שגיאות באמצעות ברווז גומי
ניפוי שגיאות באמצעות ברווז גומי, בִּרְווּז[1] או מבחן ברווז הגומי[2] (באנגלית: Rubber duck debugging או בקצרה Rubber ducking) הוא מונח הומוריסטי ולא-רשמי בהנדסת תוכנה המתאר שיטת ניפוי שגיאות בתוכנה.
על פי שיטה זו, מתכנת מסביר בקפידה את פעילות הקוד שכתב לחפץ דומם, כגון ברווז גומי, ובכך עובר חוויית "אהא!" ומבין לפתע כיצד לפתור את הבעיות שהתגלו בקוד.
רקע
[עריכת קוד מקור | עריכה]על פי שיטה זו, מתכנת הנתקל בשגיאה בקוד, יסביר בקפידה את פעילות הקוד שכתב לחפץ דומם, כגון ברווז גומי. הנחת היסוד של התהליך היא, שכאשר יגיע המתכנת לחלק שגוי של הקוד, הוא ישים לב לשגיאה בזכות המאמץ שהשקיע בהסברת הקוד לחפץ הדומם[1]. השיטה מבוססת על כך שהניסיון להסביר יוצר דיסוננס קוגניטיבי; המתכנת מתעמת עם העובדה כי הקוד (בין אם הוא נכתב על ידו, ובין אם לאו) אינו מבצע את שתוכנן לבצע[3].
מקורה של שיטה זו בסיפור אודות מתכנת מומחה אשר היה שומר ברווז גומי בסמוך לשולחנו בכל עת. המתכנת היה מנפה שגיאות קוד בכך שהכריח את עצמו להסביר את הקוד, שורה-אחר-שורה, לברווז. יש הסבורים כי מדובר בדניס ריצ'י או בבריאן קרניגהן[דרוש מקור]. למעשה קרניגהן מציג שיטה זו בספרו "The Practice of Programming" שבה ממלא דוב צעצוע את תפקידו של ברווז הגומי[4].
שיטה הומוריסטית זו דומה בעיקרה לשיטות אחרות, פורמליות יותר של הנדסת תוכנה, ובכללן:[5]
- Code review - כלומר סקירה ביקורתית של הקוד על ידי עמיתים, לעיתים כשלב מקדים ומחייב טרם הפעלת השינויים אותם מציע המתכנת לבסיס הקוד המשותף.
- Pair programming - שיטה על פיה התכנות נעשה בזוגות.
- Software walkthrough - שיטה על פיה מתכנת אחד מבאר לחברו את הקוד שכתב באמצעות מעבר עליו.
יתרה מכך, ההסבר לברווז גומי דומה ואף יכול לסייע לכתיבת תיעוד לתוכנה.
מונחים דומים
[עריכת קוד מקור | עריכה]קישורים חיצוניים
[עריכת קוד מקור | עריכה]- תיאור השיטה (באנגלית)
- אתר הומוריסטי המוקדש לשיטה זו (באנגלית)
- מה זה ברווזון גומי, מתוך הקומיקס "למה את חייבת להרוס"
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ 1 2 Rubber Ducking - The Pragmatic Programmer
- ^ The Rubber Duckie Test - Technically Speaking
- ^ 1 2 The Contribution of the Cardboard Cutout Dog to Software Reliability and Maintainability.
- ^ The Practice of Programming
- ^ איך מנפים שגיאות באמצעות ברווז גומי?, באתר eureka.org.il
- ^ Cardboard Programer - The Pragmatic Programmer
- ^ Cone of Answers- The Pragmatic Programmer
- ^ Thinking out Loud - The Pragmatic Programmer