לוגיקה עסקית – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
הרחבה
הרחבה
שורה 1:
{{בעבודה}}
ב[[הנדסת תוכנה]], ובפרט ב[[Enterprise software|מערכות enterprise]], '''לוגיקה עסקית''' (ב[[אנגלית]]: '''business logic''') היא חלק ממערכת [[תוכנה]] שתפקידו [[מימוש|לממש]] את ה[[כלל עסקי|כללים העסקיים]] מ"העולם האמיתי". כללים אלו קובעים כיצד [[נתונים]] יכולים: להווצר, להשתנות, להיות מוצגים, ומאוחסנים. לרוב, המושג מתאר את החלק בתוכנה אשר מכיל את ה[[אלגוריתם|אלגוריתמים]] הפונקציונליים שמטפלים בהעברת מידע בין [[בסיס נתונים]] ל[[ממשק משתמש]].
 
שורה 37 ⟵ 36:
הלוגיקה העסקית עשויה להשתנות לעתים קרובות. לדוגמה, קבוצת הפורמטים המגדירים כתובות חוקיות למשלוח יכולה להשתנות כאשר סוחר באינטרנט מתחיל לשלוח מוצרים למדינות חדשות. מסיבה זו, בדרך כלל רצוי להפוך את ה[[קוד מקור|קוד]] שמממש את הלוגיקה העסקית למבודד יחסית, או בעל [[צימוד (תוכנה)|צימוד רפוי]] (loosely coupled). בזכות תכונה זו, סביר ששינויים בלוגיקה העסקית יצריכו פחות שינויים בקוד, ורק באחד מחלקי מערכת התוכנה. תוכנה הממומשת עם צימוד חזק (strongly coupled), מעלה גם את הסיכון שה[[מתכנת]] יבצע רק חלק מהשינויים הנדרשים בקוד, ויפספס חלקים אחרים מהמערכת, מה שיוביל לפעילות לא תקינה של התוכנה ([[באג]]ים).
 
[[ארכיטקטורה רב-שכבתית]] הופכת את הסרת הצימוד (decoupling) לרשמי על ידי יצירה של '''שכבת לוגיקה עסקית'''. שכבה זו נפרדת משכבות התוכנה האחרות, כגון שכבת הגישה לנתונים (data access layer) או שכבת השירותים (service layer). כל שכבה "יודעת" רק את המינימום ההכרחי לגבי הקוד בשכבות האחרות - רק את מה שנדרש לצורך השלמת המשימות הנדרשות. לדוגמה, בפרדיגמתב[[פרדיגמת תכנות|פרדיגמת]] ה-[[Model View Controller|model-view-controller]], שכבת הגישה לנתונים או בסיס הנתונים (ה-model), ושכבת ממשק המשתמש (ה-view), ניתנות למימוש כך שיהיו פאסיביות ככל הניתן, כך שכל הלוגיקה העסקית תתרכז ב-controller.
 
בדוגמה של אתר הקניות ברשת שניתנה למעלה, ה-controller יקבע את סדר דפי האינטרנט בתהליך ביצוע ההזמנה, וכמו כן הוא אחראי על ווידוא התקינות (ולידציה) של כתובת הדואר האלקטרוני, הכתובת למשלוח והמידע אודות אמצעי התשלום, במטרה לספק את כל הכללים העסקיים (במקום להשאיר את העבודה הזאת לבסיס הנתונים עצמו, או לקוד אחר "נמוך" יותר שתפקידו לתקשר עם בסיס הנתונים).
 
קיימות גם פרדיגמות אלטרנטיביות. לדוגמה, במקרה של יישויות עסקיות פשוטות יחסית, view ו-controller גנריים יכולים לגשת לאובייקטים של בסיס הנתונים, שהם עצמם מכילים את כל הלוגיקה העסקית הרלוונטית לגבי פורמטים תקינים ואילו שינויים אפשריים (ידוע בשם database model).
 
== ראו גם ==