האם ״קוד נקי״ הוא לא רלוונטי?

לאחרונה היה לי תרגיל בית כחלק מתהליך ראיונות.

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

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

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

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

מה דעתכם על הנושא הזה?
 

vinney

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

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

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

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

user32

Well-known member
מנהל
אני אוהב להשאיר חופש בסגנון כתיבה. בעיניי זה כמו חופש אמנותי של משורר :LOL: למעט דברים מוגזמים כמו פונקציות ארוכות מדי, שכפול קוד וכו'.
במקומות שיש קונבנציות יותר קשוחות אז מיישרים קו בהתאם למה שנקבע. אין שום סיבה להתייחס לזה בראיון עבודה. זו דעתי.
הדבר היחיד שמפריע לי הוא שמות לא קריאים. אצלינו בעבודה עובד קיבל לכתוב פיצ'ר קטן והחליט לקרוא לקלאס בשם המאוד משמעותי DataManager כששאלתי אותו הוא אמר שזה בגלל שהקוד "מנהל נתונים" :-P:.
לגבי בדיקת קלט: אני לא טורח להתעסק עם זה בראיונות. גם בעבודה לא בכל מקרה צריך לבדוק קלט ויש הרבה מקרים שיותר נוח לאפשר לשגיאה להזרק במידה והקלט לא תקין.
ולגבי המקרה שלך: סגנון קוד הוא מפלטם של החלשים. כשאין מספיק יכולות לדון בדברים מהותיים אז עוברים לחפש שורות רווח מיותרות וחלוקה לפונקציות.
 
למעלה