My Code Review Checklist

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

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

אני מניחה שהרשימה פה מושפעת מסוג העבודה שאני עושה: backend וכתיבה מחדש וגם אולי מהשפה שבה אני כותבת C# .

Scope

כדאי לבחור scope קטן . כדי שיהיה קל לעבור עליו בפגישה אחת (בהנחה שעושים code review ביחד). כלל אצבע שנראה לי הגיוני :עד שבוע עבודה.

כללי

  • לוודא שלא השארתי TODO בקוד  / נקודות פתוחות.
  • שמירה על קונבנציות   - באמצעות כלי אוטומטי.
  • תיעוד החלטות
  • ביצועים: IO ,  מבני נתונים.

קוד נקי

  • שימוש בכלי static code analysis ( לדוגמה sonarQube) ותיקון  ההערות שהוא נותן.
  • הפרדה בין command ל query
  • SOLID
  • בדיקה של coupling ע"י ספירת כמות התלויות היוצאות ממחלקה מסוימת  למחלקות אחרות . יש לספור את כמות התלויות הנמצאות באותו הפרויקט  ואת  כמות התלויות בפרויקטים אחרים. האם נוספה תלות בפרויקט שלא הייתה קודם?

טיפול בשגיאות

כשחושבים על טיפול בשגיאות חושבים בעיקר על הכנה ל production. אני מוצאת שטיפול בשגיאות דווקא בשלב התחלתי של הקידוד יכול לעזור למצוא באגים מאוד מהר.
  •  מהם הערכים התקינים שפונקציה אמורה לקבל. ואיך היא מתמודדת עם ערכים לא תקינים.
    • הכי פשוט לזרוק ArgumentException 
  • לבדוק pre / post conditions עבור מתודות ציבוריות
    • דוגמאות: רשימה לא ריקה, טווח של מספר, מבנה תקין / לא ריק, מחרוזת לא ריקה.
    • לדעתי אין טעם לבדוק NULL ,  בעיקרון מאמינה בגישה של Uncle bob שאומרת שלא מעבירים NULL לפונקציה ו NULL לא חוזר מפונקציה למעט כמה מקרים ספציפיים.
  • אם פונקציה מסוימת נכשלת האם צריכה להכשיל את כל  ה flow?  לדוגמה: שליחת נוטיפקיציה על פעולה  לא אמורה להכשיל את הפעולה עצמה.

הכנה ל Production

  • לוגים
  • perfromance monitoring
  • האם מקרי קצה ש"זנחנו" ב design מתרחשים בפועל - אופציונלי

פוסטים פופולריים מהבלוג הזה

TDD - סיפור ניצחון

פוסט ראשון - פוסט היכרות