רשומות

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

כתבתי בדיקת אינטגרציה בין לוגיקה חדשה שכתבתי לבין מחלקה קיימת בשם DBLoader אשר אחראית על טעינה מ DB ובנייה של מבנה נתונים. DBLoader { public ProjectTree Load(ObjectIdentifier projectId,bool loadSubProjects); } DBLoader נכתב ונבדק לפני הרבה זמן. הלוגיקה החדשה נבדקה ע"י  בדיקות יחידה. לכן מאוד התפלאתי כשהבדיקה נכשלה. גיליתי ע"י דיבוג ש DBLoader מחזיר לי תוצאה לא נכונה.  אבל DBLoader כבר כתוב ובדוק הרבה זמן . מסתבר שלא היו בדיקות של פרויקטים שמכילים תתי פרויקטים ולכן loadSubProjects  בכלל לא השפיע על ה flow של DBLoader בבדיקות. בדיקת האינטגרציה שכתבתי הייתה הלקוח הראשון בו loadSubProjects כן היה חלק מה flow. אז כתבתי בדיקה עם אותו תרחיש עבור DBLoader. הבדיקה נכשלה, פתרתי את הבאג, שתי הבדיקות עברו. הכל סבבה 😎 מאחר והבנתי ש DBLoader לא נבדק עם תרחישים רלוונטיים עבור הפרמטר loadSubProjects החלטתי לעבות את הבדיקות של  DBLoader למרות שבדיקת האינטגרציה שלי כבר עברה. חיפשתי איזה בדיקות אני יכולה להוסיף , מאחר והקוד היה כבר כתוב ניסיתי להבין איפה הקוד יכול להישבר מקריא

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 ע"י ספירת כמות התלויות היוצאות ממחלקה מסוימת  למחלקות אחרות . יש לספור את כ

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

שלום לכולם, קוראים לי שני פדידה. אני מפתחת תוכנה  ,מאוד אוהבת את העבודה שלי ואת תחום התוכנה.  מתעניינת במגוון רחב של נושאים : UX , קוד נקי , אלגוריתמים  , עיבוד תמונה, DB  , perfromance ועוד. אני עובדת כרגע בחברת Clarizen ומפתחת רכיב מרכזי מחדש. העבודה שלי היא בעיקר  באזור ה Backend ,כתיבה מחדש  עם דגש חזק על קוד נקי והנדסת תוכנה.   בשנה וחצי האחרונות אני עובדת ב TDD ומאוד אוהבת את הגישה הזו. אני כותבת בשפת c#. בבלוג אני מתכוונת לכתוב על דברים שמעסיקים אותי ביום יום בעבודה. בעיקר בכיוונים של clean code, TDD והנדסת תוכנה. מקווה שאצליח לכתוב דברים מעניינים ,אשמח תמיד לשמוע רעיונות, ביקורות וסתם לפתח שיחות :-) אם למישהו יש רעיון לשם מעניין לבלוג אשמח לשמוע. תודה לאביעד נטוביץ' על הרעיון והעידוד :-) יאללה   יצאתי לדרך