לתמוך קדימה, למשל בחלונות 7

[10 באוקטובר 2009] [1 תגובות]

הערה: הפוסט הבא כתוב בלשון Windows אך פונה גם למערכות כגון Mac OS X, לינוקס ועוד...

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

Windows Vista

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

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

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

if (OSVersion() == 6.0 ) // version 6.0 is Vista
{
    // Do vista code here
}
else
{
    // Do old XP code here
}

בניתם את התוכנית מחדש, שלחתם ל-QA, שלחתם ללקוחות. כולם היו מרוצים, זה עובד גם ב-XP וגם ב-Vista. "ממש עשינו עבודה טובה" חשבתם לעצמכם.

Windows 7

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

כל הבעיה טמונה בדבר אחד קטן: שווה-שווה. שימו לב שהקוד למעלה התאים את הקוד של Vista אך ורק ל-Vista. נשמע הגיוני, לא? יכול להיות הגיוני, למישהו שלא חושב קדימה.

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

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

if (OSVersion() >= 6.0 ) // version 6.0 is Vista
{
    // Do vista or newer OS code
}
else
{
    // Do old XP code here
}

באמת תיקון פשוט. כמובן שיהיו עוד תיקונים חדשים לחלונות 7 ששונים מויסטה, אבל לרוב דווקא לא. חלונות 7 בנויה פחות או יותר על ויסטה. יש הבדל אחד: בחלונות 7 אנשים באמת הולכים להשתמש!

המסקנה: כאשר אתם מתאימים את התוכנות שלכם לחלונות 7, תעשו לעצמכם טובה ושיהיו כבר תואמות לחלונות 8.

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

1 תגובות

  1. adrenalin100 | 10/10/2009 10:52:50 PM

    תודה טל :)

    חשוב מאוד הנושא שהעלת

    ולפי כתבה הזה אולי גם לוינדוס 9

    http://www.ynet.co.il/articles/0,7340,L-3787101,00.html

התגובות נעולות