התייעצות לגבי עיצוב של אפליקציה
שלום, כתבתי את ההודעה הבאה בפורום שפות תכנות, אולם אני מאמין שזהו פורום שיותר מתאים. אשמח להתייחסותכם. אני מפתח אפליקציה שתנהל רשימה של סוגי ישויות, שלהם יש מאפיינים שונים. לכל מאפיין יכול להיות פירוק הירארכי לתת מאפיינים ולתת-תת-מאפיינים וכו'. מטבע הדברים, אני חושב על ניהול כקבצי קונפיגורציה ב-XML. כל אלמנט יכיל מאפיינים (שם הרמה, פרטים תומכים). הרמה התחתונה תהיה ערך הנתון הנדרש על מאפייניו. מדובר למעשה בסכמה רקורסיבית די פשוטה שמספקת מבנה גמיש להגדרת הירארכיה כלשהי, ללא כל חשיבות לערכי הרמות עצמן. דוגמה לכך היא רשומת עובד. יש לו מאפיין של יצירת קשר. ליצירת קשר יש תת מאפיין של כתובת. לכתובת יש נתונים של רחוב, עיר, מיקוד וכו'. מעבר לכך, אני נדרש לתת למשתמש להזין ישויות שונות. אני צריך לספק לו VIEWS שונים של סוג היישות עבור הזנת נתונים (כל פעם שדות אחרים במהלך הזנת הערכים – למשל, בדפי הזנה עוקבים) והוא מזין ערכים בנתונים. יכול להיות בהחלט מצב בו המשתמש מזין נתון אחד (שמשתייך לנתיב הירארכי מסוים בסוג היישות) ובדף הבא הוא נדרש להזין נתון נוסף שמשתייך לאותו נתיב הירארכי. ישנה אף דרישה לנהל VIEWS שונים למשתמשים שונים. כדוגמה – משתמש אחד יצטרך בדף הראשון להזין את העיר, ובדף שני להזין את הרחוב ואת מספר הבית. משתמש אחר יידרש להזין בסדר הפוך. כמובן שגם הגדרות ה-VIEWS נדרשות להיות גמישות והמסכים דינמיים. גם כאן אני חושב על קבצי XML. עם זאת, ישנה סוגיה של קשר בין קבצי הקונפיגורציה, ולהזכירכם קיימות רמות הירארכיות שונות ביישות. הנטיה הנוכחית שלי היא לנהל ID ייחודי ברמות השונות של כל סוג יישות ואח"כ בהגדרות ה-VIEWS להגדיר ערך תואם (למשל, מחרוזת שמכילה שרשור של ה-ID של הרמות בנתיב). עם זאת, זה בעייתי ומזמין צרות, כיוון שאין שום דבר מובנה וקל שאוכף את זה, זה לא ממש קריא וקשה לתחזוקה. מצד שני, מספק את רמת הדינמיות והגמישות הנדרשת. מה דעתכם? התמונה מסתבכת יותר, כיוון שאני צריך לספק למשתמש גם מסכי חיפוש דינמיים. גם הגדרת מסכי החיפוש נדרשת להיות גמישה מאוד ובעלת VIEWS שונים (אותו קונץ של דפדוף של דפים) עבור משתמשים שונים. ואם לחתום את הסיבוך בשלב הזה, צריך לזכור שאת הערכים שמזין המשתמש יש לשמור וגם לחפש בהם. כמובן שרק DB בא בחשבון וכאן עולות הסוגיות הבאות – הקשר לקבצי ההגדרות, שמירה גנרית של סוגי ערכים שונים (אני חושב לנהל הכל כמחרוזת). לסיכום, אני צריך לנהל הגדרות ישות, הגדרות של מסכי הזנה, הגדרות של מסכי חיפוש. המסכים דינמיים, ההגדרות השונות עשויות להשתנות באופן תדיר, התחזוקה קריטית ולגמישות חשיבות מכרעת. אשמח מאוד לשמוע תובנות, הכוונות, הערות, עצות וכו'. אגב, האפליקציה WEB-ית, ומבוססת על FW3.5. מפתח ב-2008. תודה.
שלום, כתבתי את ההודעה הבאה בפורום שפות תכנות, אולם אני מאמין שזהו פורום שיותר מתאים. אשמח להתייחסותכם. אני מפתח אפליקציה שתנהל רשימה של סוגי ישויות, שלהם יש מאפיינים שונים. לכל מאפיין יכול להיות פירוק הירארכי לתת מאפיינים ולתת-תת-מאפיינים וכו'. מטבע הדברים, אני חושב על ניהול כקבצי קונפיגורציה ב-XML. כל אלמנט יכיל מאפיינים (שם הרמה, פרטים תומכים). הרמה התחתונה תהיה ערך הנתון הנדרש על מאפייניו. מדובר למעשה בסכמה רקורסיבית די פשוטה שמספקת מבנה גמיש להגדרת הירארכיה כלשהי, ללא כל חשיבות לערכי הרמות עצמן. דוגמה לכך היא רשומת עובד. יש לו מאפיין של יצירת קשר. ליצירת קשר יש תת מאפיין של כתובת. לכתובת יש נתונים של רחוב, עיר, מיקוד וכו'. מעבר לכך, אני נדרש לתת למשתמש להזין ישויות שונות. אני צריך לספק לו VIEWS שונים של סוג היישות עבור הזנת נתונים (כל פעם שדות אחרים במהלך הזנת הערכים – למשל, בדפי הזנה עוקבים) והוא מזין ערכים בנתונים. יכול להיות בהחלט מצב בו המשתמש מזין נתון אחד (שמשתייך לנתיב הירארכי מסוים בסוג היישות) ובדף הבא הוא נדרש להזין נתון נוסף שמשתייך לאותו נתיב הירארכי. ישנה אף דרישה לנהל VIEWS שונים למשתמשים שונים. כדוגמה – משתמש אחד יצטרך בדף הראשון להזין את העיר, ובדף שני להזין את הרחוב ואת מספר הבית. משתמש אחר יידרש להזין בסדר הפוך. כמובן שגם הגדרות ה-VIEWS נדרשות להיות גמישות והמסכים דינמיים. גם כאן אני חושב על קבצי XML. עם זאת, ישנה סוגיה של קשר בין קבצי הקונפיגורציה, ולהזכירכם קיימות רמות הירארכיות שונות ביישות. הנטיה הנוכחית שלי היא לנהל ID ייחודי ברמות השונות של כל סוג יישות ואח"כ בהגדרות ה-VIEWS להגדיר ערך תואם (למשל, מחרוזת שמכילה שרשור של ה-ID של הרמות בנתיב). עם זאת, זה בעייתי ומזמין צרות, כיוון שאין שום דבר מובנה וקל שאוכף את זה, זה לא ממש קריא וקשה לתחזוקה. מצד שני, מספק את רמת הדינמיות והגמישות הנדרשת. מה דעתכם? התמונה מסתבכת יותר, כיוון שאני צריך לספק למשתמש גם מסכי חיפוש דינמיים. גם הגדרת מסכי החיפוש נדרשת להיות גמישה מאוד ובעלת VIEWS שונים (אותו קונץ של דפדוף של דפים) עבור משתמשים שונים. ואם לחתום את הסיבוך בשלב הזה, צריך לזכור שאת הערכים שמזין המשתמש יש לשמור וגם לחפש בהם. כמובן שרק DB בא בחשבון וכאן עולות הסוגיות הבאות – הקשר לקבצי ההגדרות, שמירה גנרית של סוגי ערכים שונים (אני חושב לנהל הכל כמחרוזת). לסיכום, אני צריך לנהל הגדרות ישות, הגדרות של מסכי הזנה, הגדרות של מסכי חיפוש. המסכים דינמיים, ההגדרות השונות עשויות להשתנות באופן תדיר, התחזוקה קריטית ולגמישות חשיבות מכרעת. אשמח מאוד לשמוע תובנות, הכוונות, הערות, עצות וכו'. אגב, האפליקציה WEB-ית, ומבוססת על FW3.5. מפתח ב-2008. תודה.