ביקוש גובר ל-Full Stack Development, האם שווה להשקיע בזה?

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

shutterstock developer

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

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

תיאור שכזה נשמע מופרך מיסודו כאשר מדובר במערכות גדולות כגון Enterprise ו-IT, שכן הידע הנדרש בפיתוח מודולים מתקדמים, בעיקר בצד שרת ותשתיות, הינו רחב דיו כדי לספק משרות רבות וקשה לראות כיצד מפתח, אפילו “עילוי”, יכול להכיר את הכל ברמה סבירה.

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

שירותי ענן מייתרים את נושא התשתיות וככל שהעננים הופכים יותר ויותר ל-Platform as a Service (PaaS) – השימוש בהם, במקום בשרתי אפליקציות, הופך לאטרקטיבי (גם תחרות, רמת שירות ואמינות גבוהה ומחירים נמוכים מסייעים בכך).

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

לפני שנחקור את השינויים המהווים את המצע ל-Full Stack Web Development ונפרט את הטכנולוגיות והפלטפורמות הרלוונטיות ביותר, נסכם שהמקצוע אינו מופרך כלל ועיקר – להיפך, נכון לו עתיד גדול שנשען למעשה על שתי תופעות עיקריות:

1. זמינותם של שירותים וכלים לפיתוח מהיר וקל הן בצד הלקוח והן בצד השרת.

2. ריבוי של מודולים “קטנים” יחסית, בעיקר לטובת עולם האינטרנט ההולך ומתרחב.

הבה נצלול אל נבכי תופעות אלו ונרד לעומקן.

“זמינותם של שירותים וכלים לפיתוח מהיר וקל הן בצד הלקוח והן בצד השרת”

מהם אותם שינויים המתרחשים בימים אלו? ובכן הנה רשימה חלקית של ה”פרות הקדושות” אשר נשחטו לאחרונה וגם של ה”עיזים” אשר הגיחו לעולם מהדלת האחורית:

א. השגת ביצועים גבוהים ע”י שימוש ב-Clustered Domains? כנראה שכבר לא.

היום Cloud Computing מספק עבורנו יכולות משוכללות הרבה יותר בכל הקשור לזמינות, אבטחה, Parallel Programming, אלסטיות ואינטגרציה. אנא הוסיפו למשוואה את מרכיב התמחור – כשהדומיין מוקם על ידי הארגון כל העלויות חלות עליו ללא קשר במידת השימוש בתשתיות אלו בפועל. למשל ארגון המעוניין לעמוד בעומסי הצרכנים בעת Black-Friday יאלץ לרכוש את כל החומרה והזיכרון הדרושים ליום זה – למרות שמדובר ביום אחד בשנה… ביתר הימים העומסים אפילו לא מתקרבים לכמויות השיא, וניתן לקבוע שבמרבית הזמן לא מתקבלת תפוקה מקסימלית… ועדיין עולה הרבה כסף…

ב. עבודה עם Relational DBs? לא בהכרח, ישנו מעבר ל-NoSQL.

כמויות המידע והאופי שלו אינן מאפשרות לדבוק באופן העבודה המסורתי בכל הקשור לאחסון מידע. אם בעבר רוב רובו של ה-Data היה Structured (וזאת מכיוון שהמערכות שנבנו הגבילו את צורת המידע ואילצו את המשתמשים לפעול בהתאם), כיום המשתמש הינו יצרן מידע בעצמו והוא לא יסכים ש”מישהו” יפרמט את המידע או יאלץ אותו להיכנס לתבניות. מאז עידן Web 2 הגולשים הם אלו שתורמים את רוב המידע הקיים ברשת. פוסטים, Tags, וידאו, תמונות וקול… טבלאות? הצחקתם אותם. NoSQL הינו שם כולל לסוגים שונים של מסדי נתונים אשר שומרים את המידע בקבצים (ולא בטבלאות שנשמרות בקבצים כמו Relational DBs). לפיכך, נושא האחסון הפך להיות ברור וקל יותר לשימוש עבור מפתחי OOP. אצלם למעשה כל נושא ה-SQL לא באמת “התיישב” עם מבני הנתונים האובייקטליים איתם הם רגילים לעבוד (כיצד מבצעים Polymorphism  בטבלאות?). עכשיו ישנם פתרונות המאפשרים לדלג על ההמרה ל-,SQL שלא תמיד באמת עושה חסד עם מבני הנתונים המגיעים מתוכנות OO, ואפילו לשפר ביצועים כתוצאה מכך. מדוע להפוך אובייקט ל-SQL INSERT Statement אם ניתן לשמור את האובייקט כפי שהוא בקבצים?

ג. שימוש ישיר ב-HTTP לטובת אינטגרציה

נכון שאנחנו עושים את זה, ואפילו די טוב מאז הגיח XML לאוויר העולם, וזה קרה לפני למעלה מעשור. אבל בכל זאת, כיום לאחר שנים של עבודה עם XML, חלחלה לתודעה העובדה המצערת שאמנם הרעיון באינטגרציה באמצעות self descriptive text הוא לא פחות ממצויין לעולם הפיתוח באינטרנט אבל XML היא כנראה לא הצורה האופטימלית לישם אותו. XML מצריך הפעלת Parsers מאוד לא יעילים בצד השרת ולעיתים גם בצד הלקוח. כמו כן, כולם יסכימו ש-XML אינו האמצעי ה”רזה” ביותר בעולם…אולי להיפך… אנחנו “מבזבזים” המון Characters על שמות תגים ועל התגים עצמם. המידע הגולמי ב-XML עלול להוות אחוזים בודדים ביחס לתגים שעוטפים אותו. בעידן של Big-Data הרצון הוא לשפר את זמני התגובה ולצמצם את כמות התעבורה. שניהם עולים כסף. XML מסתבר “דואג” לשניהם: זמן תגובה ארוך יחסית והמון כסף שמתבזבז על רוחב פס….מהי האלטרנטיבה? פשוט מאוד – JSON.  כבר נתמך היטב ונחשב לידע בסיסי, לאו דווקא בקרב מפתחי Jscript.

ד. Jscript מתפשטת

ידוע לכל שיכולותיה של Jscript בצד הלקוח הרחיקו לכת. כיום ניתן לייצר Views מושלם, ואפילו טוב יותר ממסכי Desktop, בדפדפנים. ישנן אינספור ספריות על טהרת ה-Jscript המתרכזות בהצגה דינמיות, responsive UI, חיבור סינכרוני וא-סינכרוני עם מודולים בשרת (מתבסס על AJAX), רכיבי UI מורכבים כגון גרפים ועוד. הכל מאוד “מבושל” ומתוחזק, משתפר ומתקדם בקצב מהיר ביותר (Angular.JS 2…).  אבל גם זה מתרחש כבר שנים ולא מהיום… אז מה קרה? מה בכל זאת השתנה כאן? ובכן, בשנים האחרונות Jscript “נעה” לכיוון השרת. כיום ניתן לייצר מודולי Web קטנים ונחמדים (העובדים עם Relational DB וגם עם NoSQL DB על ענן או בדומיין פנים ארגוני) ב-Jscript. טכנולוגיות כמו Node.js ו-Backbone.js בהחלט מאפשרות זאת. אמנם Jscript בצד שרת צריכה עדיין להשתפר ולהתייצב – אבל אם תבדקו כמה מאמצים ופעילויות נעשים בכיוון זה תווכחו לדעת שזה עניין של זמן, ולא הרבה זמן… ליתר ה-Server-side scripting frameworks כמו Ruby-on-Rails יש סיבה להתחיל לדאוג – הגיע שחקן חדש לקבוצה והוא מאוד מאוד פופולארי. נגזרת משמעותית מאוד של עובדה זו היא שמפתחי Jscript המתמחים באופן מסורתי ב-client, יכולים פתאום לייצר גם מודולים שיענו ל-client שבנו מצד ה-Server – ואפילו באותה שפה.

“ריבוי של מודולים ‘קטנים’ יחסית, בעיקר לטובת עולם האינטרנט ההולך ומתרחב”

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

א. מצריכים השקעה משמעותית ביותר ב-UI, UX.

ב. מאפשרים לחשוף לוגיקה עסקית מורכבת ביותר (למשל אתר של בנק או אתרי קניות מקוונות).

בשנים האחרונות, עם מבט חזק קדימה, אנו עומדים להיחשף לעידן חדש ומרתק של לקוחות אינטרנט. כיום הוא נקרא IoT (Internet of Things) – הגדרה די כללית וערטילאית. אם נתמקד במילה “things” נמצא שמדובר בכרטיסים חכמים, ננו-טכנולוגיה, סנסורים, Chips ואפילו רקמות חיות (בשנת 2009 הצליחו לייצר תקשורת בין מוח למוח באמצעות האינטרנט – BCI – Brain Communication Interface). כאשר עוסקים בלקוחות אלה הפוקוס הינו בדר”כ עיבוד מידע ולא הצגתו. עובדה זו לבדה די בה כדי לקצר את משך הפיתוח בצד לקוח באופן משמעותי. הוסיפו לה את העובדה שה-Business logic מאוד ממוקד ולא מורכב עבור לקוחות אלה והנה כבר ניתן לדמיין כיצד מפתח יחיד יבצע את המשימה במלואה!

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

מפתחים בעולם הלקוח יכולים לבצע את השידרוג הקטן יחסית ולעלות עם Jscript לשרת. ידע בטכנולוגיות CGI אחרות (PHP, Python ועוד) בהחלט לא יזיק. וכך לבנות את המודולים אשר “עונים” ללקוחות שבנו. חשוב לציין שהעננים “מתכוננים” לנדידה זו וכבר כיום מספקים יכולות מדהימות בפיתוח Jscript בענן.

למרבית המודולים האינטרנטיים המודרניים ניתן יהיה להקצות מספר מצומצם של מפתחים אשר יקימו את הכל .End-to-End מפתחים כאלה יחסכו לארגון הרבה מאוד זמן וכסף בחיבור בין מודולים, תקשורת ואינטגרציה של המודולים בשרת עם אלה שבצד הלקוח כיוון שהם יהיו היחידים שמעורבים בפיתוח, ללא צורך בגורמים אחרים. זמן התגובה המהיר לשינויים בלתי פוסקים הינו לחם חוקן של החברות המספקות שירותים באינטרנט. לכן אין פלא שחברות מחפשות Full Stack Developers ודי מתבקש שרובן למעשה מכוונות ל-Full Stack Web Dev.

קרדיט תמונה: developer via shutterstock

 

הכתבה בחסות ג'ון ברייס הדרכה

ג'ון ברייס הדרכה מקיימת גם השנה את DevGeekWeek, , הכנס השנתי המוביל בישראל לקהילת המפתחים. הכנס ייערך במשך 5 ימים וכולל עשרות סמינרים מקצועיים. הכנס מתייחס לחידושים המשמעותיים ביותר המניעים את קהילת המפתחים היום ופונה למפתחים, מעצבים, ארכיטקט תוכנה ומערכות, מנהלי פיתוח, ראשי צוותים, אנשי DevOps, בודקים, מנהלי QA ולכלל המעורבים בתהליך פיתוח האפליקציה.

כתב אורח

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

הגב

20 תגובות על "ביקוש גובר ל-Full Stack Development, האם שווה להשקיע בזה?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
בלהבלה
Guest

מי כותב Jscript? אף אחד לא מתייחס לזה ככה. תכתבו JavaScript.

eyal453
Guest

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

עמית
Guest

צודק, זה פשוט הציק לי במהלך הקריאה בצורה שלא תאמן.
חברים, JScript זה לא JavaScript !

מושיקו
Guest

כבר הרבה זמן לא קראתי כזה ג’יבריש – כדאי לתת לכתוב כתבה כזו למישהו שבאמת מבין על מה הוא מדבר, ולא זורק סתם ביטויים שהוא שמע במסדרון.

אלון
Guest

כתבה ארוכה ולא ברורה!

אורי
Guest

הכתבה לא מדייקת

נחמד שיש עוד ידע מסביב, אבל Full Stack לא באמת קיים.
יש אנשים שטובים יותר בצד השרת ויש כאלה שטובים יותר בצד הלקוח.

שכמובן הם דברים שונים לגמרי!
צד השרת – תשתיות, DB, שרתים וכו’,
צד הלקוח – פיתוח אפלקציות קליינט, עיצוב, גרפיקה, התאמה למכשירים וכו’.

לכל ארגון עדיף לקחת שני כוכבים וכל אחד מומחה בתחום שלו מאשר בינוני בשני התחומים

אחד שהיה שם
Guest

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

youknowitstrue
Guest

חברים, על מה אתם מתלוננים בדיוק?

בא מישהו מג’ון ברייס וכתב מאמר.

ג’ון ברייס.
באמת ציפיתם למשהו ברמה גבוהה יותר?

חי בעננים
Guest

?Whaaaat

אריאל
Guest

Backbone.js בסרבר חחח

מישהו שאכפת לו
Guest
מישהו שאכפת לו

כמה באזזז ווארדס בלי הסברים

ירון
Guest

סוף סוף הבנתי מה זה FULL STACK

גל
Guest

למי שלא מבין

אפשר לכתוב Backbone.js בשרת ולהיעזר בו לניהול נתונים
מצורף לינק

http://www.quora.com/How-do-you-use-Backbone-js-server-side-with-Node-js

גל
Guest

לא מאפשרים פה להעלות את הלינק
חפש בגוגל
How do you use Backbone.js server side with Node.js?

יצחק
Guest

ב”ה

כתבה עניינית תודה,

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

אני
Guest

כתבה גרועה בהחלט

משה
Guest

ניכר שהכותב מברבר בדברים שהוא לא מבין בהם יותר מדי. אם זו רמת המרצים בג׳ון ברייס כיום – אני מאוכזב מהם. בעבר הם היו טובים בהרבה (כאחד שלמד שם).

galgalili
Guest

כל קשר בין הכותב לעינת גלילי מופרך בהחלט

מישו
Guest

מה זה הבולשיט הזה? מישהו הבין משהו או שזה רק אני? JSON זה “שימוש ישיר ב HTTP”? לא קוראים לו במקרה רוני גנד-גלילי?

אני
Guest

כמה שגיאות. כתבה אחת.
להלן כמה דוגמאות:Jscript הינה שפה של מייקרוסופט מעיין אימפלמנטציה של ECMA Script ואמנם דומה ל – JavaScript אך איננה JavaScript ואינה קשורה לכל מה שמתפתח היום.
לומר על JSON שהוא לא בזבזני בתיאור המידע ?? הרי גם הוא כמו XML שומר עבור כל property גם את השם שלו, דווקא בניגוד לדטאבייסים רלציונים.
ויש עוד …

wpDiscuz

תגיות לכתבה: