דילמה ב-oop: ריבוי פונקציות + ריבוי שאילתות או למעט ע"ח ה-oop
-
יש לי הרבה טבלאות, ובעצם אמור להיות לכ"א יישות. מאידך, יש הרבה סוגי סינונים, כל טבלה ואופיה. לדוגמא טבלת משפחה (הורים) וטבלת ילדים. אם אני רוצה לקבל את כל הילדים למשפחת X, אופציה א' זה לגשת לטבלת המשפחות ועם JOIN לצרף את הילדים. אופציה ב' זה לעשות 3 פונקציות:
- פונקציה שניגשת לטבלת הילדים ומחזירה את כל המידע על ילד בודד לפי סינון ID של הילד (או אפילו מקבל מערך של ID ילדים, ומחזירה אובייקט עם פרטי כל הילדים שהID שלהם הופיע במערך).
- פונקציה שניגשת לטבלת הילדים ומחזירה את כל הID של הילדים לפי ID משפחה מסויימת.
- פונקציה שניגשת לטבלת המשפחות ומקבלת את כל המידע עליהם, וכשאחד המתודות ניגש לפונקציה 1 ומחזיר מערך הכולל את פרטי הילדים שהתקבלו ע"י פונקציה 2.
מה עדיף, תכנותית לעומת ביצועים.
תודה.
-
בזמנו קראתי על OOP וחלק מהטכניקה היה לפצל את הארועים שמרכיבים פונקציה מבוקשת לפונקציות נפרדות, כדי להקל על תחזוקה של הקוד בעתיד.
ומכאן שאלתי הנ"ל.אבל מהתשובה של @dovid אני מבין את הכיוון..., אז השאלה היא אחרת: אם אני מפצל את הפונקציה כנ"ל וממילא יהיה פיצול שאילתות, האם זה עשוי להאט את התגובה (משמעותית)?
-
@chagold לעיתים יש האטה כל שהיא אבל לא משמעותית בכלל (זה בהנחה שיש לjoin התניית where בטבלת המשפחות למשחפה ספציפית, כי ההתניה היא רוחבית, לעיתים יכול להיות שמפצול יהיה יותר טוב ואעפ"כ יש מקפידים לא לפצל מהטעם דלהלן), אבל זה פיצול לא נכון.
פיצול ליחידות קטנות עושים לדבר שאין בו קופסה שחורה מוכנה (למשל פונקציה אחת וארוכה משלך), משא"כ JOIN זה קופסא שחורה - זה בטוח יעבוד וזה לא בתחום אחריותך (מישהו אחר אחראי לזה) וזה הכי קל לתחזוקה.