ארכיטקטורה - Three layer

flop696

New member
ארכיטקטורה - Three layer

רציתי לשאול איך אתם מממשים ארכיטקטורת Three layer?
מה הצורה הכי מתקדמת כיום?
 

MistOfPandaria

New member
זו שאלה כללית מדי, אם תעברי בפורום בארכיון ,

תוכלי למצוא את כל התשובות לשאלות
 

ziv1f

New member
הרעיון המרכזי הוא הפרדת תחומי-אחריות

מפרידים את הקוד שנוגע לטיפול בממשקי-הנתונים מהקוד שדואג לטפל בלוגיקה של שליפת ושמירת הנתונים, ומהקוד שנוגע לממשק המשתמש שמציג את הנתונים

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

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

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

בהצלחה,
זיו
 

arielRuuubi

New member
משתמשים כשצריך

והצורה הכי מתקדמת היא שאתה עושה את זה נכון, רוב האנשים מערבבים אצת השכבות כולל ותיקים
 

MistOfPandaria

New member
זה לא רלוונטי השכבות אם המערכת לא אמורה להיות

מבוזרת = Scalable.
במקרה כזה השכבות הן הכרחיות, כל השאר לפי האהבה שלו להפרדה.
אני אוהב להפריד שכבות מתוך הרגל, כדי שאוכל בשניה לבזר את המערכות בכמה שרתים או Db.
 
למעלה