Menu
עברית Русский
מכללת פרקטיקיו
- מתחילים ללמוד חינם -
קורסי תכנות / סייבר / ניהול רשת

Generics

קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - Hacking מסלול תקשורת ואבטחת מידע
Cisco CCNA & FortiGate & Checkpoint
מומחה ווירטואליזציה
VMware & Hyper-V
מסלול לינוקס ו-DevOps מומחה ענן של אמזון - AWS מומחה ענן של מיקרוסופט - Azure מומחה ענן של גוגל - GCP מומחה שרתי SCCM - System Center
של מיקרוסופט לארגונים גדולים
קורסי תכנות מסלול Full Stack דוט-נט
יסודות התכנות
מסלול Full Stack דוט-נט
צד שרת - Backend
מסלול Full Stack דוט-נט
צד לקוח - Frontend
מסלול Full Stack Node.JS קורסי תכנות נוספים
Java / Python / PHP
מפתח אפליקציות - אנדרואיד - אייפון מפתח משחקי מחשב - Unity מפתח תוכנות לוונדוס - WinForms מסלול DBA - דטה אנליסט
התמחות במסדי נתונים – SQL
בדיקות תוכנה - QA בדיקות תוכנה - QA - אוטומציה בדיקות תוכנה - QA - בדיקות ידניות בדיקות תוכנה - QA - קורסים נוספים המלצות תלמידים על PracticU
סיכום ב-3 דקות - Generics

בשיעור זה לומדים מהו Generics ואילו בעיות של type safety הוא פותר, רואים את ההבדל בין בדיקה בזמן פיתוח לבדיקה בזמן ריצה, עובדים עם האוספים הגנריים של net בשם List ו-Dictionary, ויוצרים מחלקה גנרית משלנו שמקבלת טיפוס פרמטרי ומשתמשים בה.

שלבי העבודה המוצגים בשיעור:

1. נושא השיעור: מצגת פתיחה בשם מה נדע בסוף השיעור מציגה את נושאי השיעור, ובהם מהו Generics, מה הבעיה ש-Generic פותרים, מה המשמעות של המונחים Development Time ו-Run time ואיך זה רלוונטי ל-Generics, אילו טיפוסים קיימים ב-net לעבודה עם Generics ואיך יוצרים מחלקה שעושה בהם שימוש.
2. פתיחת הפרויקט: נכנסים ל-Microsoft Visual C# 2010 Express אל פרויקט בשם LessonGenerics, ובתוך הפונקציה הראשית מגדירים שני משתנים להדגמה, משתנה מטיפוס string בשם name שמכיל את הערך avi ומשתנה מטיפוס int בשם salary שמכיל את הערך 8000.
3. עבודה עם ArrayList: יוצרים אוסף מטיפוס ArrayList, שהוא אוסף לא גנרי, ומוסיפים אליו את שני המשתנים, ובחלונית ה-IntelliSense רואים שהמתודה Add מקבלת פרמטר מטיפוס object, כלומר כל דבר אפשר להכניס לאוסף הזה וערכי טיפוסים פשוטים נארזים בתוך object.
4. הדפסת האוסף: מדפיסים לקונסולה את שני הפריטים שבאוסף באמצעות Console.WriteLine עבור הפריט במקום 0 והפריט במקום 1, ומודגש שהפריטים יוצאים מהאוסף כ-object ולא כטיפוס המקורי שלהם.
5. הקצאה בלי המרה: מנסים להקצות את הפריט הראשון מהאוסף ישר למשתנה מטיפוס int, ומיד מופיעה שגיאת הידור אדומה, משום שהקומפיילר אינו מאפשר להקצות object ל-int בלי המרה מפורשת.
6. המרה מפורשת: מתקנים את השורה בהוספת המרה מפורשת ל-int לפני הפריט שנשלף מהאוסף, והשגיאה נעלמת, אך מוסבר שכך האחריות לבדוק את הטיפוסים עוברת למתכנת, והמרה שגויה תתפוצץ רק בזמן ריצה ולא בזמן הפיתוח.
7. בדיקה בזמן ריצה בדיבאגר: מריצים את התוכנית במצב ניפוי שגיאות ומסתכלים בחלונית הצפייה על האוסף, שמראה Count שווה 2, את הפריט הראשון כמחרוזת שמוחזקת בתוך object ואת הפריט השני כמספר 8000 שנארז, ובסטטוס בר נראה שהבנייה הצליחה.
8. Development Time מול Run Time: מסבירים את המונחים מתוך המצגת, שבדיקת טיפוסים בזמן הפיתוח נעשית על ידי הקומפיילר עוד לפני שהתוכנית רצה ותופסת שגיאות מוקדם, ואילו בזמן ריצה שגיאת טיפוס מתגלה רק כשהמשתמש כבר נתקל בה, ו-Generics נועדו להעביר את הבדיקה לזמן הפיתוח.
9. הצגת הפתרון הגנרי: מציגים מצגת שמסכמת ש-Generic מאפשרים להגדיר מחלקות ומתודות עם טיפוס פרמטרי, כך שאותו קוד עובד עם טיפוסים שונים תוך שמירה על בדיקת טיפוסים בזמן הידור, בלי המרות ובלי אריזה של ערכים.
10. יצירת רשימה גנרית: כותבים במקום ה-ArrayList רשימה גנרית מהטיפוס List שמוגדרת להחזיק int בלבד באמצעות סוגריים זווית, וזו מחלקה מתוך מרחב השמות System.Collections.Generic שכבר מיובא בראש הקובץ.
11. בדיקת הטיפוס בזמן פיתוח: מנסים להוסיף לרשימה הגנרית את משתנה ה-string, ומיד מופיעה שגיאת הידור, כי הרשימה מקבלת int בלבד, וזה בדיוק היתרון שהבעיה מתגלה בזמן הפיתוח ולא בזמן ריצה.
12. Dictionary גנרי: מציגים את ה-Dictionary שהוא אוסף של זוגות מפתח וערך, ובחלונית ה-IntelliSense רואים שהוא מוגדר עם שני פרמטרי טיפוס, TKey עבור סוג המפתחות ו-TValue עבור סוג הערכים, ויוצרים מופע שמקבל int ו-int.
13. הוספה ושליפה מהמילון: מוסיפים למילון זוג שמקשר בין מפתח מספרי לשכר, ואחר כך שולפים ערך לפי מפתח ישר למשתנה מטיפוס int, בלי שום המרה מפורשת, משום שהמילון מבטיח שהערכים שלו מטיפוס int.
14. אימות הטיפוס ב-IntelliSense: לוחצים נקודה אחרי המשתנה שקיבל את הערך מהמילון, ורשימת החברים שמוצעת כוללת את המתודות של int כמו CompareTo ו-ToString, הוכחה שהערך חזר מטיפוס מדויק ולא כ-object.
15. המרה עדיין נדרשת ב-ArrayList: משלימים בקוד גם שליפת מחרוזת מה-ArrayList הישן, ושם עדיין נדרשת המרה מפורשת ל-string, בניגוד לרשימה הגנרית, וכך מודגש ההבדל בין שתי הגישות זו לצד זו.
16. הוספת ערכים לרשימה: מוסיפים לרשימה הגנרית שלושה מספרים שלמים, ואחר כך שולפים את הפריט הראשון ישר למשתנה מטיפוס int בלי המרה, והקוד מתקמפל בצורה נקייה.
17. יוצרים מחלקה גנרית בשם ListOfItems: מוסיפים לפרויקט קובץ מחלקה חדש בשם ListOfItems, מוסיפים להצהרת המחלקה פרמטר טיפוס T בסוגריים זווית, מגדירים בתוכה שדה פרטי שהוא מערך של T, ובונים לה בנאי שמקבל מערך כזה ומאחסן אותו בשדה.
18. שימוש במחלקה הגנרית: חוזרים לקובץ הראשי, מגדירים מערך של מספרים עם הערכים 1, 2, 55 ו-88, יוצרים מופע של המחלקה הגנרית כשה-T מוחלף ב-int ומעבירים לבנאי את המערך, ובשיטה GetNumberOfItems שמחזירה את אורך המערך אפשר לקבל את מספר הפריטים, וכך המחלקה אחת עובדת עם כל טיפוס שנבחר.

בסיום השיעור אנחנו יודעים מהו Generics ולמה הוא עדיף על אוספים לא גנריים, הבנו את ההבדל בין בדיקת טיפוסים בזמן פיתוח לבדיקה בזמן ריצה, עבדנו עם List ו-Dictionary מ-net בלי המרות ובלי אריזה, ואפילו בנינו מחלקה גנרית משלנו שמקבלת טיפוס פרמטרי ומשמשת לניהול מערך פריטים. בשיעור הבא נלמד על Entity Framework Core.
סקר שוק נכון לתאריך – 01/09/2011

הסבר קצר על שיטת הלימוד אונליין

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


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

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


מה לעשות אם לא מבינים משהו בסרט?

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


האם יש לכם כיתות לימוד רגילות?

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



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

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

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


מידע כללי:
1. חומר הלימוד מורכב ממאגר עצום ומסודר מאוד של סרטים מקצועיים, הניתנים לצפיה מהבית. מאגר זה כולל הרצאות מוקלטות בעברית בצורה מסודרת ע"י המרצים הטובים ביותר. רשימת הסרטים המלאה נמצאת בתפריט בצד ימין.
2. כל סטודנט במכללה מקבל שם וסיסמה לצורך גישה לשרת הקבצים שלנו.
השרת מכיל את כל התוכנות הדרושות ללימוד וכן חומר עזר
3. הקורסים מועברים בהתאם לסילבוסים של החברות המובילות: Microsoft, Cisco