שאלות על פרויקט הסיום

פקודות מורכבות

פקודות מורכבות

על ידי קונסטנטין קישנבסקי בתאריך
מספר תגובות: 5

שלום,

האם יש לתמוך גם בפעולה מהצורה: 

G1 = G2 +load(filename)?

 

תודה

בתגובה ל: קונסטנטין קישנבסקי

תשובה ל: פקודות מורכבות

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

תשובה ל: פקודות מורכבות

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

תשובה ל: פקודות מורכבות

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

אתן גם דוגמה ממש בנאלית לזה, מתחום אחר: נניח אתה חדש ל-Powerpoint, ומראים לך שאפשר לסמן מילה במשפט, ללחוץ על Del וזה מוחק את אותה מילה. עכשיו, אם תסמן מלבן ותלחץ על Del, אתה תצפה (כנראה) שהוא גם יימחק, למרות שזה אובייקט שונה מאוד מטקסט. מצד שני, אם תצביע לתפריט File ותלחץ על Del, אתה לא תצפה שהתפריט עצמו ייעלם מהתוכנה (זה יפתיע אותך) וגם לא תצפה למשל לקבל הודעת שגיאה, או קריסה של התוכנית. כנראה שאתה תצפה שפשוט לא ייקרה כלום, כי ל-Del אין שום קשר לתפריטים. זו בעצם גם הגישה לגבי הפרוייקט שלנו.
בתגובה ל: רן רובינשטיין

תשובה ל: פקודות מורכבות

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