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

yos

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

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

שני הכובעים של מפתח הפרונט

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

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

איש המדע ואיש הרוח

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

אנחנו גם עובדים מול אנשים שונים – ה-UI עובד מול המעצב ואיש ה-UX, בעוד שאיש הלוגיקה עובד מול מפתחי צד השרת ו-APIים חיצוניים (ופנימיים).

וכמובן, לכל כובע יש טכנולוגיות שונות (בסדר אקראי):

UI לוגיקה
  • SASS/LESS
  • CSS3
  • Bootstrap
  • Photoshop
  • יעילות CSS
  • HTML סמנטי
  • MVC
  • Git
  • Design patterns
  • Events
  • Memory management
  • Workers

איך עושים את זה?

אם יש כלי אחד שפתח לי את העיניים שזה אפשרי להפריד בין ה-UI ללוגיקה, זה MVC. במקרה שלי, AngularJS. ה-UI נשאר ב-HTML וה-CSS, הלוגיקה במודולים מסודרים בקוד. יש הפרדה מאוד בוטה בין העיצוב לנתונים. נקודת המפגש היחידה היא ביצירה של מודולי ממשק מורכבים יותר, שדורשים ידע והבנה רחבים בשני התחומים. אלא שאם בונים את הדברים נכון, מספיק לבנות פעם אחת מודול חכם ולהשתמש בו שוב ושוב.

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

למה זה משתלם

אוקיי, אז זה כנראה אפשרי טכנית להפריד את שני הכובעים וכנראה שיש (או יהיה בקרוב) המון עומס על מפתח הפרונט. אבל למה לבעל חברה או מנהל מחלקה להעסיק בן-אדם נוסף, אם הוא יכול להמשיך לשלם את אותו הדבר למישהו שמבין עניין ועושה את העבודה?

קודם כל, כדי לקצר זמני פיתוח. אני לא מכיר מנהל אחד שיסרב לזה. לא מספיק? זה יקל עליכם למצוא עובדים – במקום לחפש אנשים שיודעים הכל (רשימת דרישות של מפתח פרונט עם נסיון נראית כמו רשימת קניות משוכללת מהסופר, מאיקאה ומבאג, יחד עם עצירה במוסך על הדרך), מחפשים מישהו לתחום מסויים, ובעצם מגדילים באחוז ניכר את הסיכוי למצוא עובד טוב. אפשר לחסוך הוצאות על רשיונות תוכנה וחומרה – איש לוגיקה לא צריך פוטושופ או מסך 30 אינצ' (למרות שיש סבירות גבוהה שלא יתנגד…), איש UI לא צריך מעבד עם ארבע ליבות או פיצה בשמונה בערב.

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

סיכום

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



תגובה אחת לפוסט ”המאחורה של הפרונט“

  1. מאמר מרתק, נהנתי מאוד לקרוא ולראות את השקפת העולם שלך.

לכתוב תגובה

(חובה לפחות לרשום שם!!!)

(...אף אחד לא יראה את זה)

(תפרסם/י את עצמך! שידעו מאיפה את/ה!)