הקדמה בפוסט הקודם שלי בסדרת "טעויות של מפתחים" הסברתי את ההבדל בין הConditionalAttribute לבין #IF. את הפוסט כתבתי בעקבות בעיה שנתקלתי בה באחד הצוותים בארגון. את הפוסט הנוכחי אני כותב גם כן אחרי ביצוע מספר Code Reviews לצוותים שונים, ובעיות נפוצות שנתקלתי בהן. את הבעיות שבחרתי להעלות כאן אני מבסס על כתבה שנכתבה לפני כשנתיים בMSDN Magazine על נושא הביצועים בBCL . לפי ההודעות כאן בבלוגים, נראה כאילו עיקר העבודה של מפתחים בימנו זה התממשקות למסדי נתונים באמצעות LINQ או עיצוב אפליקציות תלת-מימדיות...
היום במסגרת ייעוץ שנתתי לאחד הצוותים אצלנו, גיליתי טעות שהייתה יכולה לעלות לנו הרבה מאוד. מצאתי לנכון לשתף גם אתכם בנסיון הזה - היות ושמתי לב שאף אחד מצוות הפיתוח לא ממש היה מודע למצב. אלו מאיתנו שבאו מעידן הC, זוכרים בוודאי את הנוחות שבשימוש בDirectives.. כך לדוגמא, יכולנו לייצר מספר גרסאות ע"י שינוי הדגלים איתם קימפלנו את האפליקציה. התכונה הזו נשמרה גם בעידן ה.NET. חלק מהDirectives שהכרנו הוסרו/שונו, ואחרים התווספו. החסרון הגדול בשימוש ב#IFים בתוך האפליקציה, היה הבלאגן שזה יצר. הקוד פתאום...