באיזו מערכת Source Control / Version Control אתם משתמשים?

הפרבולה

New member
לא עושים "הוט פיקס"

נותנים ללקוח את הגרסה האחרונה ואם צריך מתקנים בה את הבג שהוא מדווח עליו , אם אנחנו באמצע פיתוח גירסה אז הוא יחכה כמה ימים עד לשיחרורה ( זה גם הזדמנות טובה לכך שהלקוח יעשה לנו QA על הגירסה החדשה.... ) . &nbsp &nbsp
 

BravoMan

Active member
יפה לכם שאתם יכולים להגיד ללקוחות שלכם

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

user32

Well-known member
מנהל
לא מסכים

סורס קונטרול נועד בראשונה לנהל גרסאות. גם כשאתה כותב לבד (ויוצא לי לכתוב הרבה לבד או עם עוד 1-2 מתכנתים) יש ערך גדול ביכולת לחזור אחורה בזמן. הרבה פעמים כשמחפשים באג חמקמק, מתחילים לבדוק את שינויי הקוד סביב תאריך הופעת הבעיה ואז הרבה יותר מהר למצוא מאיפה הבעיה נובעת. וזה לא היתרון היחיד. יש גם עבודה במקביל עם כמה בראנצ'ים (לפיתוח, לפיצ'רים מסויימים, לפרוד וכו'). מאפשר לך לדלוור תיקונים מהירים ובמקביל לפתח גרסאות חדשות בלי להרוס אחד לשני. ואם זה אפילו רק שני עובדים, הדרך הכמעט יחידה לחבר את הקוד הוא באמצעות SC. אחרת זה שליחה ודריסה של קבצים, לא נוח ומועד לבעיות. ולתשובה לשאלה: גם אני בגיט כמו כולם.
 

ipv6

Member
אתם כולכם כותבים טיעונים של אנשים חכמים

אבל מה עם הטיעון הכי פשוט מה יקרה לאדון פרבולה בראיון העבודה הבא שיצהיר על הניסיון הטכנולוגי הרב שלו שכולל MFC (אני כבר לא זוכר) וחברה שלא משתמשת ב-Source control. לא מאד יעזור לסיכויים שלו..
 

הפרבולה

New member
אל תדאג אני לא עובד רק עם MFC

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

ipv6

Member
אני בטח לא דואג

אתה צריך לדאוג.. האמת היא שמהבדיחות של Bravo על איך שעובדים אצלכם אני כבר לא זוכר מה אמת ומה לא (זוכר איזו שיטת עבודה "חכמה" של השוואת בינאריים במקום code review), אבל מקום שעובד בלי SC אומר הרבה מאד על המקום.
 

הפרבולה

New member
אתה לא זוכר מדויק

אכן משתמשים בשיטת העבודה החכמה ( בלי מרכאות) של השוואת בינאריים, אבל זה לא בא במקום code review. וכבר הסברתי שהשיטה הזאת רלוונטית רק שעושים שינויים קוסמטיים בקוד - למשל הוספת\שינוי הערות, הגדרות #define וכל דבר שלא אמור לשנות את קובץ ה exe וזה בדיוק מה שהשיטה הזאת באה לבדוק - שה exe אכן לא השתנה . &nbsp המון בגים שטותיים נחסכו מאיתנו בגלל השיטה החכמה הזאת ( למשל שהתכוונו למחוק רק את איזה הערה לא רלוונטית ובטעות מחקנו גם קוד שצמוד אליה ).
 

ipv6

Member
מה לעשות שיש לי יותר דברים חשובים בחיים

מלזכור את ה-Bleeding edge tech שאתם מתעסקים בו.. אם מה שכתבת בפורום נכון, הייתי בכנות ממליץ לחשוב איך זה יראה כשתחפש עבודה.
 

הפרבולה

New member
מה זאת אומרת "דברים יותר חשובים" , זה הדבר הכי חשוב

שאתם צריכים לזכור " השוואת קבצים בינריים" זה עשוי להציל אותכם מהרבה בגים.
 

BravoMan

Active member
השוואת קבצים בינאריים חסרת תועלת לרוב המפתחים בעולם

כבר הסברתי לך את זה פעם, אבל אחזור על זה שוב: &nbsp רוב הקומפיילרים מכניסים לקובץ חותמת זמן לכל הפחות, מה שאומר, שבינארית, קובץ שקימפלת לפני שעה, לא יהיה זהה לקובץ שקימפלת עכשיו. &nbsp ואם הקומפיילר לא עושה את זה, מערכת הבניה תדאג, ויש גם מי שמשתמש ב-auto increment למספר גרסה. &nbsp בפלטפורמות יותר רציניות, יש גם עניין של דחיסה וחתימת קבצים, מה שאומר, שהבינארי אינו תוצר ישיר של אסמבלי מהקוד, אלא בכלל ZIP שעבר מניפולציות. &nbsp בגלל שאתם עובדים עם טכנולוגיה ארכאית, וכנראה גם קבצים קטנים יחסית, אתם יכולים להשתמש בשיטה העקומה הזו, אבל עבור רוב עולם התכנות זה כמו לנסות להבעיר אש בעזרת אבני צור.
 

הפרבולה

New member
מדובר על קבצים בינאריים שמייצגים תוצרי קומפילציה

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

BravoMan

Active member
אף פעם לא עבדתי בפיתוח firmware אבל יש לי תחושה

שגם בתעשייה הזו יש שיטות יותר שפויות לעשות את זה... &nbsp סתם מתוך סקרנות: כתבתם כלי מיוחד להשוואה, שידע להתעלם מחלקים של בינארי שאתם חושבים שהם חסרי משמעות?
 

הפרבולה

New member
כן

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

קלייטון.ש

Well-known member
בפרויקטים שלי אין שום ערך לחזרה בזמן

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

user32

Well-known member
מנהל
מרשים שהגעת לרמה הזאת בלי טסטים אוטומטיים ובלי ניהול גרסאות

 

BravoMan

Active member
לרגע חשבתי שתגיד שזה בגלל שאתה כותב בלי באגים...

תן לי להבין - אף פעם, ביותר מעשור עבודה לא נדרשת לממש פיצ'ר חדש שמכריח אותך לשנות קוד קיים? תמיד היית רק מוסיף עוד פיסת קוד מבודדת?
 

קלייטון.ש

Well-known member
לי יש המון באגים והם מתרבים ככל שאני מזדקן

הקומפיילר אצלי מוציא לי הודעות כמו error 98765 maybe try a different profession חוץ מזה אני מפתח תוכנה מגיל 10 וכבר בגיל 13 הרווחתי קצת כסף מזה. אז מדובר על הרבה יותר מעשור.
 

ipv6

Member


טוב לראות עוד Old schooler שעובד נכון אצלנו למשל, לא מאמינים בלהוציא קוד משותף לפונקציה. מיותר לחלוטין. יש לי קלסר שבו אני מתייק איפה חוזרת על עצמה כל פיסת קוד. כל פעם שאני מוסיף בעוד מקום, אני מעדכן את הקלסר. אם צריך לעדכן משהו בקוד הזה ? פותחים את הקלסר, רואים באיזה שורות בקובץ (כמובן רק קובץ אחד, שמעתי שיש מוזרים שמחלקים את הקוד לכמה) מתקנים.גמרנו. הכי נכון ובטוח. יושב אצלי, מוגן (אם יש שריפה אני יכול לקחת אותו ולברוח) ולא תלוי בשום שרת שאולי לא ירצה להחזיר לי את העבודה שלי.
נ.ב אמרת גיבוי, על דיסקט בכיס, תמיד עליך, כן?
 
למעלה