סביבת העבודה של דוטנט


סביבת העבודה

מה זה בכלל דוט נט

כן נו מה זה

פעם ישבתם והרהרתם עם עצמכם, מה זה בכלל דוטנט? ולמה אני שומע את השם הזה כל הזמן? אני בדיוק הייתי במקום שלכם, אז אני שואל אותי שואל אתכם כדי שתבינו בעצמכם!



אז יאללה תפעילו קצת את הראש ותראו את הסרטון הבא ועל הדרך גם נבין מה ההבדל ביןJIT לAOT.

לצפייה

אוקיי אז אסכם, Dot Net היא בעצם שכבה היושבת בין המעבד לבין הקוד שלכם, וכשהקוד שלכם נבנה בסי שארפ, הוא ראשית מתקמפל לשפת הביניים הזו ששמה Common Intermediate Language או בקיצורCIL. שממנה דוטנט יודע להעביר את הקוד למעבד בצורה מותאמת אליו, בתצורה של JIT. האומרת,

  • JIT - הקוד מתקמפל לשפת מכונה רק ברגע שצריך אותו. כשצריך אותו שוב, הקוד שקומפל בפעם הראשונה משומש.
  • AOT - כל הקוד מתקמפל מראש לשפת מכונה, אך אל מול ארכיטקטורת מעבד ומערכת הפעלה ספציפיים. בגלל שהקימפול מראש מהיר יותר מJIT בזמן הריצה הראשוני.

אבל יש לי עוד שאלות!

מה זה בכלל Dot Net Framework ומה אומר Core, מה אלו כל הגרסאות האלו!?
אוקיי, אוקיי, לא צריך לצעוק! עכשיו נבין.

לצפייה

עכשיו אפשר להרים צ'ייסר, אתם יודעים מה זה דוטנט.

בוחרים סוס

הסוס המומלץ

כשנפתח בסי שארפ יש לנו שתי אופציות מרכזיות, הישנה והטובה היא Visual Studio אותה אתם בטח מכירים משיעורי מדעי המחשב בתיכון, ואת הילד החדש בשכונה, Rider. מה ההבדל ביניהם?
לפני שנים רבות ב1997 יצא הסבא של כולנו, Visual Studio. והוא נחמד והכל אל תבינו אותי לא נכון, אבל הוא לא פנומנלי, מה שהפך אותו לפנומנלי היא התוספת Resharper שיצאה ב2004 וכוללת הצעות לתיקון שגיאות כתיב, סל הערות רחב המוודא שמירה על קונבנציות חשובות, וסל פעולות מתקדמות מאוד שימושי, שאני כבר לא מסוגל לתכנת בלעדיהן.
ב2017 האנשים מאחורי רישרפר, שכולכם בטח מכירים בשם המוכר יותר שלהם, JetBrains, חשבו, "אם התוספת שלנו כזו טובה, למה שלא נעשה סביבה IDE שלם?" וזה בדיוק מה שהם עשו. הם הוציאו את רידר שהוא בעצם הטוב משני העולמות ומריץ את כל הפונקציות של Resharper עליו מהר יותר מVisual Studio. הוא מהיר יותר והרבה יותר רספונסיבי, והכי חשוב, מאז אוקטובר 2024 הוא חינמי! ובקיצור, אמליץ עליו.

דיבוגים

אני בטוח שכולכם יודעים איך לדבג, אבל יש הרבה כלים מתקדמים בדיבוג שיכולים לסייע לכם מאוד, שלא מלמדים בדרך כלל.

  • Skip To Here
  • Setting Values In The Debuger
  • Breakpoints Conditions
  • Immediate Window

כל הכלים האלו מוצגים בסרטון הבא, אתם יכולים לצפות בו מדקה 23 בה החומר המתקדם מתחיל. אך במידה ואתם צריכים רענון דיבוג, מומלץ להתחיל מההתחלה.

לצפייה


טאסקים וטרדים

משהו שתמיד קשה לדבג הוא תכנות מקבילי. קיימים מספר כלים שיעזרו לנו, הראשון הוא Tasks View בעזרתו נוכל לראות את כל הטאסקים הפעילים כעת ומה מצבם - לינק.
הכלי שני הוא Parallel Stacks . הוא מראה את הטרדים וסדר הקריאות שלהם בצורה של דיאגרמה. נראה סרטון היציג זאת. אמנם הסרטון הוא על ויזואל, אך הפיצר זמין גם בריידר.

לצפייה


דליפת זיכרון

מה איך הזיכרון יצא לי מהמחשב? זכרון זה לא מוצק בכלל? כעת נלמד.

לצפייה

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



החדים מבניכם יגידו "רגע, אני משתמש בסי שארפ לא בC++. הGarbage Collector מוחק דברים מהזכרון כשחדלתי להשתמש בהם, למה שדליפה תקרה לי?" ולאלו שלא יגידו זאת, או סתם סקרנים ורוצים סקירה מעמיקה יותר, למדו עליו כעת.

לצפייה

למרות שהGarbage Collector מוחק אובייקטים שכבר אין אליהם רפרנס, עדיין אתם עלולים להיתקל בדליפת זיכרון אם אובייקטים שכבר לא רלוונטיים מרופרנסים ללא סיבה. אתן לכם מקרה מהחיים האמיתיים שלי, אני פעם השתמשתי בספרייה על מנת לתשאל בHTTP אתר כלשהו. בלי ידיעתי, הספרייה אוטומטית שמרה Cache של התשובות לכל הבקשות שלי. בעוד שהבקשות שלי היו שונות. כל הזמן לא הבנתי למה לעזזל האפליקצייה שלי מגיעה לשימוש בשני ג'יגה ראם, וקורסת. בשביל לתקן את הבעיה הייתי צריך לשכתב חלק מהספרייה הזו שלא אנקוב בשמה (HotChocolate). אבל השאלה החשובה באמת היא, כיצד עליתי על זה שהיא עושה זאת? על ידי שימוש בכלי לבניית פרופיל זכרון.

לצפייה

אחד הכלים, הוא באמת DotMemory שכבר בנוי בתוך ריידר, וגם בויזואל סטודיו יש כלי דומה.
כשעליתי על "דליפת הזכרון" שלי ראיתי שיש אובייקט ששוקל מלא ומכיל מילון בסיפריית הHotChocolate. נכנסתי לקוד מהקור, ראיתי את הקאש, ואחרי שמחקתי את האופצייה הזו הזכרון שהאפליקציה השתמשה בה ירד לסביבות ה300 MB בלבד.




אין תגובות:

הוסף רשומת תגובה