כותב: משה שחם, תאריך: 15.04.15

אנגולר 2- לקפוץ למים ולהתחיל לפתח

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

 

אנגולר 1- הפיל שבחדר

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

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

 

אנגולר 2, האביר על הסוס הלבן

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

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

 

אנגולר 2 כאן כדי להישאר

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

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

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

כל מי שצבר ניסיון באנגולר 1, ירגיש מיד בבית באנגולר 2.

השארת תגובה