הפרויקט השנתי בהנדסת תוכנה Git and GitHub

Slides:



Advertisements
מצגות קשורות
שם המנחה: ד"ר ליבנת אפריאט-ג'ורנו
Advertisements

קורס ניהול ידע מפגש 3 - פורטלים 2know.kmrom.com.
תגובות חמצון -חיזור ודוגמאות מחיי היום יום
תוכנה 1 תרגול 13 – סיכום.
Trends in Periodic Table Properties
על הסתיו ועוד, בגן ה"תמרים" בעכו שם הגננות: מירב קדוש אלה נאמן
עקרונות WEB2.0 ועולם ניהול הידע הארגוני
לולאות Department of Computer Science-BGU 19 יולי 19.
The Partnership tree in ECP- Austin עץ השותפות באוסטין
THE FIFTH TRADITIONAL HANUKIYA COMPETITION IN TURKEY
טקס פתיחת "גינת השותפות" בעכו
כיצד להשתמש באתר הספרייה הדיגיטלית הישראלית
Isotopes and Atomic Mass
Encounters in Jerusalem
מומחי BI אומרים מציגה: מוריה לוי, מנכ"ל ROM Knowledgeware
OOO Execution of Memory Operations
Marina Kogan Sadetsky –
אלקטרושליליות ופולריות הקשר
משואה כימית של שריפת פחם (תגובה עם חמצן)
מודל דחיית זוגות אלקטרונים של קליפת הערכיות
The local ceremony for kindergarten children in Akko was on Akko’s hill and was dedicated to the environment. The children climbed the hill while singing.
Present Perfect Simple
Passover in “Tomer” kindergarten
תרכובות עם יונים פוליאטומים בחיי היום יום
A sneak peak of the Passover story at Levine Academy
יסודות מבני נתונים תרגול 13: עץ פורש מינימלי - Minimum Spanning Tree (MST)
זאב וקסמן פישר מנהל ישראגריד 15/11/11
חוק שימור החומר The Law of Conservation of Mass indicates that in an
The Dolphin Class International Forest of Support
DIPLOMACY AND INTERNATIONAL COMMUNICATION
חג פורים שמח ומבדח מגן פרפר....תפן שם הגננת: מאיה פלס
מבני נתונים תרגול 3 ליאור שפירא.
Mantled Howler Monkey - Alouatta palliata
Akiba Academy of Dallas Presents
Short Documentation from “Yom Hatzmaut” activities in ECP – Austin TX תיעוד קצר מהפעילויות בגיל הרך בבית הספר היהודי באוסטין טקסס לקראת יום העצמאות.
ט"ו בשבט בגן " תומר" Tu Bishvat in “Tomer” kindergarten
האם אתם יודעים כיצד כותבים מגילה?
את כל מרכולתנו הבאנו לגן ותראו מה עשינו!!!!
חג הפסח בגן בקיבוץ ראש הנקרה שם הגננת: חנה רום
“ The Borrowed Hanukkah Latkes” Dalmatian class-Austin
Direction of induced current
שם הגננת: עדנה סרי The teacher: Edna Seri
Class VI: Adjectives Dr. Esa Autero
מבוא למערכות מידע גיאוגרפיות
Computer Architecture and System Programming Laboratory
Data Science by levels Dr. Alon Hasgall.
בתרכובות יוניות יש קשרים יונים
תיעוד מפעילויות ראש השנה בגן "פרפר נחמד" –עכו-תש"ע
Microsoft Learning Network Manager
Elements and Symbols יסודות וסמלים מהם יסודות? gold carbon aluminum
Marina Kogan Sadetsky –
עקרונות תכנות מונחה עצמים
Emech at 1 + W = Emech at 2 mgh1 = mgh2
אוניברסיטת בר-אילן לשכת סגן הרקטור המרכז לקידום הוראה מציגים:
תוכנה 1 תשס"ח סמסטר ב' אוהד ברזילי ליאור שפירא
Search&Buy There are 70 items in a 7 km radios
What is Chemistry? מהי כימיה? Chemistry is the study of matter and its
מבוא לתכנות בWINDOWS ד"ר אבי רוזנפלד.
הכנת שמן זית וארכיאולוגיה בגן "ארגמן" עכו Preparing olive oil and Archeology at “Argaman” kindergarten in Akko שם הגננת: נטלי גוריבודסקי שם הסייעת :
עקרונות תכנות מונחה עצמים תרגול 8: OOP in C++
Make quality profile (SonarQube) savable to SCM
“Augustus and his smile” “"חיוכו של נסיך
Tutorial #10 MIPS commands
OOO Execution of Memory Operations
שם הגננת:אתי ברכפלד קיבוץ סער
שיתוף פעולה - מחלקה ג' מחלקת הדרכה תשע"ח.
פרוייקט שנתי בהנדסת תוכנה חלק ב
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
Engineering Programming A
בגן" הדס" בעכו משלבת פרלה שטרית הגננת ,בין חנוכה לבין השמירה על איכות הסביבה. פרלה בקשה מהילדים להכין בביתם חנוכייה מחומרים ממוחזרים או מחומרים שאינם.
תמליל מצגת:

הפרויקט השנתי בהנדסת תוכנה Git and GitHub Tom Palny, CS Department Software and Systems Development Laboratory The Technion Winter 2017

מה ההבדל ביניהם GIT: ניהול גרסאות קוד *לוקאלי* GITHUB: אחד מכמה שירותי ענן שמספק: שמירת גרסאות קוד כלים לניהול פרויקטים ומשימות לצוותים, סטטיסטיקות, issues, תיעוד חיצוני (wiki), שימוש בכלים אוטומטים לבדיקות איכות קוד כמו C.I., test coverage וכו.

Git & GitHub העבודה ב- Git וב- GitHub קיימת בשני מישורים ניהול קוד ניהול וחלוקת משימות Git Workflow

בקורס נתייחס לשלושה חלקים: Git & Github: Local code management, set up and usage, Synching the work with the cloud and how to avoid conflicts Teamwork: Issues management Documentation: Wiki & Readme

Git & Github Go to Github and create a new project in the organization TechnionYearlyProject You’ll see the following page:

Git & Github Open a terminal (cmd for windows or bash for linux) in your computer and navigate to a directory in which you want your project’s code to reside and type: git clone https://github.com/TechnionYearlyProject/YourNewlyCreatedProject.git Done. Memorize: 1. Commit 2. Pull 3. Push

Git & Github “git commit”: local to your computer. When you’re done working, and want to take a snapshot of the current code on your *local* machine. you’ll need to give it a commit message, which will be the commit title in github. “git pull”: BEFORE you put your code in the common repository on Github, you must update your local files, i.e. Pull from the cloud. Here you will find out if there are conflicts between your own code and the server code and get a chance to choose which is the one to keep. “git push”: after resolving conflicts (if any), this will then push your local code to the remote Github repository.

Commented out code - regulations   You are free to comment out code in your own local copy But, you never push code that is commented out. You know why you commented it out No one else does Commented out code tends to live longer than real code since no one really understands it Commented out code is a sign that you do not understand: this tutorial / team work / good use of Git

Do not push commented out code   What do I do when I see someone’s commented out code after “git pull”? You erase it immediately. Whomever pushed it will understand

Git & Github In each “commit message”, the title of the commit in Github, you must include the Issue# (more on this coming up next) that the commit is relevant to. Without an issue number in the commit message, the commit is simply not taken into account when giving grades.

ניהול וחלוקת משימות, Issues בהקמת פרויקט צריך בשלב הראשון להגדיר מה צריך לעשות מה ה – Features של הפרויקט שיתוף פעולה זה בין משתתפי הפרויקט מתבצע ע"י ה – Issues, בשפת גיטהאב. ה – Issues מגדירים את ה – Features ומתארים אותם. כל פרויקט מורכב ממספר איטרציות (Sprint-ים בשפת "פרויקט אג'ילי"). בתחילת כל Sprint מתקיימת ישיבה בפועל של משתתפי הפרויקט שבה מתכננים את הפרויקט, את התכונות והדרישות שלו ומחליטים מה יהיו ה – Features בגרסא הראשונה.

Issues = משימות ה – Features מהווים את משימות הפרויקט. לכל Issue תוצמד תגית (Label) או כמה תגיות. התגיות מאפשרות לבצע חיפוש ממוקד ולדעת אילו Issues משויכים לאותו נושא. כל Issue יטופל ע"י חבר צוות אחד או יותר, והדבר יצוין בגיטהאב ע"י Assignee.

Assignee מטפל\אחראי הנושא סטטוס מספר issue Labels Assignee מטפל\אחראי הנושא

מרעיונות לפעולות בעזרת Issues Issues are often born as a raw idea. The idea evolves by a discussion: Participants make comments. The rolling discussion, eventually leads to the resolution of the issue in several ways: Holding any further unfruitful discussion placing the issue in the backlog, for further consideration sometime Fine tuning the idea into an actionable assigning it to an individual, who eventually closes the issue.

Properties of an issue Number which never changes   Number which never changes Status, which is either open or close Milestone: which can be either missing (no milestone, or backlog), or a specific milestone defined by the user Labels: manager-defined labels Participants Assignee(s) Comments Other (“like” sign etc.)

Documentation: Wiki and Readme As an essential part of Software, The yearly project in Software Engineering requires thorough external documentation. Documentation needs to include the following: An introduction to the project and the purpose behind it The technologies and tools behind it Two complete Installation guides: One for a consumer trying to run your project, another for a developer who wishes to take your code and expend it. What are the prerequisites, the steps and the dependencies required to build the project. Deep, encompassing explanation of each feature of the project: how to use it, what it does, the expected input and output of the code and possible error cases.

Documentation example Spartanizer, an ongoing project headed by Prof. Yossi Gil and selected outstanding students in our department. https://github.com/SpartanRefactoring/Main/wiki

Automatic tools in Github: There are tools that can work automatically on your code in github. Continuous Integration: Travis C.I. for example, can be programmed to build on each commit, send email to the team when something fails, run unit tests and more. Code Coverage: codeCov for example, is a tool that can report how much of the project’s code is covered by tests. In your newly created project repository, go to “settings” -> “Integration and Services” and explore.