כימיקלים ודגום; חומרים הנדסה
אסטרטגיות להוראת עקרונות סולידריות בחינוך הנדסי
Table of Contents
מדוע עקרונות SOLID חשובים בחינוך להנדסה מודרנית
חינוך להנדסה תוכנה כבר זמן רב להתמודד עם פיזור הפער בין תיאוריה לבין תרגול מוכן בתעשייה.עקרונות SOLID מציעים מסגרת קונקרטית לעיצוב מערכות מכובדות, מדרגיות, ומבחן.הוראת עקרונות אלה ביעילות אינה רק על רישום ראשי תיבות - זה על לצייד תלמידים עם מודלים נפשיים שינחו כל החלטה עיצוב שהם עושים בקריירות שלהם.כאשר התלמידים פנימיים SOLID, הם עוברים קוד זה רק כדי לשנות אסטרטגיות תכנות.
« יסודות: מה שכל מחנך צריך לדעת על SOLID
לפני צלילה לאסטרטגיות הוראה, חשוב להבין כל עיקרון.חמש ההנחיות, שהוצגו על ידי רוברט מרטין בתחילת שנות ה-2000, הן:
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) קוד פתוח/סגור את עקרון ה-OCP:FLT:1 ישויות תוכנה צריכות להיות פתוחות להרחבה אך סגורות לשינוי.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) יחסי סגירה Principle (ISPIR): לקוחות 1FLT:1 לא צריך להיות נאלץ להיות תלוי ממשקים שהם לא משתמשים בהם.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
לצליל עמוק יותר להגדרות המקוריות, נייר היסוד של מרטין (FLT:0) "עקרונות עיצוב ותבניות עיצוב" (FLT:1) נשאר קריאה חיונית.מחנכים רבים גם התייחסות FLT:2 המאמר SOLID ויקיפדיה SOLID 3: עבור סקירה תמציתית.
אסטרטגיה 1: למד SOLID באמצעות ריחות קוד ותיקון
תלמידים לעתים קרובות נאבקים עם SOLID כי היתרונות אינם גלויים מיד בבסיס קוד קטן.יש גישה מוכחת אחת היא להציג את הקוד מריח ראשון - נקודות כי כל מפתח חווה.לדוגמה, מחלקה המטפלת קובץ I / O, אימות נתונים, ו- logging מפרה את SRP. Show התלמידים "לפני" הפרות" עם ריחות אלה, ולאחר מכן להנחות אותם באמצעות אספקת SOLID-com מציעות קודים פשוטים: שיטות הפעלה ויזואליות של קודים, כגון: קידודים אינטראקטיביים, לעתים נדירות, כלומר, כלומר, תיבות של קודים, כלומר, כלומר, כלומר, תכונות אינטראקטיביות של שיטות הפעלה: ויזואליות של קודים, כלומר, כלומר, כלומר, תכונות הפעלה: קידודים של קודים של שיטות הפעלה: קידודים של קודים של קודים של סימולציות, כלומר, כלומר, כלומר, תכונות אינטראקטיביות של שיטות הפעלה: ויזואליות של שיטות הפעלה: ויזואליות של PG.
מעבדת למידה פעילה: מתן אפשרות לקניית קניות
(ה) ,"ג'אווה" או פייתון (הנקראו "FLT:0") אשר חישובים בסך הכל, חלים הנחות, מייצרים סיכום סדר, וחוסך למסד נתונים.בקשו מהתלמידים לרשום את כל האחריות, יחד, לתאים לכיתות נפרדות: (FLT:1, FLT:2, FLT 3: 3, ו-FLT:4 זה הופך את SRP, הבא, להציג סוג חדש וניתן לשנות את אותו סוג של ;5 ל-i) באמצעות .
אסטרטגיה 2: השתמש אנליטיקות חזותיות ומטאפורות
עקרונות מופשטים נעשים נגישים כאשר ממפה מערכות מוכרות.עבור SRP, השוו את סכין הצבא השוויצרי (violates SRP) למערך סכינים מטבח ייעודיות ייעודיות (אחרי SRP) עבור OCP, השתמש בשחקן מדיה שמתמוך בתוספים - משתמשים להוסיף קודים חדשים ללא שינוי קוד ליבה של DSP יכול להיות לימד עם בעיית "Square-Rect" קלאסית, אם משנים רוחב של מלבן באופן עצמאי של מדפסת חשמל שאינה מתקנת.
אסטרטגיה 3: גמול עקרון ההזדהות
[הופנה מהדף תחרותי.יצירת סיפון קלפים (או חידון דיגיטלי) שבו כל כרטיס מתאר תרחיש קוד.סטודנטים גזע לזהות איזה עקרון SOLID מופר (או לאחר מכן) נקודות פרס על תשובות נכונות ונקודות בונוס על מנת להציע תיקון.זה עובד כמו גם חימום בתחילת השיעור או כמבחן לפני הבחינה.
אסטרטגיה 4: Integrate SOLID לתוך Full-Stack או Project-מבוסס קורסים
תרגילים מפוכחים שימושיים, אבל עקרונות SOLID מקבלים משמעות אמיתית כאשר הם מוחלים במערכת גדולה יותר.עיצוב פרויקט קבוצתי ארוך סמסטר שבו התלמידים בונים יישום רב-שכבתי (למשל, מערכת ניהול ספריה, פלטפורמה להזמין מסעדה) דורש באופן אקספונציאלי כי האדריכלות עוקבת אחר עקרונות SOLID, והעריך את החלטות התכנון שלהם אבני דרך חשובות, לספק קוד מתחיל יקר כי מפר בכוונה או אחד עקרונות, לעתים קרובות, לבדוק את זה, לבדוק את זה, לבדוק את השינויים הנדרשים על ידי שינוי משמעותי.
דוגמה: אישור ל-DIP
לאחר ההתנתקות הראשונה, ייתכן שלפרויקט יש כפל 7 (הראשונה) אשר ישמיד ישירות את ה-FLT:8 (הידועה על דרישה לתמוך ב- PostgreSQL.סטודנטים חייבים להציג ממשק FLT:9 ולהזריק אותו באמצעות בנייה.הקפיצה הזו מעיקרון מופשט להכרחי קונקרטית הופכת את DIP אינטואיטיבית באופן דומה, אם הצוות צריך להוסיף הודעות דוא"ל מאוחר יותר, הם יכולים ליישם על ידי פיצול על ידי מנון של מספרד 10 עד 12.
אתגרים משותפים וכיצד להתגבר עליהם
גם עם אסטרטגיות חזקות, התלמידים מתמודדים עם מכשולים.כאן המלכודות הנפוצות ביותר וכיצד לטפל בהם.
אתגר: Over-Engineering
מעצבי טירון לפעמים ליישם עקרונות באופן דוגמטי, יצירת ממשקים מיותרים ושכבות מופשטות.למדו כי SOLID הוא כלי, לא ספר כללי.מצו על כך שההמטרה היא שמירה על יכולת, וכי היכרות עם מופשטת יש עלות. השתמש ב"כלל של שלוש": רק מופשטת כאשר יש לך שלוש או יותר התנהגויות דומות.
תגית: LSP Confusion
תלמידים לעתים קרובות להשוות LSP עם בטיחות מסוג או פולימורפיזם בכלל.קלף כי LSP הוא על תת-ההתנהגות subclass לא צריך להחליש את התנאים מראש או לחזק את תנאי ההורה שלה. השתמש היררכיה המעמדית כמו FLT:13 ו FLT:14 (פינגווין הוא ציפור אך לא יכול לעוף) כדי להראות הפרה - אם למחלקה הבסיסית יש שיטת FLT, 15 כדי לתקן את הממשק בנפרד.
אתגר: חשיבה מופשטת
חלק מהתלמידים משגשגים על סינטקס קונקרטי אבל נאבקים עם עיצוב מופשטים.Pair coding תרגילים עם דיאגרמות בכיתה יש תלמידים לצייר דיאגרמות UML להראות תלות לפני ואחרי החלת DIP. Visual מסייע להם לראות את העיוות של שליטה. Tools כגון FLT:0turn.ioFLT:1 או Lucidchart שימושיים עבור דיאגרמות שיתופיות במהלך הכיתה.
אסטרטגיות הערכה שמעבר לזיכרון
חידון choice מסורתי יכול לבדוק את זכר ההגדרות אבל לא למדוד יישום. במקום זאת, הערכות עיצוב הדורשות ניתוח וסנתזה של עקרונות SOLID.
מבחן עיצוב
תן לתלמידים דיאגרמת מעמד מורכבת בינונית או רישום קוד המכילה הפרות מרובות SOLID. בקש מהם לזהות הפרות ספציפיות, להסביר מדוע הם בעייתיים, ולהציע עיצובים מספקים מחדש.זה בדיקות פורמט פתוח הבנה עמוקה.דרגה המבוססת על נכונות זיהוי וכדאיות של הפתרון המוצע.
מתן תיקונים
יש כל תלמיד להגיש תיק של תרגילים משביעי רצון שהם השלימו במהלך הסמסטר.הם חייבים לספק לפני / אחרי קוד ורציונלית קצרה עבור כל עיקרון החל. תיק זה הופך לחפץ ממשי שהם יכולים לדון בראיונות עבודה.לעודד ביקורת עמיתים שבו התלמידים מבקרים אחד את העיצובים של השני - זה בונה מיומנויות הערכה ביקורתית.
פרויקט ראשי > IMstones
במקום הגשת סופית אחת, יש צורך בצוותים להגיש מסמכי עיצוב בנקודות מפתח: אדריכלות ראשונית (ציות המדינה SOLID), לאחר אישור ראשון, וקוד סופי.ספק נקודות פשפשפש במיוחד ליישום נכון של כל עיקרון.לדוגמה, SRP הוכיח אם אין מעמד יש יותר אחריות ברורה אחת; OCP מוצג אם תכונות חדשות ניתן להוסיף ללא שינוי שיעורים קיימים.
הבאת פרספקטיבה בתעשייה לכיתה
הרצאות אורח ממהנדסי תוכנה מנוסים שיכולים לשתף סיפורים אמיתיים על כישלונות והצלחות הם בלתי נסבלים.אם אורחים חיים אינם אפשריים, משתמשים בשיחות מוקלטות או מחקרים מקרהיים.לדוגמה, FLT:0 רוברט C. Martin's Talk "SOLID Principles" ב- YouTubeFLT:1 מספק גם קשר אותנטי.
מסקנה: בניית קרן סולידריות למהנדסים עתידיים
הוראה עקרונות SOLID אינה משימה אחת-הרצאות.זה דורש גישה מובנת - הריח הקוד אינטרודוקטיבי, מחזקת תרגילים מספקים, להעמיק עם מטאפורות חזותיות, ומוצפנת עם למידה מבוססת פרויקטים. על ידי מעבר מזכרון עקרוני מבודד חשיבה עיצוב הוליסטית, מחנכים להכין את התלמידים לכתוב תוכנה שעומדת במבחן הזמן.אסטרטגיות המתוארות כאן לעזור להפוך את acroms מופשטים להרגלים עיצוביים באמת.