בלוקים וצמידות

בלוקים וצמידות

קראתי לא מעט אודות מה שמיקרוסופט מגדירה Application Blocks. הרעיון של בלוקים או יחידות או רכיבים הוא מוכר והגיוני, אבל יש לי שאלה קטנה בנושא. העניין הוא צמידות בין בלוק ההגדרות ובין בלוק ה Logging. למשל, בלוק ה Logging צריך לקבל מספר הגדרות כמו באיזה פולדר שומרים את קבצי ה log, ולאיזו כתובת מייל צריך לשלוח במידה וזה log (גם) בצורה של מייל. מצד שני, קובץ ההגדרות יכול לחפש הגדרה מסויימת, לא למצוא אותה, ואז הוא צריך להשתמש ב logging כדי לתעד את המצב הבעייתי הזה. נוצר מצב שאם אני מבין אותו נכון - יש בו צמידות בין ה logging לבין ה configuration. דעתכם?
 

ייוניי

New member
תלות מעגלית

יש פה בהחלט בעיה של תלות מעגלית. רכיב ה log צריך לתמוך גם ביישום דיפולטי שלא עושה שימוש בהגדרות ושיש לו סיכוי קלוש לגרום בעצמו למצב שידרוש תיעוד... אז תעטוף את הרכיב הקיים ברכיב משלך שיעשה Console.Write אם יש תעופה בכתיבה ללוג. אגב, זה לא כל כך נכון להשתמש במונח צמידות במצב הזה כי גם בהיעדר צמידות (כלומר בשימוש בלתי ישיר של אובייקט אחד באחר) יכול לקרות מצב של תלות מעגלית שצריך להתמודד איתו.
 
אכן תלות ולא צמידות

חשבתי גם לפתור את זה עם כפילות בהגדרות. למשל, לרשום את ה mail server וכן את כתובת המייל במידה שה logger לא מצליח למצוא הגדרה חיונית (אני בעיקר עובד על asp.net). מה דעתכם?
 

עידו פ

New member
הגדרת ברירת מחדל זה תמיד טוב

למקרה של בעיה באיתור נתונים. דוגמה טובה אפשר לראות ברכיבי AB (ר"ת של application block) של הצגת הודעות למשתמש. מרבית הרכיבים האלו מנהלים את מאגר ההודעות ב-repository כלשהו כגון DB או resource lib כלשהו, אבל כאשר לא ניתן לגשת למאגר (נניח ה-DB למטה) או שההודעה לא נמצאה - תמיד טוב שיש הודעת ברירת מחדל שתוצג ("שגיאה במנגנון הודעות, לא ניתן לאתר הודעה רצויה") ושתהיה hard coded בתוך הרכיב.
 
למעלה