להיות Tech Lead של הצוות.
למנף ידע קיים עם הידע הנלמד על מנת לתכנן ארכיטקטורה נכונה, יעילה וקלה לתחזוקה. להיות מעורב בפרויקטים בקנה מידה גדול יותר בזכות ראיה מרחיבה של כל תהליך פיתוח בצד שרת מקצה לקצה.
מה נלמד
עקרונות יתרונות וחסרונות של ארכיטקטורת מיקרוסרביסים
בניה של מערכות מבוססות ארכיטקטורה מונחית אירועים
עבודה עם API וניהול גרסאות
יישום עקרונות DevOps להעברות אוטומטיות לייצור
ניהול נכון של נתונים במערכות מבוזרות
כלים עקרונות הכי נדרשים לפיתוח צד שרת
תרגום דרישות עסקיות לארכיטקטורה טכנית
תהליכי פיתוח אג'יליים בעולמות צד שרת
מתכונת הקורס
אורך כללי של הקורס 21 שעות
מחולק ל 7 מפגשים של 3 שעות כל אחד
מועבר אונליין בזום בשעות הערב בין 19:00 ל 22:00
רמת קושי: בינוני\גבוה
הקורס מותאם לאנשי פיתוח צד שרת עם ניסיון של לפחות שנתיים בתעשיה, מובילי צוותי פיתוח המעוניינים להעמיק את הידע בתהליכים ושיטות פיתוח נכונות, אנשי מקצוע מעולם הפיתוח אשר מעוניינים להעמיק את הידע בטכנולוגיות צד שרת
הרשמה
עלות הקורס הינה 2,500 שח
לשיחת ייעוץ והרשמה השאר פרטים בטופס הבא או צור קשר באמצעות הודעת וואטסאפ
מעבר למילוי Google Form
סילבוס
שיעור 1: תהליכי פיתוח נכונים
- אבולוציית עולם הפיתוח, פער בין הדומיין למימוש
- הצורך בתהליך פיתוח מוסדר
- תהליכי פיתוח אג'יליים, Scrum, XP
- תהליך פיתוח תוכנה איטרטיבי SDLC, אחד הכישורים הנדרשים בימינו
שיעור 2: ניתוח ועיצוב מערכת מידע
- איסוף דרישות, ניתוח דרישות ותיעוד
- יצירה של High Level Design של המערכת
- אפיון פונקציונאלי של מערכת
- תיעוד ארכיטקטורת מערכת
שיעור 3: ניתוח ועיצוב רכיבי תוכנה
- עיצוב מונחה דומיינים Domain Driven Design
- עבודה לפי מתודולוגיה Working Backwards של אמזון
- יצירה של Detailed Design לרכיבי תוכנה
- יצירה של אפיון פונקציונאלי לרכיבי תוכנה
- יצירה של אפיון טכני לרכיבי תוכנה
שיעור 4: מערכות מבוזרות
- צורות תקשורת בין רכיבי תוכנה מבוזרים
- תקשורת סינכרונית ואסינכרונית
- עקרונות RESTful API
- עבודה עם API First
- ניהול גרסאות API
- תיעוד חוזה שירות באמצעות Open API Spec
- משילות API
שיעור 5: ארכיטקטורת מיקרוסרביסים
- ארכיטקטורת מיקרוסרביסים
- שכבות ומבנה פנימי של שירות, Cross Cutting Concerns
- לוגים, מטריקות, טרייסים
- מתודולוגיית בדיקות
- בדיקות יחידה
- בדיקות קומפוננטה
- בדיקות אינטגרציה
שיעור 6: ניהול נתונים
- אתגרים של ניהול נתונים בעולם מיקרוסרביסים
- עבודה עם בסיסי נתונים SQL ו Document
- עיצוב בסיסי נתונים אבולוציוני
- ניהול טרנזקציות מבוזרות
- ארכיטקטורה מונחית אירועים EDA
- עקרונות CQRS, Event Sourcing
שיעור 7: עולים לייצור
- תיעוד טכני של רכיבי תוכנה
- מתודולוגיית סקירת קוד Code Review בצוות
- מתודולוגיית ניהול קוד עם גיט
- הטמעת תהליכי DevOps
- עבודה עם קונטיינרים ו Docker
- מערכת ניהול קונטיינרים Kubernetes
- ניהול תצורת פריסה עם HELM
- דמואים והצגה אפקטיבית לבעלי עניין
פיתוח בעולם המודרני
המקצוע שלנו דורש מאיתנו כל הזמן ללמוד טכנולוגיות חדשות ולהתמקצע בסטאק הטכנולוגי של התחום. כמפתחים אנחנו צריכים להכיר שפות תכנות, מתודולוגיות פיתוח, עקרונות ניתוח ואפיון מערכות מידע, יכולת לבנות ארכיטקטורה של מערכות, עקרונות כתיבת קוד נקי, ארכיטקטורת מיקרוסרביסים, עבודה עם בסיסי נתונים, כתיבה טכנית ומדריכי משתמש, עבודה עם עשרות כלים מתקדמים, עבודה בשיטות Agile, תרבות DevOps ועוד…
וזה רק על קצה המזלג.
למרות שידע של שפת תכנות זה משהו בסיסי וחשוב, נדרשת ראיה מרחיבה של ארכיטקטורת מערכת וכל תהליך הפיתוח מקצה לקצה על מנת לבנות פתרונות טובים יותר.
מעבר לשפת תכנות
במהלך קורס אנו נצא למסלול למידה מרתק אל מעבר לשפת התכנות. נלמד נושאים שיקנו לנו חשיבה מערכתית וראייה מרחיבה. נבין למה אנחנו עושים את מה שאנחנו עושים, מה האלטרנטיבות ומה השיקולים עליהם אנחנו צריכים להתבסס על מנת לבנות מערכות אשר עונות על הצורך העסקי ויחד עם זאת פשוטות וקלות לתחזוקה.
הבנה של עקרונות
זה לא משנה עם איזה שפת תכנות אתם עובדים. אנו נלמד עקרונות ארכיטקטורה ושיטות עבודה הנמצאים בשימוש במשך שנים בתעשיה וישארו רלוונטיים במשך המון שנים קדימה. עקרונות ושיטות רלוונטיים לכל תחום פיתוח ולכל סוג של פרויקט.
שדרוג כישורים טכניים
במהלך הקורס נלמד נושאים הקשורים לכל תהליך הפיתוח של מיקרוסרביסים מהתחלה ועד הסוף, כולל ניתוח ואפיון של מערכות מידע מבוזרות, בניית עיצוב וארכיטקטורה, שיטות פיתוח מומלצות, תהליכי אוטומציה ובדיקות. בעזרת ראייה מרחיבה נוכל לקבל החלטות לפי קריטריונים נכונים, להציע אלטרנטיבות מתאימות ולהשיג איזון.
התפתחות מקצועית
על ידי שילוב ידע קיים עם הידע שנרכש בקורס, נוכל לראות את המערכת ואת תהליך הפיתוח מקצה לקצה. נהפוך להיות גורם מוביל ומקצועי לאורך כל מחזור חיי תוכנה מקצה לקצה ולא רק בשלב הפיתוח. נוכל לתרום לצוות הרבה יותר וכתוצאה מכך הערך שלנו בעיני המעסיק עולה.
יצירת קשרים
הקורס הינו הזדמנות להכיר וליצור קשרים עם אנשים איכותיים שמעוניינים להתפתח בתחום אשר עובדים בתפקידים מגוונים במקומות עבודה שונים. במהלך הקורס ולאחריו נוכל לשתף ידע, להתייעץ להכיר את אתגרים אחד של השני ונהפוך לקהילה מקצועית.
מתכונת הקורס
7 מפגשים אונליין של 3 שעות
במפגש יחיד אונליין של שלוש שעות ניתן ללמוד כמות נושאים השווה לעשרות שעות של קריאה ולמידה עצמית. מפגש אונליין מאפשר אינטראקציה ישירה עם המרצה והסטודנטים, לשאול שאלות ולדון ביחד בנושאים הקשורים לחומר הנלמד ודילמות אמיתיות ממקום העבודה.
סיכום כתוב בסוף כל שיעור
במהלך המפגשים אפשר להתרכז בהקשבה ולמידה ואין צורך לכתוב או לתעד את הנלמד. בסוף כל שיעור נשלח סיכום של החומר הנלמד. הסיכום כולל תיאור של כל הנושאים שנלמדו בשיעור כולל תרשימים והפניות למקורות ידע מורחבים שיאפשרו צלילה לחומרים מתקדמים בקלות בזמן פנוי במידת הצורך.
חומר מבוסס ניסיון מהתעשיה
לטובת הקורס נבחרו נושאים הכי אקטואליים ומעשיים אשר מייצגים את את עיקרי עבודתינו כמפתחים בתחום. הקורס מזקק אלפי שעות של פיתוח תוכנה hands-on, למידה, ספרות מקצועית, העברת הרצאות, חניכה של חברי צוות, וניסיון מעשי מהשטח בארגונים גדולים, סטארטאפים ופרוייקטים אישיים.
ארכיטקטורת מיקרוסרביסים
באופן מופשט, מערכת מידע טיפוסות בנויה משלושה רכיבים עיקריים: שכבת התצוגה, שכבת השרת ושכבת האחסון. שכבת התצוגה מאפשרת למשתמשים אנושיים לבצע אינטראקציה עם המערכת, לצפות במידע אשר מוצג למשתמשים באמצעות המסכים השונים, ולהזין מידע לתוך המערכת באמצעות כל מני פקדים שמוצגים על מסך, לדוגמא באמצעות שדות טקסט.
שכבת השרת מממשת את הלוגיקה העסקית של המערכת. לדוגמה: כל מני חוקים עסקיים, ולידציות, לוגיקה של אחסון ואחזור נתונים ואינטגרציה עם מערכות חיצוניות נוספות. שכבת האחסון מאפשרת לנו לשמור את הנתונים שלנו במקום בטוח. בשכבה הזאת, אנחנו בדרך כלל נמצא בסיס נתונים אחד או יותר, תלוי בגודל של מערכת המידע. כמובן שבפועל, רוב מערכות המידע הרבה יותר מורכבות ממה שאנחנו בדרך כלל נראה בשרטוט מערכת טיפוסי.
שלעיתים אפילו מאוחסן בתיקיית גיט אחת. המפתחים עלולים להפריע אחד לשני ועלולים להיווצר מצבים בהם כמה מפתחים משנים ביחד את אותו הקובץ. שיטת עבודה זו יוצרת כמה בעיות: קודם כל בגלל שיש לנו המון קוד ולוגיקה במקום אחד, למפתחים יש קושי להבין את הלוגיקה של תהליכים ולאתר תקלות. כמו כן, נוצרת צמידות גבוהה בין הצוותים. מכיוון שכולם עובדים על אותו הקוד, המפתחים צריכים לתאם את העבודה שלהם בתדירות גבוהה. תהליך העברה לייצור של מונוליט הינו ארוך וזאת מהסיבה שיש צורך לבנות, ולבדוק את כל המערכת כל פעם מחדש שרוצים לעשות העברה לייצור.
באמצעות חלוקה של מערכת גדולה לרכיבים קטנים, ניתן לממש את התהליך של פירוק מונוליט למיקרו סרוויסים. כל שירות עסקי אחראי על לוגיקה משלו וקוד של כל שירות עסקי מאוחסן בתיקיה נפרדת ומועבר לייצור בצורה בלתי תלויה. שיטת עבודה זו נקראת ארכיטקטורת מיקרוסרביסים.
לארכיטקטורת מיקרוסרביסים יש כמה מאפיינים: העיקרית הינה צמידות נמוכה בין השירותים העסקיים. אפשר לפתח ולהעביר לייצור כל שירות בנפרד, ללא תלות בשירותים עסקיים אחרים. לצוותי פיתוח יש אוטונומיה גבוהה, והצוות אחראי על השירות העסקי מהתחלה ועד הסוף. במקום בסיס נתונים אחד גדול שכל השירותים מתחברים אליו המתודולוגיה אומרת שלכל שירות עסקי הינו בעלים של הנתונים שלו. החלוקה של המערכת לשירותים קטנים, מתבצעת לפי אזורים עסקיים ולפי מתודולוגיה שנקראת Domain Driven Design.