איך עושים Redesign?

T i k t a k i t

New member
../images/Emo112.gifאיך עושים Redesign?

יש לי אפליקציה קיימת ,כתובה בC#. הdesign שלה במקור נעשה מהר מאוד -ולא בהכרח הכי טוב ועם הזמן הפסיק להתאים למה שהיא עושה. מאז שנכתבה ,האפליקציה עודכנה לא בצורה הכי נכונה וכרגע היא די אוסף של טלאים. מבחינתי ,זאת legacy application -"ירשתי" אותה ממישהו . יש לי מחשבות לכתוב אותה מחדש ,לא יודעת אם באותה שפה או לא ,אבל כנראה שהעיקר הוא לתכנן /לעצב [ נו ,לעשות design
] מחדש . היות ומעולם לא יצא לי לתכנן מאפס משהו בגודל הזה ,אני לא יודעת איך לגשת לענין -וכמובן שפה מדובר גם על שמירה+ הרחבת פונקציונליות .. לגמרי אין לי מושג ממה להתחיל.
אשמח להמלצה על ספר/אתר שיוכל לעזור לי -וכמובן אשמח לעצותיכם.
 

arnonrgo

New member
כמו design רגיל :)

אם את הולכת לעשות שינויים על האפליקציה הקיימת את יכולה לשפר את התכן באמצעות refactorings (יש ספר של fowler בנושא) לגבי עבודה מscratch - בגדול כדאי לחשוב על מאפייני האיכות שאת רוצה מהאפליקציה את יכולה להקרוא מאמר http://www.ddj.com/dept/architect/192600570 ו/או כמה blogים שכתבתי בנושא http://www.rgoarchitects.com/saf ספר מומלץ בנושא ארכיטקטורה הוא Software systems architecture של Nick Rozanski ו Eoin Woods http://www.viewpoints-and-perspectives.info/index.php?page=home ארנון
 

vdsp

New member
נקודות למחשבה

אני לא יודע אם זה המקרה, אבל בכל זאת : לתכנתים יש נטייה תמיד לחשוב שתוכנות של מישהו אחר לא טובות, מכמה סיבות : יותר קל לכתוב תוכנה מאשר לקרוא, המבנה בדרך כלל משקף צורת מחשבה של מישהו שהוא לא אתה, תמיד יש דברים "שאני הייתי עושה יותר טוב/אחרת/..." מצד שני יש בתוכנה המון פרטים קטנים והמון באגים שנפתרו ולקחים שנלמדו (גם אם בצורה עקומה) ושלא ממש מתועדים בצורה מלאה וכשעושים redesign הולכים ליפול בהם מחדש, וכל הידע שנצבר הולך לעיבוד. וכמובן שלפעמים אין בררה... אני הייתי הולך על פתרון ביינים (כמו שכבר הוצע) ומנסה לעשות refactoring כל פעם לחלק אחר. ככה גם לא מאבדים פונקציונאליות, וגם בסוף יוצא משהו שעובד טוב. (יש מאמר של ג'ואל ספולסקי שמתאר את זה ממש יפה + דוגמאות לפרויקטים שנפלו בגלל דברים כאלו)
 

T i k t a k i t

New member
ואללה ,הסיפור על netscape אם אני

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