300 likes | 445 Views
עבודה עם Eclipse. מבוא לתכנות מערכות. IDE – סביבת פיתוח. בניגוד לכלים שראינו עד עכשיו סביבת פיתוח היא תוכנה המנסה לאגד מספר כלים תחת מנשק אחיד. למשל: Turbo C++ , Dev C++ ו- Visual Studio הן סביבות פיתוח לתכנות ב- C/C++ (בין השאר). סביבות פיתוח. מכילות קיצורים .
E N D
עבודה עם Eclipse מבוא לתכנות מערכות מבוא לתכנות מערכות
IDE – סביבת פיתוח • בניגוד לכלים שראינו עד עכשיו סביבת פיתוח היא תוכנה המנסה לאגד מספר כלים תחת מנשק אחיד. • למשל: Turbo C++, Dev C++ ו-Visual Studio הן סביבות פיתוח לתכנות ב-C/C++ (בין השאר). מבוא לתכנות מערכות
סביבות פיתוח • מכילות קיצורים. • מבצעות תהליכים קבועים בצורה אוטומטית. • עוזרות בניהול מידע בפרוייקטים גדולים. • מספקות מנשק אחיד ומקלות על העבודה. • מסובכות יחסית ולכן דורשות זמן התרגלות. • אל תוותרו על השימוש בסביבת עבודה. יתרונותיהן עולים פי כמה מונים על חסרונותיהן. ירוק = טוב אדום = רע מבוא לתכנות מערכות
Eclipse • Eclipse היא סביבת עבודה לתכנות בשפות שונות. • לאורך הקורס נשתמש ב-Eclipse CDT. • תוספת המאפשרת כתיבת תוכניות C/C++. מבוא לתכנות מערכות
התקנה • ניתן להוריד את Eclipse CDT ישירות מאתר הקורס. (גרסה זו הינה עבור Windows) • גרסה זו כוללת בתוכה כלים נוספים שבד"כ דורשים התקנה נפרדת: • גרסה של gcc ל-Windows • גרסה של gdb ל-Windows • לאחר ההורדה צריך פשוט לפתוח את הקובץ המכווץ לתיקיה כלשהי. • אין צורך בהתקנה. • ניתן להוריד גרסאות אחרות של Eclipse באתר הרשמי: http://www.eclipse.org/ מבוא לתכנות מערכות
הפעלה ראשונית • בהפעלה הראשונית של Eclipse תדרשו לבחור תיקיה (directory) שתשמש כ-workspace. • ה-workspace יכיל בתוכו את כל הפרוייקטים וההגדרות המותאמות אישית. • ניתן לגבות את ספריה זו או להעבירה בין מחשבים בקלות. מבוא לתכנות מערכות
יצירת פרוייקט • בכדי לכתוב קוד ולהריץ אותו עלינו ליצור פרוייקט תחילה. • פרוייקט מכיל: • קבצי המקור של הקוד • הגדרות עבור הפרוייקט (למשל דגלי הקומפילציה הדרושים) • קבצים נוספים מבוא לתכנות מערכות
יצירת פרוייקט • על מנת ליצור פרוייקט נבחר בתפריט File, ובו נבחר New, C Project. • אם סוג הפרוייקט אינו מופיע יש לבחור ב-Project… ולבחור בסוג המתאים בחלון שיופיע. • ניתן לפרוייקט שם ונבחר ב-executable, empty project. מבוא לתכנות מערכות
הוספת קבצים • נוסיף עכשיו קובץ ראשון לפרוייקט. • נבחר ב-File,New ולבסוף ב-Source File (עבור קובץ c) או Header File (עבור קובץ h). • עבור מערכת הבנק שלנו נוסיף את הקבצים הבאים: • account.h קובץ מנשק המגדיר את העצם Account. • account.c קובץ קוד מקור המממש את Account. • main.c קובץ זה יכיל את ניתוח הפקודות ועיבוד מאגר הנתונים. מבוא לתכנות מערכות
הוספת הקבצים • הקבצים יופיעו בחלון ה-Project Explorer עתה. • לחיצה כפולה על קובץ קיים תפתח אותו בעורך הטקסט במרכז המסך. • כעת אנו יכולים להתחיל לרשום את התכנית שלנו. מבוא לתכנות מערכות
בניית הפרוייקט • לפני ההרצה הראשונית של הפרוייקט עלינו לבנות אותו. • בנייה מכילה את שלב הקומפילציה, אך בפרוייקטים גדולים ייתכן ותכיל עוד פעולות מכינות (של קבצי נתונים הדרושים לתוכנה למשל) • כדי לבנות את הפרוייקט יש לבחור ב-Project, Build Project. • ניתן לבחור גם ב-Build All אשר יגרום לבניית כל הפרוייקטים הפתוחים. לפעולה זו קיים גם מקש קיצור Ctrl+B. • במקרה הטוב: לאחר הבנייה יתווסף קובץ בינארי חדש אותו נוכל להריץ. • במקרה הרע: נצטרך לטפל בשגיאות קומפילציה קודם. מבוא לתכנות מערכות
תצוגת שגיאות קומפילציה • ניתן לראות את כל הפקודות שהורצו ע"י Eclipse והפלט של הקומפיילר בחלון ה-Console • לכל שגיאה או אזהרה יוצג סימון בקוד בשורה המתאימה. • בנוסף יוצג סימון ליד פס הגלילה של הקובץ המראה את כל השגיאות שנמצאו בו. • לחיצה על סימון זה תקפוץ לשגיאה המתאימה מבוא לתכנות מערכות
תצוגת שגיאות קומפילציה • בכדי לנווט בקלות בין השגיאות ניתן להשתמש בחלון ה-Problems. • בחלון זה ניתן לראות את כל השגיאות והאזהרות הידועות ולקפוץ לכל אחת ע"י לחיצה כפולה. • אם חלון זה אינו פתוח ניתן לפתוח אותו בעזרת Window, Show View, ולבחורב-General, Problems. מבוא לתכנות מערכות
הרצה • לאחר הבנייה הראשונית נוכל להריץ את התכנית שלנו ע"י בחירה ב-Run, Run as, Local C/C++ Application • אם התבצעו שינויים בקוד התכנית תקומפל מחדש. • הקלט והפלט של התכנית יופנו לחלוןה-Console. • קלט יופיע בצבע טורקיז. • פלט יופיע בצבע שחור. • פלט לערוץ השגיאות יופיע באדום. מבוא לתכנות מערכות
הרצה • ניתן לעצור את ההרצה ע"י כפתור העצירה ( (בחלון ה-Console. • ניתן להריץ את התכנית האחרונה שהורצה ע"י בחירה בתפריט Run ובו בחירה ב-Run או ע"י לחיצה על Ctrl+F11. • בגלל הגבלה של מערכת ההפעלה Windows פעולות הפלט אינן מתבצעות ישירות לחלון ה-Console ברגע ביצוען, ניתן לפתור בעיה זו ע"י הוספה זמנית של שורות אלה בתחילת התכנית: setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); מבוא לתכנות מערכות
הרצה • בד"כ נרצה לשלוט בפרמטרים עבור הרצת התכנית. • למשל תכנית הבנק שלנו צריכה לקבל בשורת הפקודה את שם קובץ מאגר הנתונים: • לכל הרצה של פרוייקט Eclipse שומר קונפיגורציה בה ניתן להגדיר פרמטרים כאלו. • כאשר בחרנו ב-Run As נוצרה קונפיגורציה כזו באופן אוטומטי. • כדי לערוך קונפיגורציות נבחרב-Run, Run Configurations. • בחלון זה מוצגות בצד כל הקונפיגורציות הקיימות. • לאחר בחירה בקונפיגורציה ניתן לערוך את ערכיה. • למשל בחירה ב-Arguments תאפשר הוספת הפרמטר להרצת התכנית. > bank.exe database.txt מבוא לתכנות מערכות
מאפייני הפרוייקט • ניתן לשנות מאפיינים שונים של הפרוייקט ע"י בחירה ב-Project, Properties. • למשל שליטה בדגלי הקומפילציה שבהם נשתמש. • כדי לגרום לקומפילציה בהתאם לכללים בקורס נצטרך לעשות את הדברים הבאים: • בחירה ב-C/C++ Build, Settings. • תחת GCC C Compiler, Warnings: • נסמן את Werror • נסמן את pedantirc-errors • אם Wall אינו מסומן, נסמן גם אותו. • תחת Miscellaneous: • נוסיף ב-other flags: “-std=c99” מבוא לתכנות מערכות
מאפייני הפרוייקט • אפשרות חשובה נוספת היא ספריות, קבצי object, לתהליך הקישור. • כדי להוסיף קבצי object נבחר ב-Linker, Miscellaneous. • תחת Other Object בחרו הוספה. • בחרו את הקובץ המתאים. • הערה: אם מופיעות בעיות קישור, שימו את קובץה-object בספרית הפרוייקט הראשית ופשוט כתבו את שמו בחלון הוספת הקובץ. מבוא לתכנות מערכות
השלמה אוטומטית • Content Assist • מופעלת בעזרת Ctrl+Space (ואוטומטית במקרים מסוימים) • מנסה להשלים את הביטוי הנוכחי בצורה הגיונית: • שמות משתנים המוגדרים בבלוק, שמות פונקציות, שמות קבצי h בפקודות #include וכו'... • לא תמיד מצליחה – גם אם ההצעה שאתם מחפשים לא מופיעה עדיין ייתכן שהקוד שלכם תקין. • מציגה את התוצאות בחלון צף (בחירת אפשרות עם מקשי החצים ו-Enter או העכבר) • אם יש אפשרות יחידה משלימה את המילה אוטומטית. מבוא לתכנות מערכות
השלמה אוטומטית • Word Completion:משלימה מילים ללא הקשר. • מופעלת בעזרת Alt+/ • משלימה את המילה לפי המילה המתאימה האחרונה שנצפתה בטקסט • לחיצות נוספות על Alt+/ יחליפו את המילה המושלמת • עובדת תמיד (גם בהערות או מאקרו למשל) מבוא לתכנות מערכות
סימון התייחסויות • הבאת סמן עריכת הטקסט למילה מסוימת יאיר את כל ההתייחסויות לאותה מילה. • רק התייחסויות אשר אכן מתייחסות לאותה ישות בקוד. • למשל משתנה מקומי יואר רק בפונקציה המתאימה. • בנוסף כל ההתייחסויות בקובץ יסומנו בריבועים אפורים מימין לציר הגלילה האנכי. • תכונה זו מאפשרת מעקב אחרי הקוד. • למשל מציאה קלה של השורות בהן משתמשים שמתנה המקומי. • בנוסף Eclipse מסוגלת לנתח את הקוד ולצבוע מילים בקוד לפי הגדרתם. • ערכים קבועים למשל יופיעו בצבע כחול מוטה. • שמות טיפוסים מוכרים יופיעו בגוון ירוק. • אם המילה אינה מופיעה בצבע המתאים כנראה שקיימת טעות כתיב או שגיאה כלשהי. מבוא לתכנות מערכות
סימון מטלות בקוד • במקרים רבים נהוג לרשום הערות בקוד עבור דברים שיתבצעו מאוחר יותר • למשל מחיקת קוד זמני לפני הגשת תרגיל • ע"י רישום המילים TODO או FIXME ניתן לסמן הערה כמטלה. • Eclipse עוקבת אחרי המטלות הפרוייקט: • מטלות יסומנו בצידי הקובץ בכחול. • ניתן לראות את רשימת כל המטלות בפרוייקט בחלון Tasks ולקפוץ אליהן. • ניתן להוסיף תגיות נוספות ע"י בחירה ב-Window, Preferences ושם בחירה ב-C/C++, Task Tags. מבוא לתכנות מערכות
ניווט בקוד • חלון ה-Outline מראה את מיתאר הקובץ הנוכחי ומאפשר ניווט נוח בו. • אם הוא אינו מופיע ניתן להחזירו ע"י Window, Show view ובחירה ב-General, Outline. • לחיצה על פריט בחלון תקפוץ לחלק המתאים בקובץ. • לחיצה על כפתור ימני תפתח תפריט עם אפשרויות נוספות לפריט זה. • ניתן לסדר מחדש את הפריטים בקובץ ע"י גרירתם בחלון זה. • לאחר שמתרגלים לקפוץ להקשרים שונים ב-Eclipse כדאי לדעת גם את הקיצור Alt+←שחוזר להקשר הקודם (כמו back בדפדפן) מבוא לתכנות מערכות
קפיצה להכרזה • אפשרות מועילה במיוחד ביכולות הניווט היא קפיצה להכרזה. • ע"י בחירת משתנה, פונקציה, טיפוס וכו' ובחירה ב-Open Declaration ניתן לקפוץ אל המקום בוא הוא הוגדר לראשונה • ניתן לבצע פעולה זו במספר רב של דרכים, שתיים חשובות הן: • לחיצה על כפתור ימני על הטקסט ובחירה ב-Open Declaration. • החזקת מקש ה-Ctrlולחיצה עם העכבר על המילה המתאימה.בזמן שמקש ה-Ctrl מוחזק כל מילה שניתן לקפוץ ממנה תיראה כמו קישור מתחת לסמן העכבר. מבוא לתכנות מערכות
עיצוב אוטומטי של הקוד • כדי לשמור על קוד קריא נהוג לבצע הזחות ולמקם סוגריים ומילים בצורה עקבית. • לכללים מסוג זה וכללים נוספים המגבילים את סגנון קוראים גם Code Conventions. • לחיצה על Ctrl+Shift+F תגרום ל-Eclipse לפרמט מחדש את כל הטקסט הנבחר. • שבירת שורות ארוכות. • מיקום סוגריים מסולסלים {,}. • עיצוב לולאות ומשפטי תנאי בצורה אחידה. מבוא לתכנות מערכות
עיצוב אוטומטי של הקוד • ניתן לבחור סגנון מוכן מראש. • ניתן לערוך סגנון מותאם אישית. • ניתן לבחור את הכללים לפיהם הקוד יעוצבמ-Window, Preferences ובחירה ב-C/C++,Code Style. מבוא לתכנות מערכות
הוספת קו אנכי • מומלץ להימנע משורות ארוכות מדי בקוד. • הסיבה העיקרית: מפריעות לקריאות. • לכן על אורך שורה בקורס לא לעלות על 80 תווים. • המספר 80 מהווה פשרה נוחה וגם מבטיח ששורת קוד לא תישבר בהדפסה. • ניתן להוסיף קו אנכי בעורך הטקסט אשר יסמן מתי שורה חורגת מ-80 תווים. • בוחרים ב-Window, Preferences ובחירה ב-General, Editors, Text Editors. • יש לסמן את Show print margin ולוודא שערכו של Print margin column הוא 80. מבוא לתכנות מערכות
היררכית קריאות - Call Hierarchy • מציגה בעץ את קשרי קריאת הפונקציות. • בעזרת תצוגה זו ניתן לראות בקלות מהיכן נקראת כל פונקציה. • לאתר פונקציות שאינן בשימוש. • למצוא את ההשפעה של שינויים. • כדי להגיע לחלון זה יש לבחור שם של פונקציה, ללחוץ על כפתור ימני ולבחור ב- Open Call Hierarchy מבוא לתכנות מערכות
Refactoring • Refactoring הוא שם כולל לטכניקות של עריכת קוד לשם שיפורו. • Eclipse תומכת במספר פקודות הנועדו לשימושים כאלה. • פקודות אלו מנתחות את הקוד הקיים ומבצעות בו שינויים. מבוא לתכנות מערכות
Refactoring • Rename: • משנה שם של משתנה/פונקציה/טיפוס בקוד. • משנה אותו בכל קבצי הפרוייקט. • לא מתבלבלת (למשל שם משתנה מקומי ישתנה רק בפונקציה המתאימה) • ניתנת להפעלה מתפריט Refactor. • Rename in file: • גרסה זו של הפקודה משנה רק את ההתייחסויות לשם זה בקובץ הנוכחי. • יתרונה באפשרות עריכה "חיה". • מופעלת ע"י Ctrl+1 ובחירהב-Rename in file • קיימות אפשרויות נוספות ל-Refactoring בתפריט ה-Refactor אך הן נותנות תוצאות טובות רק ב-++C. • אתם מוזמנים לנסות אותן לאחר שנלמד ++C. מבוא לתכנות מערכות