שאלה טכנית למתכנתים

  • פותח הנושא teeto
  • פורסם בתאריך

teeto

משתמש ותיק
הצטרף ב
6/12/18
הודעות
109
דירוג
100
היי

למתכנתים שפה, שאלה (או שתיים) ברשותכם:
יש לי קוד.
עשיתי שינויים, דחפתי לmain, ולאחר זמן מה במקרה ראיתי שהשינויים גרמו לבאגים בקוד.
הייתי שמח אילו עם כל דחיפה של שינויים לmain (או כל branch אחר)
יתבצעו מספר בדיקות אוטומטיות, לוודא שלא שברתי שום דבר בקוד.
אז:
  1. אילו כלים מתאימים יש לאותן בדיקות אוטומטיות? מה הנפוץ ביותר שאתם מכירים?
  2. unittestים. מה הם קשורים? האם הם תשובה מלאה/חלקית/ממש לא לשאלה 1?
תודה תודה
 

c881

משתמש בכיר
הצטרף ב
24/1/15
הודעות
6,465
דירוג
8,710
שפה ספציפית?
 

teeto

משתמש ותיק
הצטרף ב
6/12/18
הודעות
109
דירוג
100

half-solid

משתמש ותיק
הצטרף ב
8/12/20
הודעות
449
דירוג
376
לא איש פייתון, אבל הקונספט דומה:
ניתן להשתמש בג'נקינס בתור build server

כלומר, להגדיר job שבעקבות דחיפה של קוד ל- source control (מאמין שאתה משתמש ב-svn/git?)
מיד יבוצע build (שיבדוק שגיאות קומפילציה ובניה של הפרוייקט)
ולאחר מכן job של unit tests למשל (רצף בדיקות שאתה כותב מראש)

כמובן שתוכל לקבל התראה על תוצאות ה-jobs

ניתן גם להגדיר שבמידה ואחד השלבים נכשל, ה-commit/push יידחה.
 

kalore

משתמש ותיק
הצטרף ב
25/1/15
הודעות
52
דירוג
44
בפייתון יש את pytest שאיתו אפשר לממש טסטים שירוצו אוטומטית בג'נקינס וייצרו סביבת CI/CD שזה מה שאתה בעצם מחפש
 

teeto

משתמש ותיק
הצטרף ב
6/12/18
הודעות
109
דירוג
100
לא איש פייתון, אבל הקונספט דומה:
ניתן להשתמש בג'נקינס בתור build server

כלומר, להגדיר job שבעקבות דחיפה של קוד ל- source control (מאמין שאתה משתמש ב-svn/git?)
מיד יבוצע build (שיבדוק שגיאות קומפילציה ובניה של הפרוייקט)
ולאחר מכן job של unit tests למשל (רצף בדיקות שאתה כותב מראש)

כמובן שתוכל לקבל התראה על תוצאות ה-jobs

ניתן גם להגדיר שבמידה ואחד השלבים נכשל, ה-commit/push יידחה.
תודה רבה, עשית לי סדר.

משתמש בגיטהאב?
כן. git / github.

יש פודקאסט שנקרא 'מפתחים חסרי תרבות'. חפש את הפרק עם רן בר זיק על ci cd
אשמע. תודה.

בפייתון יש את pytest שאיתו אפשר לממש טסטים שירוצו אוטומטית בג'נקינס וייצרו סביבת CI/CD שזה מה שאתה בעצם מחפש
בודק, תודה.
 

dread

משתמש רשום
הצטרף ב
2/12/20
הודעות
9
דירוג
18
כן. git / github.
אם אתה משתמש בגיטהאב והטסטים שלך פשוטים (לא צריכים setup מיוחד שיוצר deviceים במכונה או משהו בסגנון) כנראה שהכי קל יהיה להריץ עם github actions, סביר להניח שיש גם מפלייטים מוכנים לפייתון עם pytest
 

s0lid

משתמש סולידי
הצטרף ב
13/12/20
הודעות
47
דירוג
66
בגדול שווה שתנסה לעקוב אחרי העקרונות הבאים:

1. ה-branch המרכזי שלך (במקרה שלך main) צריך להיות נעול לpush (כלומר שאפילו לא תוכל לדחוף לשם קוד ככה סתם גם אם תרצה)
2. דחיפת קוד חדש ל-main תתבצע אחרי השלמת Pull Request (מעין בקשה לשינוי, באותה בקשה אתה יכול לבקש מאנשים אחרים שיסתכלו על הקוד שלך, להריץ כלים אוטומטים וכו' - ברגע שאתה מסיים את ה Pull Request רק אז הקוד נכנס אל ה main
3. כחלק מהקריטריונים בכלל להיות מסוגל לסיים את ה Pull Request אתה צריך להגדיר Build שרץ על Build Server שרק אם הוא מסתיים בהצלחה אתה מקבל אישור להיות מסוגל לסיים את ה Pull Request

בקשר לכלים נפוצים כבר הגיבו לך,
הקשר ל unit tests הוא שה-Build הזה בסעיף 3 הולך להריץ אותם ולצפות שהם יעברו בשביל לתת את ה OK להמשיך הלאה. ככל שיהיו לך טסטים יותר מקיפים ואיכותיים כך יש סיכוי יותר קטן שאתה או מישהו אחר יצליח להכניס קוד ששובר את הלוגיקה.

יש עוד הרבה בדיקות אחרות שאפשר להריץ ברמה של ה Pull Request שיבדקו עוד דברים אחרים (אבטחה, איכות קוד, כיסוי קוד ועוד)
שווה לך לקרוא על CI CD, release gating

בהצלחה!
 

teeto

משתמש ותיק
הצטרף ב
6/12/18
הודעות
109
דירוג
100
יש פודקאסט שנקרא 'מפתחים חסרי תרבות'. חפש את הפרק עם רן בר זיק על ci cd
האזנתי. היה מלמד ומעניין, תודה.
אגב, עוד המלצות על פרקים ספציפיים?

א) עוד סיבה לא לכתוב בפיית'ון
פיספסתי אותך. מה הסיבה?
(גילוי נאות: חולה על פייתון)
 

DERONDA

משתמש ותיק
הצטרף ב
15/9/16
הודעות
97
דירוג
68
עצה שלי: לפני שאתה מתחיל לעבוד תפתח מחיצה חדשה ותעתיק אליה את כל הקוד,באמצעות XCOPY, ותן לה שם יחודי

אחרי כל התיקונים תיצור עוד מחיצה ותשווה את המחיצות בעזרת DIFFMERGE

ההשוואה תראה לך את כל הקוד ששינית
=================================
אם תכין סקריפטים זה אמור לקחת חלקיק שניה
 

ofrine

משתמש סולידי
הצטרף ב
9/2/20
הודעות
26
דירוג
17
כי זו שפה עם טיפוסים דינמיים, ובלי טסטים עם כיסוי מאוד גבוה לא תדע ששברת משהו עד שתגלה את זה מאוחר מדי בפרודקשן.
כמות הטסטים (אמורה) להיות דומה/זהה בין השפות, אבל בשפה דינמית הכתיבה/קריאה של הקוד עצמו הרבה יותר נעימה.
 

מתכנת

מודרטור
הצטרף ב
10/2/16
הודעות
9,129
דירוג
8,214
עצה שלי: לפני שאתה מתחיל לעבוד תפתח מחיצה חדשה ותעתיק אליה את כל הקוד,באמצעות XCOPY, ותן לה שם יחודי

אחרי כל התיקונים תיצור עוד מחיצה ותשווה את המחיצות בעזרת DIFFMERGE

ההשוואה תראה לך את כל הקוד ששינית
אני עושה את הפרקטיקה הזו אבל דרך git branchs, יש כלים להשוות בין branches, הרבה יותר נקי ובטוח מאשר להתעסק עם hard copy של תיקיות
הייתי שמח אילו עם כל דחיפה של שינויים לmain (או כל branch אחר)
יתבצעו מספר בדיקות אוטומטיות, לוודא שלא שברתי שום דבר בקוד.
אתה עובד לבד עם עם צוות ? יש devops ?
א) עוד סיבה לא לכתוב בפיית'ון
לא הבנתי אותך, מהם הסיבות מעבר למה שענית על dynamic types ?
 

roneng

משתמש בכיר
הצטרף ב
21/2/17
הודעות
13,938
דירוג
11,840
עצה שלי: לפני שאתה מתחיל לעבוד תפתח מחיצה חדשה ותעתיק אליה את כל הקוד,באמצעות XCOPY, ותן לה שם יחודי

אחרי כל התיקונים תיצור עוד מחיצה ותשווה את המחיצות בעזרת DIFFMERGE

ההשוואה תראה לך את כל הקוד ששינית
=================================
אם תכין סקריפטים זה אמור לקחת חלקיק שניה
למה לא לעשות פשוט git diff?
כל הרעיון של עבודה עם מערכות ניהול קוד (גיט ודומיו) זה בדיוק לדעת מה שינית בכל פעם. למה לעבוד בצורה עקומה עם תיקיות?
 
נושאים דומים
פותח הנושא כותרת פורום תגובות תאריך
W שאלה טכנית - איך למשוך קופת גמל להשקעה מבלי לשלם מס ע"י קיזוז מול נקודות זכות מיסים 1
tomchoook שאלה טכנית לגבי קניה בלאומי טרייד ברוקרים ופלטפורמות מסחר 3
stamEhad בניית תמהיל תיק השקעות שכולל הלוואה (שאלה טכנית) שוק ההון 3
O שאלה טכנית לגבי טופס 1301 מקוון: דיווח מס הכנסה ליחיד מיסים 1
עייף ומותש סעמק שאלה טכנית פוסטים מאיכות נמוכה 7
A שאלה טכנית על טופס 1301/135: איפה לרשום מס שנוכה במקור מדיבידנדים? מיסים 2
R שאלה טכנית לגבי ספר פקודות פוסטים מאיכות נמוכה 0
N שאלה טכנית לסולידים שוק ההון 12
לאונל שאלה טכנית בנוגע להעברת קרן מנוהלת ל-IRA שוק ההון 1
O שאלה טכנית על שעות שניתן לסחור בהן שוק ההון 4
מ שאלה טכנית על אופציות דולר שוק ההון 0
נ שאלה טכנית - אפשר לתת שתי פקודות לימיט בכיוונים שונים? שוק ההון 2
שניצלוינאי שאלה טכנית tws trade alerts שוק ההון 1
נ שאלה טכנית של מתחילים - איתור ני"ע מתאים שוק ההון 1
I שאלה טכנית בקשר לקניית קרנות נאמנות דרך אקסלנס שוק ההון 1
Ann LaSwan האקסולידית שאלה טכנית צרכנות פיננסית 3
pyrocks שאלה טכנית - הסבר על שערי קרן מחקה nikkei שוק ההון 9
ג שאלה טכנית בנוגע למכירה של מניות שוק ההון 1
א שאלה טכנית על קרן מחכה 5121322 שוק ההון 1
W שאלה-שימוש במערכת ספארק ברוקרים ופלטפורמות מסחר 3
ש בן זוג לא עובד, שאלה בטופס 101 מיסים 2
L שאלה לגבי תהליך אישור תמ"א 38/פינוי-בינוי נדל"ן 2
L שאלה על מידע פנים שוק ההון 14
A העברת מטח לארץ- לא שאלה על עמלות צרכנות פיננסית 3
deussex שאלה עבור ההורים לשמירת ערך הון בעו"ש שוק ההון 10
D שאלה בנוגע לקופת גמל להשקעה פנסיה, גמל וקרנות השתלמות 1
M שאלה כללית בנושא דו"ח שנתי מיסים 11
M מאיפה מגיע הרווח? שאלה עקרונית נדל"ן 8
O שאלה בנושא מגן מס בשוק ההון מיסים 5
D שאלה בנוגע לעמלת מסחר מיטב שוק ההון 7
פ קרן השתלמות שאלה על הפקדות וסגירה פנסיה, גמל וקרנות השתלמות 1
F שאלה בנושא מימון / ערבות מדינה אוף טופיק 1
D שאלה נאיבית - השקעה מנייתית בחברות הגדולות בלבד שוק ההון 20
A שאלה על המיזוג בין הלמן לאקסלנס פנסיה, גמל וקרנות השתלמות 7
A שאלה בנוגע לביטוח בריאות - למי שמבין צרכנות פיננסית 2
R שאלה על טופס 101 מיסים 1
Y שאלה בנוגע להחזר עמלות שוק ההון 15
נ אלדורדו Eldorado, המרדף אחרי הגביע הקדוש, או איך לא להפסיד אף פעם בבורסה - שאלה על פסיכולוגיה של משקיעים. אוף טופיק 4
S שאלה לדיון בנושא תיק דיבידנדים Vs תיק מחקה מדדים דיוני עומק על פוסטים מהבלוג 12
A שאלה על msci acwi etf שוק ההון 16
ת ביטוח מבנה - שאלה לגבי אמירה ששמעתי צרכנות פיננסית 1
I שאלה בנוגע לספטמבר בשוק ההון שוק ההון 13
Tsachi01 ניקוי מזגן - שאלה למבינים פוסטים מאיכות נמוכה 14
ב שאלה על דמי הניהול שמופיעים פה בפורום שוק ההון 32
O דמי ניהול בקרן הפנסיה + שאלה על ניהול קרן פנסיה באופן עצמאי פנסיה, גמל וקרנות השתלמות 4
H שאלה לגבי MSCI ACWI שוק ההון 16
R שאלה על נעילת הפסדים ורווחים בעקבות הפוסט "מכפילי כוח" דיוני עומק על פוסטים מהבלוג 5
W שאלה לגבי הלוואה בריבית 0 שוק ההון 24
ב שאלה לגבי סעיפי "הרווח הריאלי" בטופס 1399 - עסקת מס שבח. מיסים 0
S שאלה לגביי שדה 040 בטופס 135 מיסים 11

נושאים דומים

למעלה