האם Front End הוא למעשה "הקבצה ב'" של הפיתוח?

סימבה8881

New member
האם Front End הוא למעשה "הקבצה ב'" של הפיתוח?

הי חברים,

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

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

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

BravoMan

Active member
אני חושב שקיבלת רושם מוטעה.

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

סימבה8881

New member
האם הם בוגרי יחידות טכנולוגיות?

שמתי בפוסט בוגרי יחידות טכנולוגיות ובוגרי תארים תחת אותה מטרייה
 

BravoMan

Active member
גם לא.

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

יבגניי34

New member
זה בהחלט היה כך בעבר, ויש ״דינוזאורים״ שחושבים שזה עדיין כך

המוניטין הזה עדיין קיים, אך הבסיס העובדתי לו, הולך ונשמט.
 

סימבה8881

New member
מצד שני, גם היום עיקר הלוגיקה היא בצד השרת

מדוע בעבר זה היה כך?
&nbsp
 

user32

Well-known member
מנהל
זה אכן היה כך ובמידה מסויימת הFE עדיין סובל ממיתוג בעייתי

גם בקרב הצעירים יש הרבה את הדרישה הזאת בראיונות לבקש לעבוד בצד השרת שנתפס יוקרתי יותר.
בעבר זה היה יותר מוצדק כי המחשבים היו חלשים וסמארטפונים בכלל לא היו קיימים. הדפדפנים שימשו רק כקליינט "טיפש" מה שנקרא Thin Client בעיקר להצגת HTML וקצת סקריפטים כדי לשפר את הUI.
הדברים הללו השתנו עם השנים. הלוגיקה היא לא בהכרח בצד השרת היום. זה מאוד תלוי במוצר וגם תלוי למה אתה קורא "לוגיקה". לדעתי היום נוצרה שכבת אלגוריתמיקה חדשה: כל נושא הAI/ML והוא עכשיו הצד היוקרתי של הפיתוח. שאר הקוד מתחלק בין קליינט לסרבר כשזה לא ממש משנה מבחינת הסיבוכיות, כל אחד והאתגר שלו אבל החלקים הבאמת מעניינים נמצאים באלגוריתמים.
 

סימבה8881

New member
נראה לי שתסכים איתי ש AI/ML קרוב יותר לצד השרת

מאשר לצד הקליינט
&nbsp
 

user32

Well-known member
מנהל
לא תמיד

מכיר כמה מקרים שעושים עיבוד קול/תמונה על סמארטפון.
גם בווב, יש לא מעט אלגוריתמיקה בקליינט. משחקי מחשב למשל, 3D, מנועים פיזיקליים ועוד. זה אמנם לא AI/ML אבל כן אלגוריתמיקה שדורשת יותר מאשר סתם קריאה לפונקציות API.
כמעט בכל המקרים שראיתי שיש ML הוא נכתב כמודול נפרד מהקוד, הרבה פעמים בשפה אחרת מהאפליקציה ורץ על מכונה משלה. אמנם זה יושב על שרת ולא על קליינט אבל הקשר למתכנתי הצד שרת הוא רופף ביותר ומסתכם בקריאה לאלגוריתם וקבלת תשובה בחזרה.

שאר ה"לוגיקה" כמו קריאות לDB, לוגיקה עסקית, וכו' נעשית בסיבוכיות דומה הן בשרת והן בלקוח. כל מקום והבעיות שלו.
 

סימבה8881

New member
עוד משהו ששמתי לב

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

סימבה8881

New member
מה שאני לא מבין זה

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

user32

Well-known member
מנהל
זה לא בדיוק ככה

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

סימבה8881

New member
אוטומציה זה לא בהכרח בצד השרת

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

choo

Active member
זה עניין של "סיבות הסטוריות" בשילוב עם סיבות אוביקטיביות

&nbsp
FE התחיל בתור "נישה שולית" של "אנחנו כותבים תוכנה, וצריך שיהיה לך ממשק, ו"מתכנתים אמיתיים" לא מתענינים בלכתוב ממשקים, ו/או לא טובים בזה". כשתחום ה-web התחייל להתפוצץ, אי אפשר היה למצוא מספיק אנשים "עם תואר" שרוצים לעבוד בתחום - אז הדרישות הפורמליות נעלמו - העיקר שיהיה למועמד "נסיון" (עבור הגדרה כלשהי של נסיון - גם כמה חודשים בבית הספיקו לזה). בפועל, מאחר ומהנדסי תוכנה לא לומדים לרוב לפתח ממשקי משתמש, ודווקא אנשים שמגיעים מרקע "הומני" נוטים יותר לחשוב על המשתמש, ומנקודת הראות של המשתמש, חוסר הדרישה לתואר השתרשה. גם כיום לא לומדים לפתח ממשקי משתמש באקדמיה, והדרך ללמוד את זה היא "לבד" או דרך קורסים מקצועיים. למעט מאוד מפתחים עם תואר רלוונטי יש "ראיית משתמש" (מחוסר הרגל, חוסר עניין, חוסר אמפתיה חוסר זמן או חוסר סבלנות - בממשק משתמש מוצלח יש הרבה יותר "עבודת גימור" מאשר בתוכנות "בלתי נראות" למשתמש).
 

vinney

Well-known member
בימינו עיצוב ממשק משתמש זאת מומחיות בפני עצמה

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

choo

Active member
ועדיין, מפתח FE ללא ראיית צרכי המשתמש, יכניס תקלות

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

סימבה8881

New member
אני חושב שאתה מערבב בין UX לבין FE

כמו שויני כתב, UX זאת מומחיות בפני עצמה. אנשי UX כמעט אף פעם לא מגיעים מרקע תכנותי. מי שקובע איך האפליקציה תיראה, איפה ימוקמו הכפתורים, מה יהיו הצבעים, איך ייראו התפריטים וכו' אלה אנשי UX ופרודקט. מפתחי ה FE צריכים לדאוג שמבחינה טכנולוגית הדברים האלה קורים. סה טו. לכן, מפתח FE יכול להיות בלי שום הבנה על איך אפליקציה צריכה להיראות. הוא לא נמדד על זה. גם בראיונות עבודה לתפקידי FE לא שואלים לרוב שאלות עיצוביות, אלא מתעסקים בקוד (שרץ בדפדפן). גם אם יש שאלות על css, זה מתבטא בכך שמראים למפתח תוצאה של איך המסך אמור להיראות ומבקשים ממנו לכתוב קוד css-י שיממש את זה.
 

vinney

Well-known member
זה מסביר למה האתרים בישראל נראים כמו הצרות שלי...

אולי לפני 30 שנה כל script kiddie יכול היה להרים אתר, אבל עכשיו זה כבר מזמן לא כך.
 
למעלה