למדתי לא מזמן שימוש באפשרות יפה ש#C מאפשר לנו.
קודם כל אתחיל בסיפור מקרה:
קורה לא פעם שאני מסתכל על קוד שמישהו כתב בעבר, ובקוד כתובים המון מתודות שהשימוש שלהם נכון רק בזמן debug למשל. (למשל כתיבה ל event log לצורך טסט או דיבוג).
אבל כאשר הקוד רץ בסביבת Production אין לנו צורך במטודות, ואף זה משפיע לרעה (כתיבה לא רצויה ל event log משפיעה על ביצועי הדיסק..)
לכן יש לנו את האפשרות הבאה:
נגדיר בתחילת הדף סמל (במקרה שלנו נקרא לסמל שלנו debug) וכעת בקוד שלנו נוכל לבצע התניות לפעולות אך ורק אם הסמל מוגדר בתחילת הדף. שימו לב שאפשר להגדיר גם על פונקציה שלמה.
ככה למשל לפני ירידה ל production נוכל להסיר את הסמל (ע"י undef), וכעת לא יבוצעו מטודות שלא רצינו שיפעלו בסביבת ה production..
תהנו
קודם כל אתחיל בסיפור מקרה:
קורה לא פעם שאני מסתכל על קוד שמישהו כתב בעבר, ובקוד כתובים המון מתודות שהשימוש שלהם נכון רק בזמן debug למשל. (למשל כתיבה ל event log לצורך טסט או דיבוג).
אבל כאשר הקוד רץ בסביבת Production אין לנו צורך במטודות, ואף זה משפיע לרעה (כתיבה לא רצויה ל event log משפיעה על ביצועי הדיסק..)
לכן יש לנו את האפשרות הבאה:
#define debug
//#undef debug
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace example
{
class Program
{
static void Main(string[] args)
{
#if debug
Console.WriteLine(1);
#else
Console.WriteLine(2);
#endif
ForDebug();
}
[Conditional("debug")]
static void ForDebug()
{
Console.WriteLine("in debug function");
}
}
}
ככה למשל לפני ירידה ל production נוכל להסיר את הסמל (ע"י undef), וכעת לא יבוצעו מטודות שלא רצינו שיפעלו בסביבת ה production..
תהנו



