PracticU

פרויקט מעשי ב-#C - תוכנת צייר - חלק 21

בלי כתוביותעם כתוביות
PracticU › פרויקט מעשי ב-#C - תוכנת צייר › פרויקט מעשי ב-#C - תוכנת צייר - חלק 21
מילון מושגים:
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
OOP - תכנות מונחה עצמים: גישת פיתוח שמארגנת את הקוד סביב אובייקטים המאגדים נתונים ופעולות.

פרויקט מעשי ב-#C - תוכנת צייר - חלק 21
בשיעור הזה מוסיפים מחלקה חדשה בשם Line, ומסבירים למה מסדרים קוד בלי להוסיף תכונה חדשה למשתמש. הנושא הוא סדר בקוד, והוא נוגע לאיך שהתוכנה תשרוד לאורך זמן.
השלבים העיקריים
1. מחלקה כתיקייה: מילת המפתח class מגדירה סוג חדש, שמכיל תכונות ופונקציות שקשורות אליו. ליין יש רוחב ורשימת נקודות, ולכן נכנסים לאותה מחלקה.
2. איחוד נתונים: הנקודות והרוחב של הקו, שהיו פזורים במשתנים נפרדים, נכנסים כעת לתוך טיפוס אחד, Line.
3. מטרה לטווח ארוך: בהמשך יעברו גם הפונקציות של הציור למחלקה, כך שכל קו ידע לצייר את עצמו. אותו עיקרון יחול על מלבנים, עיגולים, תמונות וטקסט.
4. תכנות מונחה עצמים: השיעור מציג את OOP כדרך לראות את התוכנה כאוסף של עצמים, שלכל אחד יש נתונים ופעולות משלו.
שימו לב
- מי שיקרא את הקוד בהמשך צריך להבין מיד איזה חלק שייך לאיזה דבר. מחלקה עם שם ברור מקלה על כך.
- בלי הסדר, גם תוכנה שעובדת נעשית קשה להמשכה, ולעיתים קרובות נזרקת לפח.
בסיום השיעור התלמיד מבין מדוע מחלקה מקבצת נתונים בצורה נכונה, ומה ההבדל בין קוד שעובד לקוד שניתן להמשיך לפתח.
השיעור הבא בקורס: פרויקט מעשי ב-#C - תוכנת צייר - חלק 22

פרקי ההרצאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 21

  1. 00:00

    הוספת מחלקת Line בלי פונקציונליות חדשה

  2. 01:42

    סדר בתיקיות כדוגמה לסדר בקוד

  3. 04:23

    סדר מונע תקלות ובלאגן

  4. 06:00

    מחלקה כתיקייה לנתונים ולפעולות

  5. 07:48

    תכנות מונחה עצמים OOP

  6. 09:25

    קוד שאדם מהרחוב יכול להבין

תמלול ההרצאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 21

הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 21» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:08

    לימדנו את הדבר החדש הזה את line ואמרנו שאוקיי הריילית עושה את העבודה אבל עדיף line אז נשאלתי מה זה הline הזה למה צריך אותו ומה הוא מוסיף על פני הריילית הרי שום דבר לא שונה במה שאנחנו עושים בהרתעה 16 ממה שעשינו בהרתעה 15 לא לא הוספנו פונקציונליות בזה שהוספנו את הדבר

  2. 00:47

    המוזר החדש הזה class line. אז למה עשינו את זה? נכון? לא, הרי לא שיפרנו שום דבר. למה זה טוב?

  3. 01:01

    אז התשובה היא, נכון, לא שינינו שום דבר, אבל עשינו סדר. למה הדבר דומה? לכל דוגמא שאני יכול לתת על לעשות סדר. זו דוגמא, שימו לב ששולחן העבודה שלי נורא נקי.

  4. 01:23

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

  5. 01:48

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

  6. 02:14

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

  7. 02:44

    אשת קשר שאני בקשר איתה ויש לי כמה מסמכים עבורה יהודית אם נסתכל בתוך יהודית נראה שיש לנו כמה דברים של יהודית יהודית אלון דוק ו-RTM ויהודית תקייה שנקראת recordings אז יש לי הרצאות כן זה הקלטות חדשות אז לגבי אודיו ולגבי console address book ובאופן כללי c-sharp language specification ותרגילים בתוך ה-console

  8. 03:12

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

  9. 03:44

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

  10. 04:02

    מה הועלת ליקום בזה שעשית סדר? הרי לא שינית שום דבר. הקבצים שהיו נשארו. מקסימום הוספת תיקיות אבל עשית סדר. אבל מה הועלת?

  11. 04:17

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

  12. 04:43

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

  13. 05:17

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

  14. 05:37

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

  15. 05:52

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

  16. 06:08

    אחת מהטכניקות של איך לשמור על הסדר זה להשתמש במילה השמורה class ולהגדיר טיפוס חדש, במקרה שלנו את line. אפשר לראות את line כתיקייה.

  17. 06:23

    class זו מילה שמורה שבעזרתה אני בעצם מגדיר סוג של תיקייה, תיקייה שבתוכה אני יכול לשים משתנה עוד משתנה ובהמשך עוד משתנים ובהמשך גם פונקציות.

  18. 06:43

    בקיצור זו תיקייה שמאחדת בתוכה כל מיני דברים שרלוונטיים לשם של התיקייה. אז אם שם התיקייה שלנו הוא ליין אז כל הדברים האלה אמורים להיות רלוונטיים לליין. כמובן שאם הם לא יהיו רלוונטיים לליין אז שוב חזרנו אל הבלאגן ואם יהיו דברים שקשורים לליין והם יהיו מחוץ לתיקייה אז שוב חזרנו אל הבלאגן.

  19. 07:09

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

  20. 07:26

    קלאס פירושה מחלקה, אז אני בא ואומר, אוקיי, יש לי מחלקת ליין. מחלקה זה תיקייה, תקראו לזה איך שאתם רוצים, אפשר היה לתרגם קלאס למה שרוצים, אבל זה איזשהו סוג של חלוקה.

  21. 07:42

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

  22. 08:10

    והיום יש ספרים וספרות ופרופסורים ובתי ספר שמתמקדים רק בפילוסופיה של איך בונים קלאסים בצורה נכונה. זה נקרא Object Oriented Programming, תכנות מונחי עצמים, או OOP או OOD, Object Oriented Design, תכנון מונחי עצמים.

  23. 08:35

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

  24. 09:00

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

  25. 09:17

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

  26. 09:41

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

  27. 10:01

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

לקורס המלא: פרויקט מעשי ב‑#C אונליין

ההרצאה הקודמת: פרויקט מעשי ב-#C - תוכנת צייר - חלק 20

ההרצאה הבאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 22

הרצאות קשורות מקורסים אחרים

  • תרגיל 24 - תוכנת צ'אט - חלק 1
  • פרויקט מעשי ב-#C - ספר טלפונים - חלק 1
  • תרגיל מעשי Delegate Event
  • שדרוג צייר שלנו על canvas

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C
  • קורס WCF - תקשורת למתקדמים בדוט-נט