שימוש חוזר בקוד.

tapas tapas

New member
שימוש חוזר בקוד.

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

עידו פ

New member
יוצא לי, אבל לא כמו שאתה מתכוון

יצא לי הרבה פעמים שעשיתי reuse לקוד, בין אם מדובר באלגוריתם (לדוגמה - מיון), מבנה נתונים שחוזר על עצמו, איזשהו pattern עיצובי שימושי או סתם קוד שימושי שפותר בעיה כלשהי. למה לא כמו שאתה מתכוון - כי ברב המקרים כתבתי אותו מחדש. הסיבה לכך פשוטה - ברוב המקרים הפרויקט הנוכחי שעסקתי בו היה בטכנולוגיה שונה מהפרויקט הקודם בו עסקתי ולא תמיד הטכנולוגיה היתה תואמת או כדאית לשימוש (לדוגמה - יכול להיות שכתבתי משהו ב-VB שיכל לעבוד תחת דוט נט, אבל העדפתי לשכתב על-מנת שהקוד יהיה יותר "תחזוקתי"). במקרים אחרים, הקוד לא ניתן היה לשימוש חוזר מאחר ועברתי ממקום למקום וזה לא היה כל כך "חוקי" לקחת איתי דברים. אם ננסה לנתח את הקוד ה-reusable (ניתן לשימוש) אפשר לגלות שמדובר לרוב ב: - אלגוריתמים - כל מי שרצה למיין ב-VB ידע שאין משהו אוטומטי (של השפה) שעושה את זה, אז מה עושים - כותבים משהו אחד ומשתמשים שוב ושוב. - מבני נתונים - חלקם מוגדרים כ-design pattern (כגון composite) וחלקם סתם מבני נתונים סטנדרטים שפשוט מוצאים את דרכם לכל פרויקט שאליו מגיעים (מחלקות לשמירת פרטים אישיים של אדם, מבנה טבלאות קוד ב-DB וכו') - Design Patterns/Application Blocks - שוב לנהל Cache ? שוב צריך אובייקט גישה ל-DB ? שוב צריך סט מחלקות לבניית מסכים להזנת והצגת מידע ? מזל שמישהו כבר חשב על משהו בשבילנו מה לרוב לא מבצעים לו reuse ? לרוב מדובר בלוגיקה עסקית ארגונית (לא סביר להניח שמחלקת כ"א בצבא עובדת על אותם עקרונות של מחלקת כ"א בארגון כגון קופ"ח), אם כי ישנם לוגיקות עסקיות שמקורן בגורם יותר משותף (הפסקתי לספור כמה פעמים יצא לי להתקל באלגוריתם חישוב ספרת ביקורת לת"ז), אז כשזה מגיע ללוגיקה עסקית - צריך ראיה קצת יותר רוחבית של הארגון על-מנת לזהות רכיבים משותפים שניתן לעשות להם reuse
 

ייוניי

New member
כל הזמן

אני כמעט ולעולם לא כותב קוד חדש שלא עושה שימוש בהרבה קוד קיים. רוב הקוד שאני עושה בו שימוש חוזר שייך לאלמנטים שחוזרים על עצמם בין פרוייקטים שונים כגון: שכבת UI המורכבת מתצוגה של שדות, טבלאות, עצים, תפריטים וכו'... שכבת מידע המורכבת מאחזור נתונים מ DB, קבצי טקסט, XML וכו'... ותשתיות טכנולוגיות של אינטגרציה, Logging... למען האמת אם הייתי מתעסק בסוג יותר ספציפי של אפליקציות (למשל, מערכות ניהול ידע או מערכות שרות לקוחות) הייתי בוודאי עושה שימוש חוזר גם בלוגיקה אפליקטיבית. השיטה היחידה שאני מכיר לשימוש חוזר נרחב בקוד היא OOP. על ידי כתיבת רכיבים המיישמים התנהגות מסויימת ומתקשרים עם הסביבה בעזרת well defined interface בלבד (אובייקטים), אפשר להגיע לשימוש חוזר של ההתנהגות בסביבות שונות לחלוטין ללא צורך בשינוי בה.
 

guznik

New member
בדיוק היום

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