הגבול בין פונקציה גנרית לפונקציה מבולבלת
-
כשיוצא לי לתחזק/לשדרג קוד ישן, אני פוגש במצבים שאם הייתי חושב עליהם מראש והייתי מתכנן נכון את הפונקציה בצורה גנרית יותר הייתי חוסך היום זמן. או אם צריך להשתמש בקוד דומה והייתי כותב מראש את הפונקציה בצורה שמכסה יותר אופציות היית יכול לקחת אותה כצורתה ולהשתמש בה איפה שאני רוצה, ההתלבטות שלי היא כמה צריך להשקיע בכתיבת קוד כדי לחסוך לעתיד.
לדוגמא, אני צריך היום פונקציה קטנטנה שמפיקה מחרוזת רנדומלית בת 15 תווים, אז כדי לענות על הצורך הפרטי הזה אני יכול לכתוב אותה בדיוק כך שתפיק 15 תווים, אבל זה מן הסתם לא יהיה חכם מצידי, כי אם מחר אצטרך אותו דבר עם 30 תווים אצטרך להשקיע כדי לשנות אותה, אז אתכנן אותה עם ארגומנט של מספר התווים, אבל עדיין יכול להיות שמחר אצטרך דווקא lowerCase וזה לא יענה על הצרכים של מחר, וגם יכול להיות שאצטרך דוקא ממספרים או דוקא בלי מספרים, או עם תווים מיוחדים וכדומה. ובסופו של דבר אנייכול להגיע מפונקציה קטנה ופשוטה למחלקה שלמה.
וכאן ההתלבטות שלי, איפה הגבול, עד כמה צריך להשקיע בזה ולהעמיס על הקוד כדי לכסות כל מיני אפשריות עתידיות. (בדוגמא שהבאתי ההכרעה נראית לי קלה, אבל זה הופך להיות משמעותי בפונקציות יותר מורכבות.)
אשמח לשמוע מהמנוסים איך הם מתמודדים עם השאלה הזו. -
@יוסף-בן-שמעון
שאלה מצויינת!
ואני חושב שאין לזה תשובה ברורה......
זה מגיע עם הפרקטיקה והזמן.
כל שנה אני מגלה עד כמה בשנה שעברה לא ידעתי הרבה (באופן יחסי) למה שאני יודע כיום.מה שכן, לפחות תיצור את הפונקציות כניתנות להרחבה.
ז"א, במקום להשתמש בנתונים מוחלטים בתוך הפונקציה, תשים אותם במשתנים, ואז תשתמש בהם, לדוגמא, במקום להשתמש בלולאת for עם מספר 15 (בדוגמא שהבאת)
תשתמש עם משתנה, ולפני הfor תשים במונה המקסימום את הערך 15. ואז במידה ותצטרך להרחיב את הפונקציה, תצטרך רק להוציא את המשתנה החוצה לחתימת הפונקצייה או המחלקה -
-