
הטקסט המלא של הדקות הראשונות בהרצאה «תרגיל מעשי Delegate Event» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, אנחנו הולכים לעשות תרגיל ביחד על איבנטים ודילגייטס ולמעשה יש לנו פה לקוח שהגיע ואנחנו בעצם כותבים תוכנה ללקוח שזאת חברה שמייצגת מדגי אור, סוויצ'ים חכמים לבית חכם בית חכם זה בית המנוהל על ידי מחשב מרכזי, תאורה, מיזוג, דריסים, הכל שלט מרכזי, כאילו דרך שלט אנחנו יכולים לנהל
את כל הבית ואנחנו צריכים לכתוב תוכנה שיודעת לנהל סוויצ'ים, יפה לקוחות החברה הן חברות המייצרות פתרון כולל ללקוח ולא רק מדגי עור.
אנחנו עושים רק סוויצ'ים לעור ואנחנו הולכים למכור את הפתרון שלנו לחברות שעושות את כל הבית החכם. החברה שלנו משמשת כמו קבלן משנה ליצרניות של בית חכם.
יפה מאוד. התבקשנו לערוך ניסוי קטן וליצור תוכנה קטנה עבור מתג אחד. אמרו לנו תעשה סוויץ' אחד, אם אני ארצה נעשה אולי שני סוויץ'ים.
כשהסוויץ' הזה מדליק שלוש מנורות, כמו בבית, כפתור אחד מדליק לי ישר שלוש מנורות. תחשבו כמו בכיתה. יפה. אז אנחנו צריכים ליצור שלוש מנורות, ליצור סוויץ' אחד, ושהסוויץ' הזה ידליק לנו שלוש מנורות.
נורא פשוט. כרגע בשלב הראשון של הפיתוח אנחנו נדפיס רק הודעות על המסך. מאוחר יותר שורות האלו יוחלפו בקוד הפעלה למיתגים אמיתיים.
זאת אומרת, אנחנו נעשה רק פקודות למסך ואחרי זה יבואו אנשי האלקטרוניקה ונחליף להם את זה לפקודות אמיתיות. אז מה הם הדרישות בעצם שהציב לנו מנהל המוצר?
לבדוק שאין עומס יתר לפני כל הפעלה. לפני שעושים סוויצ'ון, לבדוק שאין לנו עומס יתר. לדווח על פי דרישה, כאילו אם יבקשו מאיתנו, מצב של כל מנורה.
אם יש לנו שלוש מנורות, אז לכל מנורה האם היא כבויה, האם היא דלוקה. אפשרות לדווח מצב של הסוויץ', האם סוויץ' למעלה או למטה, אם הוא ב-on או ב-off. יכול להיות מצב שהסוויץ' עבר ל-on אבל המנורה לא נדלקה, סתם דוגמה, או שתי מנורות דלוקות, אחת כבויה כי הסוויץ' לא יודע משהו, לא עבד לו. אני צריך לקבל גם מידע על סוויץ' וגם מידע על
מצב של כל מנורה. עכשיו שימו לב פה, סעיף מאוד חשוב. לאפשר ללקוח להוסיף פעולות משלו, הלקוח שלנו זה החברה הראשית שעושה את כל הבית החכם שהחברה הראשית תוכל גם להוסיף כל מיני פעולות משלה באמצע, בזמן שאנחנו עושים on או off לסוויץ'.
לאפשר ללקוח להוסיף פעולות משלו במעמד ההדלקה או כיבוי של המתג. ודבר אחרון, הלקוח מקבל רק את קובץ ה-DLL וצריך למנוע ממנו שימוש לא נכון במערכת.
מה זה שימוש לא נכון? לדוגמה שלא יעקוף לי את הבדיקה של עומס יתר. שלא יוכל להדליק את זה בלי עומס יתר. כדי לבדוק ש-DLL שכתבתם באמת עובד, התבקשתם גם לכתוב תוכנה ראשית, כאילו מהצד של הלקוח, שבודקת אותה. יפה מאוד.
אז בואו נתחיל לעשות את זה. הבנתם? אנחנו הולכים לעשות בעצם DLL, שה-Dלל הזה הולך להיות גם סוויץ' וגם מנורה. לכל אחד יהיה לנו מצב שלו, ולבדוק שאין עומס, ולהוסיף פעולות של המשתמש.
אני מקווה שהבנתם. יופי. אז אנחנו נתחיל ממש ממש מאפס, נפתח Visual Studio Rack ונתחיל הכל הכל הכל לכתוב מאפס. אז בגלל שאנחנו רוצים בעצם לכתוב שני פרויקטים, אנחנו רוצים לכתוב גם את הפרויקט של ה-DLL וגם את הפרויקט של ה-Client שמשתמש בו.
אז אנחנו נתחיל ממש לכתוב הכל מאפס, נעשה File New Project ונעשה קלאס. למה קלאס? כי אנחנו רוצים DLL. נקרא לו את זה Smart... לא יודע מה, לא יודע.
עכשיו לא בא לי איזה שם, Smart House, אני יודע מה. אוקיי, סמארט סוויץ', סוויץ' חכם נקרא לו. אוקיי, יפה. אז הקלאס הראשון שיהיה לנו נקרא לו Lamp, מנורה.
והקלאס השני שיהיה לנו נקרא לו סוויץ', יפה מאוד. יש לנו סוויץ' ויש לנו מנורה. למעשה אנחנו ניצור פה שלוש מנורות אחרי זה מהקלאס הזה.
וניצור סוויץ' אחד, יפה מאוד. טוב, אז מה אנחנו רוצים לעשות? אז אנחנו כבר יודעים איך להשתמש ב... בואו נתחיל אז בואו אנחנו לא זה בואו נעשה קונסטרקטור ונקרא לו נעשה קונסטרקטור ונעשה קונסול רייטליין כי אנחנו אנחנו מרוכזים בעקרונות אחרי זה אתם תראו שזה בקלות כל העקרונות שלנו עובדים גם בווב גם בלא
יודע מה גם בווינפורמס גם בווב גם באפילו פלאפונים טלפונים כל היסודות התכנון זה אותם יסודות התכנון בכל מקום גם בשפות אחרות כל הלוגיקה היא אותה לוגיקה כל האובג'קט אוריינטד זה אותו אובג'קט אוריינטד בכל השפות.
קונסול רייטליין, New Switch Just Created. ובואו נעשה ישר שכל הודעה של סוויץ' תהיה בצבע כחול. קונסול foregroundColor שווה בלו.
נעשה יופי. יופי, כל הצבעים של סוויץ' יהיו בבלו. יופי, מה אנחנו רוצים לעשות בתוך הסוויץ'? יצרנו אותו, אנחנו בתוך הקלאס של הסוויץ'.
אנחנו רוצים לעשות פרייבט איז אובר איז אומסיאטר איז אובר אובר פאוור כן אפשר להמציא שמות יותר טובים כן איז אובר פאוור זה בול הוא בודק איזה איף משהו משהו איף משהו משהו הוא עושה בדיקות סם טסטינג ואם יש אישור הוא מחזיר לי true כן זה אומר שאחרי זה נכניס לפה כל מיני בדיקות יופי, עשינו כל בדיקות עומס יתר.