קורס Python 3 שיעור תרגול פרויקט מלא


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/python/lessons/30-project-lab

היי @ynonp, בצעתי את שני התרגילים. מקווה שהם עונים על דרישות הקורס.
באחד יצרתי exceptions (בעיקר כחלק מלימוד) ובשני לא (למרות שהמקרים זהים בשני המשחקים). באחד מימשיתי את קובץ/מודול ניהול המשחק כמחלקה ובשני כאסופה של פונקציות - כך שהקוד:

if __name__ == "__main__":

באחד יוצר מופע של המחלקה ודרכו קורא למתודה המריצה את המשחק.
בשני קורא לפונקציית main שמריצה את המשחק (כשלפחות אובייקט לוח המשחק מועבר מפונקצייה לפונקצייה כי אינו יכול להיות “תכונה” של אובייקט המשחק).
לא בטוח מה מהם נכון יותר למימושים האלו ובכלל.

משחק איקס עיגול

  • השתדלתי לתת כיסוי רחב של הקוד עם בדיקות יחידה (שכוונו להיות מופעלות ע"י Travis CI ב-GitHub).
  • העברתי את הקוד בדיקת pycodestyle (עם התעלמות נקודתית משני חוקים ושינוי אורך שורה מיריבי). גם היא מורצת אוטומטית ע"י Travis CI ב-GitHub.

משחק זיכרון

  • שתי תכונות הבונוס מומשו (ועוד קצת תוספות שלי).
  • כיסוי בדיקות יחידה חלקי (רק [לרוב] מודול לוח המשחק). גם כאן כוונו להיות מופעלות ע"י Travis CI ב-GitHub.
  • עובר בדיקת pycodestyle (בדומה לחבילה של איקס עיגול).
לייק 1

הי,

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

https://docs.pytest.org/en/latest/example/parametrize.html

ראיתי שמימשת משהו דומה לבד אבל אין לך מנגנון שמוודא שבאמת כל ה assert-ים רצו. אם מאיזושהי סיבה בקוד הלולאה היה באג או דילוג אתה עלול לא לראות את זה בבדיקות. ב pytest בגלל שהמנגנון יותר מסודר הם בודקים גם את זה.

בדיוק מתכנן ללכת מחר ל-meetup של גאבור בנושא:

לייק 1