המיסתורין מאחורי system design / architecture interview

hadooper

New member
למעשה, גם כשהלכתי וחפרתי בגוגל

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

יבגניי34

New member
אתה מפספס לגמרי את הכיוון של ראיונות כאילו. אתה *לא* צריך

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

ipv6

Member
הנקודה שלי היא

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

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

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

user32

Well-known member
מנהל
האמת שיש חוק טבע כזה

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

יבגניי34

New member
אם יש דבר שלמדנו בפורום זה שכל אחד יכול ״לדון״ בכל נושא

אני אישית מומחה בדיון בנושאים שאיני מבין בהם דבר - ייתכן שזה סוד ההצלחה שלי בראיונות עבודה.
 

user32

Well-known member
מנהל
לחפרנים יש יתרון בראיונות עבודה

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

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

אולי כדאי שאנשים יעלו כאן שאלות ארכיטקטורה שהם קיבלו וננסה לענות וככה כולם יחכימו, גם בארכיטקטורה וגם באיך לענות על שאלות כאלו.
מכיוון שאני עצמאי אני לא עובר תהליך רגיל של ראיונות אבל לפני חצי שנה היה לי ראיון ושאלו אותי שאלת ארכיטקטורה. זה היה בראיון שידעתי שעברתי אותו עוד לפני שהתחלתי אז הייתי יותר משוחרר.
השאלה הייתה אתה צריך לפתח מערכת של קיצור לינקים כמו bit.ly. מה הארכיטקטורה שלה. האמת היא שלא עניתי הכי טוב אבל עם קצת עזרה מהמראיין הבנתי שהשאלות שאני צריך לשאול זה מה הכמות של הלינקים שאני אמור לתמוך בה (שזה הולך ביחד עם גודל הלינק). מה אורך הלינק שאליו הקיצור מפנה (שזה משפיע על כמות זכרון הנדרשת) מה זמן השליפה הנצרך, האם צריך לשמור סטטיסטיקות על הביקורים.
מהר מאוד זה נהיה משהו שאי אפשר להחזיק במחשב אחד ואז צריך לעשות פה מערכת מבוזרת והוא רצה לראות שאני מבין איך עושים את זה. האמת היא שבשלב של המערכת המבוזרת אמרתי לו שאני אעבור על כל רשימת ה-In Memory DB ואנסה להבין האם יש מישהו שנותן לי את מה שאני צריך ולא אלך לממש משהו כזה רק אם אני אראה שאין משהו שמספיק טוב לי כמוצר מדף.
 

יבגניי34

New member
בזכותך מצאתי באג נוראי ב bit.ly - מרוב עצלות לנפק סרטיפיקט

[תיקון: הם כן תומכים ב https, הבאג הוא שאין שימור פרוטוקול בלינק המוצג לקליינט]

לשרת nginx שלהם הם מגישים הכל ב http כולל basic auth url a-la https://me:p[email protected]">[email protected]

די מפליא בהתחשב בכך שזה לוקח 5 דק׳ עם LetsEncrypt וזה חינם...

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

bismark1

New member
הטיפ היחיד שאני יכול לתת

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

user32

Well-known member
מנהל
שזה מדמה מצב אמיתי אגב

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