Browse by Tags
All Tags »
Don'ts (
RSS)
לכל ת'רד שרץ תחת מערכת ההפעלה יש עדיפות, שיכולה להקבע על ידי.. כל אחד. אלה יכולים להיות אתם, המפתחים, שדואגים להעניק עדיפות מיוחדת לת'רד שיצרת ם, או שאולי זה יכול גם להיות משתמש שובב, שקם בבוקר והחליט לפתוח את ה-Task Manager ולהכניס תהליך שלם לעדיפות Realtime (למעשה, לקבוע את ה-Priority Class של התהליך, שבתורו משפיע על העדיפות שכל ת'רד באותו תהליך מ קבל). בתיאוריה, כיול ומענק חכם של עדיפויות יכול להביא לשיפור בתגובתיות ובביצועים של המערכת. אולם, במציאות.. סביר להניח שלא רק שהמשחקים האלה...
כשמתכנתים מתחיל להתעצל, דברים רעים מתחילים לקרות. בהתחלה כותבים איזה Anoynmous Method , אחר כך מזדרזים ומשרבטים Extension Method ... ובעיקר, הופכים את הקוד לפחות קריא ונוח לתחזוקה. אחד ה-"Horror'ים" שכדאי להמנע ממנו, הוא השימוש בפונקציות "הנוחיות" השונות שמספקת לנו מחלקה Array. אני מתכוון לכל הפונקציות שמקבלות מצביע לפונקצית עזר כלשהו, שמופעלת על כל איברי המערך. למשל Find, ForEach, TrueForAll... וכדומה. במבט מהיר, הפונקציות האלה יכולות להראות נוחות ושימושיות. אחרי הכל, חסכנו...
לפני כמה פוסטים הבנו מה המשמעות של אופרטור ההשוואה (==) כשנעשה בו שימוש בקונטקסט של Reference Types. למעשה הגענו למסקנה שבמימוש הבסיס הוא למעשה עונה לנו על השאלה "האם 2 הרפרנסים שיש לי מצביעים לאותו אובייקט?", כלומר יש לנו כאן השוואה של כתובות בזכרון. אם הן זהות, קיבלנו true; אחרת, false. אבל רק רגע, בנקודה הזאת אנחנו נזכרים לרגע בפונקציה ReferenceEquals שנמצאת תחת מחלקת הבסיס Object. כמו שמשתמע מהשם, גם התפקיד שלה הוא לענות בדיוק על אותה השאלה. אז אם 2 הדרכים הללו למעשה "עושות אותו...
ברגע שאתם כותבים תוכנית שיתכן ושוק היעד שלה (בהווה או בעתיד) ימצא גם אל מחוץ מדינתנו הקטנה, פרט קטן וחשוב מאוד הוא טיפול בהבדלים בין Culture'ים שונים. גם במידה ואתם מחליטים שכל ממשק התוכנית יכתב באנגלית, ללא כל אזכור לשפה המקומית - עדיין אפשר ליפול . המקום הכי רגיש להבדלים ב Culture הוא לא אחר מאשר קבצי הקונפיגורציה. נניח והתוכנית שלכם משתמשת בכל מיני פרמטרים שנשמרים בקבצי קונפיגורציה חיצוניים (XML'ים למשל). ברגע שהכנסתם לתוכם מידע ששונה מה מספר שלם - אתם בסכנה. הכי ברורים הם פורמטי שמירת...