Coroid מכיל ארבע יחידות עבודה. הן מתנשאות זו על גבי זו, ובחירת היחידה הנכונה תלויה בעיקר בגודל העבודה ובכמותה שצריכה להתבצע בו-זמנית.
| יחידה | גודל | מסתיים ב- |
|---|---|---|
| משימה | שינוי אחד | pull request אחד |
| תוכנית | תכונה בשלבים | pull request אחד לכל התוכנית |
| ספרינט | מקבץ עבודה לאורך זמן | כל מה שהמשימות שלו מייצרות |
| נתיב | זרם עבודה מקביל | הענף שאליו מתמזגת העבודה של התוכנית |
ספרינט · שבועיים
שלב 1
משימהטופס תשלוםמשימהאימות כרטיסשלב 2
משימהתקציר הזמנהמשימה עצמאית
משימהתיקון ניתוח תאריכיםמשימה
היחידה הבסיסית. משימה אחת היא יחידת עבודה שמייצרת pull request אחד, והיא זו שבפועל מתבצעת – תוכניות, ספרינטים ונתיבים הם כולם דרכים לארגן משימות.
אם ניתן לתאר את התוצאה בפסקה אחת והבודק יכול לקרוא את התוצאה בש sitting אחד, זו משימה.
תוכנית
כאשר העבודה דורשת מספר שינויים בסדר מסוים, היא הופכת לתוכנית: קבוצה מסודרת של משימות המחולקות לשלבים, שאותה אתם מאשרים לפני שנכתב קוד כלשהו.
השתמשו בתוכנית כאשר:
- השלבים המאוחרים תלויים באלו הקודמים
- אתם רוצים לראות את כל הגישה לפני שתתחייבו לחלק מההיבטים שלה
- העבודה היא תכונה ולא שינוי בודד
אישור התוכנית הוא נקודת ההתערבות הזולה ביותר במערכת. דחיית גישה כזו עולה דקה אחת; דחייה לאחר ששלוש משימות כבר רצו עולה על שלושה ריצות.
כיצד תוכנית מגיעה למאגר הקוד שלכם
המשימות של תוכנית אינן פותחות pull request נפרד. הן עובדות על ענפים משלהן ומתמזגות לתוך נתיב משותף. ענף מסלולוענף זה מועלה כבקשת משיכה אחת לענף הבסיס שלך.
ענף מסלול
המקום שבו העבודה של התוכנית מתאחדת
בקשת משיכה אחת של pull request
התכונה המשולבת, שנבדקה פעם אחת
main
ענף הבסיס שלך
משימה עבור פרויקט שונה מהמסלול – היא מועלית באופן עצמאי, ולכן תוכנית בין-פרויקטיאלית פותחת בקשת משיכה אחת של pull request לכל מאגר קוד.
כך תוכל לבחון את התכונה המורכבת פעם אחת, עם כל השינויים מונחים לפניך, במקום לאשר שלבים חלקיים בנפרד.
החריג הוא עבודה המתפרסת על מספר פרויקטים: משימה השייכת לפרויקט שונה מהמסלול תועלה בנפרד, כך שתוכניות בין-פרויקטיות ייצרו pull request לכל מאגר. זה בלתי נמנע – pull request אינו יכול לחצות שני מאגרים.
ספרינט
מכלול זמן מוגדר לעבודה, עם מדדים ולוח זמנים משלו. ספרינטים עונים על השאלה "מה נעשה בתקופה זו ואיך התנהלו הדברים", ולא על "כיצד נבנית תכונה זו".
השתמש בספרינט כאשר אתה מתאם את עבודת הצוות לאורך תקופה מסוימת. השתמש בתוכנית כאשר אתה מפרק תכונה אחת לחלקים. אין מדובר באפשרויות חלופיות – ספרינט יכול לכלול משימות השייכות למספר תוכניות.
מסלול
המסלול הוא המקום שבו העבודה המקבילה של תוכנית מתמזגת. המשימות מכוונות לענף של המסלול ולא לענף הבסיס שלך, כך שסוכנים שונים יוכלו להתקדם בו-זמנית ללא התנגשויות, והתוצאה המתקבלת תועלה כpull request אחד לאחר שתעמוד בקריטריונים.
בעוד שתוכנית עוסקת ב סדר, המסלול עוסק ב מקבילות וב אינטגרציה. אם יש לך יכולת לנצל מספר סוכנים ועבודה שאינה חייבת להתבצע ברצף, המסלול מאפשר להם לפעול יחד ועדיין להגיע כשינוי אחד הניתן לבחינה.
בחירה
השאלה אינה כמה בקשות משיכה אתה רוצה – גם משימה וגם תוכנית מגיעות כאחת. השאלה היא כמה עבודה צריכה להתבצע לפני שהתוצאה ראויה לבחינה.
- האם מדובר בשינוי אחד שניתן לקרוא בפעם אחת? כן → משימה.
- האם נדרשים מספר שינויים מסודרים לפני שהתוצאה תהיה הגיונית כולה? כן → תוכנית. המסלול שלה מטפל בהרצת החלקים במקביל ככל שניתן.
ספרינטים משתלבים לצד כל אלה כשכבה לתכנון ודיווח.
המקום של גרסה בהליך העבודה
גרסה גרסה היא רישום האספקה לאחר תהליך האינטגרציה, ולא משימה נוספת, תוכנית, ספרינט או מסלול. היא מזהה את ה-commit במאגר הקוד, מאשרת שעבודה מתוכננת נמצאת באותו commit, ועוקבת אחר ניסיונות הפריסה בכל סביבה. גרסה אחת יכולה לכלול עבודה ממספר ספרינטים; ספרינט אחד יכול להניב מספר גרסאות. קידום במסלול פותח pull request, אך לא יוצר באופן אוטומטי משלוח מאומת.
מה קובע את מספר הפעולות המתבצעות בו-זמנית?
לא המבנה – אלא הקיבולת. תוכנית עם עשר משימות שניתן לבצע במקביל וערוץ סוכן אחד יבצע אותן בזו אחר זו. ראו קיבולת וערוצי סוכנים.