התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים
-
לי עדיין אין חדשות של ממש, אבל אני בטוח שיש כאלו שישבו וציפו בכליון עיניים.
באופן כללי נראה לי שכדאי להוריד את הכפפה וכל אחד שגילה משהו באיזה שהוא IDE פופולרי וזה שינה את חייו, אולי להעלות ולשתף את זה כאן.
אתן כמה דוגמאות קטנות ששינו לי את החיים לגמרי והפכו אותי ממפתח מרוט עצבים למאושר עלי אדמות.הידעת?
-
בסביבות פיתוח של מייקרוסופט הדבר מצוי שכאשר נמצאים במקום כלשהו בשורה (ללא בחירה של טקסט) ולוחצים על העתק או גזור, כל השורה מועתקת או נגזרת (זה כולל את SSMS)
-
ברוב סביבות הפיתוח של מייקרוסופט לחצן Alt משמש לבחירה מרובה של שורות (בVisual Studio זה Alt + גרירת עכבר כלפי מטה או מעלה ואם תנסו גם לגרור אותו לצדדים הוא יבחר באופן מרובה שטח רחב) ואז ניתן להקליד במקביל בהרבה שורות (שימושי מאוד מאוד מאוד אחרי שמתחילים לעבוד עם זה) תנסו את זה.
-
לחיצה על Ctrl+, (פסיק) מאפשרת לחפש ב Visual Studio קבצים, מחלקות, אפילו שמות של פונקציות בתוך מחלקות וגם לפי הקלדה חלקית (ב Visual Studio Code זה עם Ctrl+p אבל עוד הרבה פחות טוב מאשר Visual Studio) עם בחירת התוצאה הרצויה לחיצה על Enter תיקח אותנו היישר אל המיקום המדוייק.
-
אם היית באיזה שהוא מקום ועברת למיקום אחר ואתה רוצה לחזור עם הסמן למקום שהיית בו קודם לחיצה על Ctrl+- (קונטרול ומינוס) תחזיר אותך למקום שהיית בו קודם, ולחיצה עם שיפט תוביל אותך להבא בתור, יש גם 2 לחצנים מסכנים של קדימה ואחורה שרואים אותם למעלה בצד שמאל בדרך כלל. לא מאמינים לי? גם אני לא האמנתי בהתחלה! כמה פעמים אנחנו מטיילים בקוד בין 2 פונקציות וגוללים עם העכבר ועם הלוך וחזור והלוך. (טוב יש גם bookmarks אם אנחנו עכשיו בעיסוק אובססיבי על 2-3 אזורים בקוד שצריך לדלג ביניהם כל הזמן אבל זה כבר סיפור אחר)
-
לחיצה על Ctrl+g מאפשרת לנו לדלג למספר שורה (שימושי ברוב הפעמים שבהם יש פלט שגיאה מפורט המפנה אותנו לשורה בקוד)
לחיצה על Ctrl+k+d מפרמטת את המסמך גם אם הוא עוד לא נשמר. -
מאז שגיליתי שיש כזה דבר פרוייקט Sql ב Visual Studio עם Git אפשרויות Refactoring ו SchemaCompare נהיינו חברים הכי טובים ואני לעולם לא כותב דטה בייס ישירות ב SSMS כמו שעשיתי כשהייתי ילד (ואני מכיר עד היום אנשים מבוגרים שמפתחים דטה בייסים ישירות לתוך הדטה בייס בלי Git שומו שמיים!!!!!).
-
3 סלשים מעל לפונקציה או פרופרטי או שם מחלקה בויזואל סטודיו פותחת לנו מבנה XML מקסים של תיעוד שרואים אותו אחר כך בריחוף מעל לשם הפונקציה בכל מקום שקוראים לה. כנ"ל גם ב Enum (גם על ה enum עצמו וגם על ערכים בתוכו)
ככה זה נראה
/// <summary> /// מחזיר את רשימת החיסול של המוסד לפי מבצע /// </summary> /// <param name="id">מזהה מבצע</param> /// <returns>רשימת מחוסלים שטרם חוסלו במבצע הנוכחי</returns> public IEnumerable<T> Get(dynamic id) => ...;
יש עוד כמה אטריביוטים אפשריים לXML הזה וזה מציל חיים כשאתה משתמש בפונקציה אחרי כמה חודשים יש לך תיעוד מלא מבחוץ, לא צריך לרוץ לקוד כדי להבין בדיוק מה היא עושה. (יש את זה גם ב js אבל הרבה יותר גרוע כרגיל)
מה שקצת כואב לי שכשמדובר במימוש של אינטרפייס הוא לא יורש מהאינטרפייס את התיעוד למרות שזה מתבקש מאוד שהרי האינטרפייס הוא הוא ההסכם מול הצרכן של הפונקציה.- לחיצה ימנית על שם של פונקציה/קלאס וכדומה מביאה תפריט שבו יש אפשרות ל Find All References ואז ניתן לסנן רק רפרנסים שבהם אנו כותבים לתוך הפרופרטי, זה הציל אותי בהרבה מקרים שבהם יש מאות קריאות לפרופרטי, אבל רק 5 פעמים שבהם יש השמת ערך.
- אטריביוט בשם Obsolete שאתה שם אותו מעל לפונקציה או משהו עוזר לך לבצע הגירה איטית ושקטה לפונקציות טובות יותר עם הזמן, כי הוא מסמן את הפונקציה בכל מקום שהיא כמיושנת, אפשר גם לכתוב הודעה בסוגריים שרואים אותה עם ריחוף מעל לשם הפונקציה במקום שהיא נקראת, לדוגמא:
[Obsolete("Use the asynchronous version")] public IEnumerable<T> Get(dynamic id)
אם אזכר בעוד דברים ששינו אותי, אעלה כאן.
הרבה דברים כמובן למדתי מכ"ק אדמו"ר ראש הפורום שליט"א (וזה הזמן לסגור בכבוד אכסניה...) כשהייתי עלם צעיר בתחילת דרכי בתחום הקשוח של עולם התוכנה.
אבקש מהציבור להעלות עוד דברים כאן, בפרט אם הם חדשים ומרגשים שהופיעו זה עתה ב Visual Studio 2022.תודה לכולם.
-
-
@ארכיטקט אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
כל אחד שגילה משהו באיזה שהוא IDE פופולרי וזה שינה את חייו, אולי להעלות ולשתף את זה כאן
אני תמיד נופל בטעות של המחשבה ש"כולם כבר יודעים". אז הנה מה שעולה לי בראש כרגע על VSCODE - כמה קיצורים ותכונות שימושיות. (VSCODE ראוי לשם IDE?)
-
הקיצור ctrl+d - אני משתמש בו בתדירות. זה מוצא ומדגיש ("בוחר") את המופע הבא של הטקסט המודגש (או המילה הנוכחית אם אין משהו מודגש). כל לחיצה נוספת מדגישה עוד מופע ועוד מופע, ואז אפשר לערוך את כולם ביחד.
-
alt+shift+i - אם יש שורות מרובות בבחירה, זה הופך את הבחירה מבחירה אחת גדולה על כל הטווח לבחירות מרובות - אחת לכל שורה. ממש שימושי אם רוצים להוסיף משהו בסוף/תחילת כל שורה וכדומה.
-
alt+shift+ או alt+shift+ - משכפל את האיזור המודגש (או השורה הנוחכית) למעלה או למטה
-
ctrl+enter / ctrl+shift+enter -- יורד (עולה) שורה בלי לשבור את השורה הנכחית
-
-
Sync Namespaces
קרוב ל"דוגמאות
ששינושישנו לי את החיים" ניצבת הפקודה Sync Namespaces (נוספה בVisual Studio 2022) אשר מעדכנת את הNamespaces בSolution\Project כך שיתאימו למבנה הקבצים.
ניתן לקבוע בוודאות שללא שימוש תדיר בפקודה, יהיו לכם טעויות בNamespaces בכל אחד מהפרויקטים שלכם.
Subword Navigation
ניווט בתוך חלקי המילה באמצעות Ctrl-Alt-Left ו Ctrl-Alt-Right
לדוגמא:
-
@רפאל אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
כך שיתאימו למבנה הקבצים
מעניינת הגישה לחבר את הדברים.
האמת שלא תמיד אני מקפיד על ההתאמה הזו ודומני שראיתי רבים וטובים בגיט האב שאינם חוששים לזה, כי סדר הקבצים הוא בשביל העבודה הלוגיסטית והאיתור המהיר של קובץ לפי נושא, ואילו הניימספייסים בדרך כלל נותנים את הטון של ההיררכייה הלוגית שלא בהכרח קשורה ללוגיסטיקה של ארגון הקבצים. לפעמים אתה רוצה קלאס שיהיה זמין בכל המרחב והוא באמת שימושי ושייך לפרוייקט בכללותו, אז אתה מקצץ בעומק הניימספייס שלו מצד שני הוא אכן שייך לקבוצת קבצים וכו'.
אבל מי אני שאתווכח. -
@ארכיטקט אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
לפעמים אתה רוצה קלאס שיהיה זמין בכל המרחב והוא באמת שימושי ושייך לפרוייקט בכללותו, אז אתה מקצץ בעומק הניימספייס שלו מצד שני הוא אכן שייך לקבוצת קבצים וכו'.
המעלה בהיצמדות למבנה הקבצים היא העקביות והיכולת לאכוף אותה.
-
@ארכיטקט אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
לפעמים אתה רוצה קלאס שיהיה זמין בכל המרחב והוא באמת שימושי ושייך לפרוייקט בכללותו
מסתבר שזה הציק גם למהנדסי מייקרוסופט והיטיבו להוסיף אופציה של global using ב C# 10
global using <fully-qualified-namespace>;
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive
-
@ארכיטקט אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
אם היית באיזה שהוא מקום ועברת למיקום אחר ואתה רוצה לחזור עם הסמן למקום שהיית בו קודם לחיצה על Ctrl+- (קונטרול ומינוס) תחזיר אותך למקום שהיית בו קודם, ולחיצה עם שיפט תוביל אותך להבא בתור, יש גם 2 לחצנים מסכנים של קדימה ואחורה שרואים אותם למעלה בצד שמאל בדרך כלל. לא מאמינים לי? גם אני לא האמנתי בהתחלה! כמה פעמים אנחנו מטיילים בקוד בין 2 פונקציות וגוללים עם העכבר ועם הלוך וחזור והלוך. (טוב יש גם bookmarks אם אנחנו עכשיו בעיסוק אובססיבי על 2-3 אזורים בקוד שצריך לדלג ביניהם כל הזמן אבל זה כבר סיפור אחר)
אתה מזכיר לי את החיים שלפני... לפני שגיליתי את העכבר עם לחצני הצד. הפונקציונליות שלהם היא אחורה/קדימה, וזה שימושי קודם כל בדפדפן ובסייר ווינדוס (איך אפשר בלי זה? אני לא הול םלשום מקום בלי עכבר כיס כזה).
אבל פסגת הפסגות - בקוד (לפחות VSC אבל לא בטוח שרק) פשוט ניווט אחורה וקדימה היכן שהיית, גם בין קבצים, אין מצב לתכנת בלי זה!מאז שגיליתי שיש כזה דבר פרוייקט Sql ב Visual Studio עם Git אפשרויות Refactoring ו SchemaCompare נהיינו חברים הכי טובים ואני לעולם לא כותב דטה בייס ישירות ב SSMS כמו שעשיתי כשהייתי ילד (ואני מכיר עד היום אנשים מבוגרים שמפתחים דטה בייסים ישירות לתוך הדטה בייס בלי Git שומו שמיים!!!!!).
נשמע מעניין. תספר על זה קצת יותר?
-
@davidnead אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
נשמע מעניין. תספר על זה קצת יותר?
זה פרוייקט קוד לכל דבר ועניין, אתה יוצר את הסכמה, את הפרוצדורות והכל, והוא מתחייב לקמפל את זה "כאילו" מדובר בדטה בייס ממשי, כך שאתה לא יכול לטעות שם הוא פשוט יזרוק לך שגיאות. כשאתה רוצה לשדרג דטה בייס אמיתי, הוא יודע להשוות בין המצב של הדטה בייס לבין המצב של הקוד, ועושה כל מה שצריך כדי שהדטה בייס ייראה כמו שמוגדר בקוד. אם הורדת או הוספת עמודה, אם שינית סוג ערך, בשביל מישהו כמוני שמרים דטה בייס כל שני וחמישי ומפתח אותו בארגסיביות, זה פתרון נהדר. אינני יודע איך DBA בעולמות אחרים כגון Mysql יכול לחיות בלי הדבר הזה, כמה קוד צריך לכתוב לבד כדי לעשות מיגרציה לדטה בייס פרודקשן? ובכלל הפיתוח הוא סיוט על דטה בייס ממשי, ואיפה הGit? בקיצור סיוט.
אני אישית עוזב עכשיו דטה בייס של פוסטגרס למרות שהיה מאוד נחמד להתנסות בו, ואחת הסיבות היא בגלל הפיתוח שלו והמיגרציות שעושות לי מיגרנה. -
@davidnead אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
אתה מזכיר לי את החיים שלפני... לפני שגיליתי את העכבר עם לחצני הצד. הפונקציונליות שלהם היא אחורה/קדימה, וזה שימושי קודם כל בדפדפן ובסייר ווינדוס (איך אפשר בלי זה? אני לא הול םלשום מקום בלי עכבר כיס כזה).
אבל פסגת הפסגות - בקוד (לפחות VSC אבל לא בטוח שרק) פשוט ניווט אחורה וקדימה היכן שהיית, גם בין קבצים, אין מצב לתכנת בלי זה!גם אני מצטרף להנ"ל.
אני היום לא יכול לגלוש בדפדפן / לתכנת ב IDE בלי עכבר 5 מקשים. -
@רפאל אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
יש את הMX (עכבר הדגל של Logitech), מאוד נהנה ממנו.
הזמנתי בשעתו, כעת הגיע נראה מיוחד, אולי אצטרך קצת להתרגל למשקל והגודל שלו, יחסית לקומפקטי הקודם שהיה לי, אבל הלחצנים והקיצורים וגלילה מאוזנת וכו' זה מיוחד
תודה על הלינק! -
@ש-ב-ח אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:
בעכבר הנ"ל יש אפשרות של flow (קרי: זרימה בין מכשירים)
אני לא הצלחתי להפעיל את זה (כמובן שהורדתי את options התקנתי ופעלתי לפי ההוראות וללא הועיל דבר)יש לי את אותו עכבר, יש לי מסך עם אפשרות לשני קלטים, אז חיברתי שני מחשבים (אחד ווינדוס ואחד מאק) למסך - כל אחד תופס חצי מסך, והתשמשתי באפשרות של flow לעבור ממחשב למחשב בצורה טבעית על ידי גרירת העכבר לצד השני של המסך. יש אפשרות להגדיר שהמקלדת שלהם יעקוב אחרי העכבר, אז ברגע שהעכבר עבר גם המקלדת עובר. יפה, לא?
לא זכור לי בעיות בהגדרת flow