חווית משתמש - Team System Architect

עידו פ

New member
חווית משתמש - Team System Architect

(מצטער מראש על שגיאות הכתיב אם יימצאו, אחרי טקסט כזה ארוך לא ממש התחשק לי לעבוד ולעשות הגהה). אני לא יודע מי מכם עובד בעיצוב (ארכיט') בדוט-נט, ומי מבין הנ"ל ניסה לעבוד עם ה-team architect שמגיע עם ה-VS 2005, אבל חשבתי לשתף אתכם במה שעברתי ביומיים האחרונים כשניסיתי להשתמש בכלי. קצת הקדמה - לפני העבודה הנוכחית, עבדתי במקום בו עבדו עם VS2003 וכלי CASE של ראשיונל - גם Rose לתקופה מסוימת וגם XDE, כך שיצא לי לעבוד עם כלים שמשולבים בתוך סביבת הפיתוח. לעומת זאת, בעבודה הנוכחית אין שימוש בכלי CASE (מהסיבה הפשוטה - הם עולים כסף !!), אז עובדים עם מה שיש ומתלוננים עד כמה שאפשר. ול"חוויה" - השבוע, אחרי פרמוט והתקנה מחדש של ה-VS (מה לעשות, המחשב עד כה קרטע ואפילו לא הצליח ליצור class diagram), אמרתי לעצמי "עידו, צריך לעצב עכשיו רכיב חדש במערכת, בוא נבדוק איך זה לעבוד עם ה-team architect" (אני נוטה לדבר עם עצמי מדי פעם). זוועה !! ולא אכפת לי כמה עובדי מיקרוסופט יקפצו עכשיו ויאמרו שזה כלי אחלה והשקיעו בו המון מחשבה וזמן - זה פשוט זוועה !!! - ה-class diagram זה לא יותר מויזואליות של הקוד שלך (למי שלא מאמין, שיסתכל דרך notepad בקובץ ה-CD שנוצר) - כל דבר שעושים ב-CD מתעדכן אוטומטית בקוד, כולל שינוי שמות של מתודות שגורם ל-refactoring "און דה פליי" (מה שגורם כמובן שכל שינוי שם של מתודה מבזבז בערך 10 שניות מחייך). יש כאלו שיגידו - סבבה, מה רע בכלי שמסונכרן עם הקוד ?! זה לא נוח !! נוח לי שיש סביבת מידול שיודעת "לג'נרט" קוד (ויודעת להסתנכרן ממנו בחזרה), נוח לי שהתוכניתן שלי עובד על הקוד של המחלקה (כשהיא ב-check out אצלו) ובינתיים אני עובד על המודל ומעדכן אותו, כך שברגע שהוא יעשה check-in אני אוכל לסנכרן את התוספות שלי עם הקוד שלו (אבל זה לא אפשרי, מאחר ועד שאני לא מסיים לקבוע את ה-CD, קובץ הקוד חייב להיות אצלי ב-check out) - אני לא יודע כמה מכם נוהגים לעשות את הדבר הבא, אבל לי זה מאוד נוח שאחרי (ולפעמים תוך כדי) בניית המחלקות, אני בונה Sequence diagram בשביל להמחיש את הקריאות בין המחלקות. אז בואו נוותר על הרעיון של חילול קוד שמבצע את הקריאה (לא מצאתי אף כלי שמחולל קוד מ-SD), אבל לפחות שתהיה אפשרות ל-sequence ! אז מה מיקרוסופט אומרים - מצטערים, אנחנו מספקים רק CD. אתה רוצה SD ? לך לעבוד בויזיו. מעולה אמרתי ! ויזיו זה של מיקרוסופט, יצאה גרסה מיוחדת שלו יחד עם ה-VS2005 (גרסת architect) אז כנראה שניהם יודעים לעבוד ביחד. גורנישט !! פוקרף אין משמש (או איך שלא אומרים את זה) ! הדבר היחיד שה-VS יודע לעשות זה לייצא SLN לויזיו ותו לאו ! אין סנכרון אחורה-קדימה (מה שנקרא - נגעת נסעת), במקסימום מקבלים חילול קוד - רק תסבירו לי מה טוב חילול קוד אם אח"כ צריך לעשות copy&paste ידני של הקוד שנוצר לתוך ה-VS, תוך התאמת הקטע המועתק לקטעים שכבר קיימים בקוד - בזמן הזה הייתי יכול כבר לכתוב את זה בעצמי (תאמינו לי שאני מקליד מהר, תשאלו את התוכניתנים שלי אם אתם לא מאמינים). - קטע נוסף של ה-VISIO (באדיבות התוכניתן שלי שכל הכבוד לו שהוא מצליח לעבוד עם הכלי הזה בלי לזרוק את המקלדת מחוץ לחלון) - הויזיו מתיימר "לדעת" #C בכך שהוא מאפשר להגדיר ב-CD משתנים מטיפוסי #C, אך עליה וקוץ בה - הוא נותן רק primitive type. אתם רוצים משתנה מסוג DateTime ? DataSet ? תצטרכו להגדיר כזו מחלקה בעצמכם ! אז כן, אם עושים Reverse engineering מהקוד, הוא מזהה את הטיפוסים הללו בשימוש בקוד ויוצר אותם לבד (כולל ה-inerface הנחוץ), אבל אם אני עכשיו רוצה להגדיר משתנה מטיפוס שלא היה לי עד עכשיו ? מ ע צ ב ן !! אז בקיצור - אני מתוסכל ובשלב זה אני מעדיף נייר ועט (והרבה התבכיינות לראש פרויקט שלי בתקווה שאולי מישהו "למעלה" ישמע אותי ויתחיל להשקיע קצת בכלי CASE). אם למישהו מכם היה נסיון עם הכלים האלו והוא רוצה לשתף אותנו, אני אשמח לשמוע עוד קולות חוץ משלי (תמיד נחמד שיש עוד מישהו מתוסכל בשביל שלא להרגיש לבד). ואם מישהו מ-IBM שומע אותי - Team architect זוועה !! בבקשה תוציאו XDE שעובד ב-2005, תאמינו לי שאנשים יקנו, יש שוק לזה, רק תעשו את הצעד הראשון. אני מבטיח שאני אהיה בין הראשונים להוריד את ה-trial version
 

orengolan

New member
../images/Emo24.gif

thanks for the great info, please share with us more about your experience. what about vsts? are u using it? do u know if the RTM is out there?​
 

עידו פ

New member
VSTS

היום סוף סוף העברנו את הפרויקט מבטא ל-RTM (שגיאת קומפילציה אחת ושני שינויים מעצבנים בהתנהגות GRID, אבל חוץ מזה הכל עבד יפה). לגבי ה-VSTS - יצאה גרסת trial של 180 יום עבור ה-team edition, ולפי מה שהבנתי, מיקרוסופט לא נותנים הבטחות לגבי מה יהיה כשתצא הגרסה ה"מלאה", אבל השמועות אומרות שבסה"כ ידרש להתקין איזשהו patch ולא תדרש הסרה והתקנת כל המוצר מחדש. אני מקווה שבשבוע הבא נתחיל לעבוד מול ה-tfs (גרסת refresh 3) ונוכל לחוות על בשרנו את חווית ה-shelving שכל הזמן מדברים עליה. בנוסף, אני מחכה שיהיה לי קצת שקט נפשי במשרד בשביל להתחיל לשבת על המרכיבים הנוספים שיש ב-VSTS כגון ה-testing וה-profiling.
 

ייוניי

New member
עט ונייר או פשוט לכתוב קוד

האמת הרבה נסיון עם כלי עיצוב וציור למיניהם אין לי, אבל מהמעט שניסיתי לא התחברתי. אני אוהב את הרעיון של דיאגרמה שנוצרת אוטומטית מהקוד שלי אבל במציאות שבנויה מעיצוב מבוסס interface-ים ו- 90% קריאות וירטואליות קשה לי להאמין שיש כלי שיכול ליצור דיאגרמת מחלקות טובה (שלא לדבר על sequence) בלי עזרתי. מנסיוני, אם צריך להסביר למישהו אחר מודל אובייקטים מסויים עט ונייר (או טוש ולוח) הם האמצעים הטובים ביותר. אם הייתי יכול לתמלל פגישת צוות ולצרף כאיורים את הציורים שעל הלוח באופן אוטומטי הייתי פשוט שולח את זה ישירות ללקוח - כלי ה CASE המושלם לדעתי. לעומת זאת, אם המטרה שלי היא סיעור מוחות עצמי הייתי פשוט משתמש בקוד כאמצעי העיצוב. לא צריך עכבר, יש גם intellisense בד"כ וקל מאוד לזרוק על הנייר (מסך) ממשקים, מחלקות, מתודות וכל השאר ולראות אותם מתארגנים לכדי רכיב תוכנה. אם אפשר ליצא תרשים מתוך הקוד - נפלא - אבל גם אם לא איורים כאלה הם בד"כ קטנים ופשוטים (אחרת מה הרעיון?) ואפשר לצייר אותם לבד.
 

עידו פ

New member
אתה מתכוון לזה ?

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

ייוניי

New member
לא בדיוק אבל בערך

מה שיש שם בלוח שלך נראה כמו רשימת פיצ'רים נהדרת ואותה הייתי נותן למעצב (או למתכנת אם הייתי רוצה שהוא יעצב אותה). בסופו של דבר רשימת הפיצ'רים צריכה להפוך לקוד מעוצב ובדרך אפשר להוסיף שלב של שרטוטים המתארים את עיצוב התוכנה. אני חובב גדול של sequence אבל גם class diagram טוב יכול לעשות את העבודה - אלו הדברים שאני משרטט על הלוח כדי להמחיש עיצוב שאני מתכנן לרכיב תוכנה כלשהו. לגבי האנלוגיה אם הייתי יודע שבסופו של דבר מישהו (כנראה אני) יצטרך לתחזק את קוד ה RTF שוורד יוצר הייתי שוקל notepad בהחלט. אנחנו, בתור מעצבי תוכנה, שואפים להגיע למצב שבו כל רעיון שאפשר לבטא בצורה פשוטה בשרטוט יבוטא בצורה פשוטה באותה מידה בקוד. אם אתה נמצא במצב שבו מעבר ממודל לקוד דורש עבודה (אפילו אוטומטית) אז אתה יוצר כפילות (עבור כל מודל שאתה מתכנן). ברגע שאתה יכול לבטא את הרעיון שאתה מתכנן בקוד אתה נמצא במקום טוב מבחינת תחזוקה וגם שומר על קשר מתמיד עם הקוד של התוכנה שאתה מעצב ולא מאבד קשר איתו עם הזמן. אגב, בימינו כבר קשה להשוות כתיבת קוד ל notepad מאחר ויש מספיק כלים שעוזרים לך לזרז וליעל את תהליך כתיבת הקוד.
 

shvilam

New member
יכול להיות שזה כלי לא טוב אבל להשוו

יכול להיות שזה כלי לא טוב אבל להשוות אותו לאחד מכלי ה CASE זה פשוט לא הרעיון שלו אומנם יצא לי לעבוד רק מעט עם הVSTS אבל שמעתי קצת מה שאנשי מיקוסופט אומרים על היעוד שלו אז הוא בהחלט רק עוד דרך אחרת להסתקל על השורות קוד שכתבתה לא יותר מיזה היתה יכול לחסוך לעצמך את ההכזבה עם היתה צופה באחת המצגות על הכלי ב VSTS דרך אגב מומלץ
 
למעלה