YIT Mentoring 2018

אורן מונדשיין | 06.05.2017
כיצד חברת YIT משקיעה בשימור הידע של עובדיה בשנת 2018

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

שפת HTML
השפה של התוכן באינטרנט, שפה סמנטית המציגה את התוכן לבני האדם וגם למכונות שסורקות את האינטרנט, כמו למשל מנוע החיפוש של Google. מה פתאום ללמד HTML בשנת 2018? איך בכלל מקבלים עובדים לחברה בלי שהם כבר יודעים HTML? אז התשובה מאוד פשוטה. רוב הטכנולוגיות המודרניות ברשת האינטרנט דורשות שליטה מלאה ב-HTML, ב-CSS וכמובן ב- JavaScript. אנשים נוטים לזלזל בבסיס, אבל ללא הבסיס אי אפשר להיות מפתח באינטרנט!

שפת העיצוב של האינטרנט - CSS
בדומה ל-HTML גם זו טכנולוגיה ותיקה ובסיסית. אבל מי שמקפיד להתעדכן מגלה את נפלאות ה-CSS הבאות לידי ביטוי בשיטות עיצוב מודרניות קלות יותר מבעבר, המאפשרות לסדר את התוכן בצורה זורמת מצד לצד או מלמעלה למטה (Flexbox) או בצורה דמוית טבלה (Grid) ומאפשרות אפקטים ואנימציה שהופכות את האתרים שלנו ליפים ביותר בעולם! בנוסף אנו לומדים טכניקות רבות המאיצות את משך הזמן הנדרש לעיצוב (Template/Tools Frameworks) או הופכות אותו ליותר אוטומטי (למשל sass) ופחות משעמם.

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

סביבת הריצה Node.JS
סביבה זו מבוססת על המנוע JavaScript של כרום (V8), לכן היא גם קלה ללימוד. Node.js משתמש במודל מבוסס אירועים שאינו חוסם פעולות אחרות כאשר מתבצעת פעולה אטית יחסית כמו עבודה עם דיסק או רשת, במילים פשוטות הוא מאוד קליל ויעיל! הקהילה של מפתחי ההרחבות עבור הסביבה (npm) היא הגדולה ביותר בעולם הקוד הפתוח! Node.js משמש כבסיס לפיתוח אתרי אינטרנט רבים, גם כאילו שלא עושים בו שימוש בסביבת היצור. Node.js מהווה בסיס לאפליקציות רבות בענן (Serverless) כמו למשל ישומי AI מתקדמים.

מסגרות פיתוח Angular ו-VueJS והספרייה React
אנו עושים שימוש בטכנולוגיות אילו כבר זמן רב ונמשיך לעשות בהם שימוש גם כאשר ייכנסו הטכנולוגיות המתקדמות יותר (Web Components). השימוש הוא בהתאם לצרכים הספציפיים של הפרויקט או האפליקציה. טכנולוגיות אילו מאפשרות לנו ליצור אפליקציות יותר אטרקטיביות ויותר אמינות עבור האינטרנט. באמצעותם קל לנו יותר לפתח את ממשק המשתמש (UI) ולספק חווית משתמש (UX) טובה יותר.

יצירת דפים סטטיים (Static Pages)
מה חדש? הרי כך התחיל האינטרנט כאשר המציאו את ה-HTML עוד לפני שהמציאו את JavaScript. כידוע להגיש דף סטטי הרבה יותר פשוט וזול מלהגיש דף דינמי, אז היום ניתן לכתוב קוד חכם המאפשר לכתוב אפליקציות דינמיות באמצעות המסגרות והספריות שהוזכרו קודם לכן ואחרות. באמצעות טכניקות מיוחדות (Isomerphic JavaScript) ניתן ליצר בשרת תוכן מוכן מראש שיורד מהר לדפדפן וגם ידידותי למנועי חיפוש (SEO) כאשר בתוך הדפדפן הוא כבר ממשיך להתנהג בצורה דינמית כרגיל (SPA). יש גם את מצב הביניים האוניברסלי (Universal Web Apps) שכן דורש Node.js בשרת אשר רץ בשרת ומייצר את התוכן דינמית בשרת בפעם הראשונה ואחרי שיורד לדפדפן האפליקציה ממשיכה כרגיל (SPA).

בניית אפליקציות כ-Progressive Web Apps
השנה התחוללה מהפיכה חשובה, זה החל בכנס המפתחים Google I/O וסחף אפילו את Apple לאמץ גם כן את הטכנולוגיה. אם עד היום היינו חייבים להשתמש בטכנולוגיות שונות (Java,Swift,ObjectiveC) עם עקומת למידה תלולה יחסית, בכדי לכתוב אפליקציות לפלטפורמה ספציפית, או להתפשר על הפונקציונלית חלקית, אז היום ניתן לכתוב בטכנולוגיה אינטרנטית רגילה אחת ויחידה, בשפת JavaScript כמובן, אתר שנראה ומרגיש כמו אפליקציה ורץ על כל הפלטפורמות המובילות. טכניקה מיוחדת (Service Worker) שרצה במקביל לדפדפן גם כאשר הוא סגור מאפשרת קיום של של תכונות מיוחדות כמו גלישה במצב offline, שירותי Push שונים, סנכרון, אופטימיזציה של זמני הטעינה, הוספת ICON לדף הבית. הנושא חם מאוד ומתפתח מיום ליום.

הפצת יישומים כ-Serverless
יישומים בענן של Amazon Lambda או Google Functions ואחרים תופסים תאוצה רבה והופכים להיות אטרקטיביים גם מבחינת נוחות, זמינות ועלות. טכנולוגיות אילו מאפשרות לנו להתרכז בכתיבת הקוד בלי התלות באנשי תשתיות מסורתיים ולעלות את הקוד שלנו ישירות לענן בקלות רבה תוך ידיעה שהוא יעמוד בכל עומס. התענוג הזה לא בא בלי חשבון, אבל אנו משלמים רק על מה שאנו משתמשים בפועל. אנשי התשתיות שלנו לא צריכים לרכוש יותר מדי ציוד מחשוב או חלילה פחות מדי. שיטת עבודה זו עולה בקנה אחד עם התרבות הארגונית החדשה שאנו מאמצים בחברתנו, בה המפתחים והתשתיות עובדים ביחד (DevOps).

פיתוח יישומים חכמים (AI)
אינטליגנציה מלכותית ומכונות לומדות עכשיו בהישג ידינו בעזרת שירותי הענן של Amazon או של Google ואחרים. ניתן לממש מכונות לומדות (ML) בקלות רבה ולקבל תוצאות תוך זמן קצר, במיוחד בענן של Google. אנחנו כבר רואים את הפוטנציאל עבור לקוחותינו, נערכים בהתאם בתחומים שונים כמו מימוש צ'טים (Bots) אשר ישפרו את המודל העסקי שלנו ויאפשרו לגולשים שלנו לנווט באתר בקלות רבה, זיהוי תוכן לא נאות בתגובות גולשים למאמרים שלקוחותינו מפרסמים או סינון תמונות לא נאותות, תרגום מאמרים משפה לשפה בצורה נוחה ומהירה יותר. השמיים הם הגבול, לפחות ענני המחשוב.

ומה עוד אנחנו עושים?
כמובן שאנחנו לא מזניחים נושאים כמו בדיקות תוכנה ובקרת איכות קפדנית, כלי פיתוח שונים וכלי אופטימיזציה. אנחנו משקיעים המון בהפיכת האתרים הישנים שלנו ליותר נגישים לכלל האוכלוסייה ובכתיבה נכונה מלכתחילה של האתרים החדשים. מה לגבי טכנולוגיות אחרות? המלך של האינטרנט, שפת PHP וסביבת הפיתוח Lavarel, כבודם במקומם ואם הם מתאימים למקום מסוים או שיש מפתח שכבר מכיר אז זה מבורך. מה לגבי מיקרוסופט? בישראל יש מתכנתי דוט.נט רבים שבאים מבית הספר ומהצבא, אני לא מזלזל חלילה ואני אפילו אסיר תודה למיקרוסופט על טכנולוגיות קוד פתוח כמו העורך Visual Studio Code ושפת התכנות TypeScript שמשדרגת את סטנדרט הפיתוח כאשר הקוד הסופי מומר (transpiled) חזרה לקוד פשוט.

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

{{footerStrings.span1}} {{footerStrings.span2}} {{footerStrings.span3}}
{{footerStrings.btn}}