הערות מהבודק הלא אוטומטי:

[“עלול להכיל ספוילר לפתרון התרגיל”]

מה פירוש: “מספרים שמסתובבים בקוד ללא פירוש”?

לא ברור לי אם ההערה מופיעה משיקולים של:

-קריאות הקוד. (מספרים מסתובבים ללא פירוש)
*שימוש במשתנים x, y? - אלו קואורדינטות.
*פונקציה ששמה לא לא ספציפי מספיק? - אולי יכולתי להוסיף: “קואורדינטות” לשם הפונקציה?

-יעילות? (מספרים מסתובבים ללא פירוש)
אולי האופן שבו פייתון מתנהל עם מספרים הוא כבד, וים מנסה לאתגר אותי לעקוף את זה?

-אבטחת מידע? (מספרים מסתובבים ללא פירוש)?

זה.

דוגמה טובה לכך (ונפוצה מאוד בקוד של מתחילים ומתקדמים כאחד) היא if weekday == 5.
מי הוא weekday 5? האם הוא חמישי, או שמא יום שישי (היום החמישי בשבוע ברוב מדינות העולם?)
היה הרבה יותר ברור ובלתי נתון לפרשנות לו היה כתוב if weekday == FRIDAY.

עוד דוגמה היא if len(password) > 7.

  1. מה אם נצטרך להשתמש במספר שוב במקום אחר בקוד? נציין כל פעם 7?
  2. מה אם נרצה לערוך את הקוד? נצטרך למצוא את המספר הזה במעמקי ה־codebase שלנו?
  3. מה 7? מה יקרה בתוך התנאי? אם שם המשתנה היה MIN_PASSWORD_SIZE היינו יודעים שבפנים יש דברים חיוביים, וב־else הולכת להופיע שגיאה.

לחפירה נוספת – https://stackoverflow.com/a/33325478/1058671

2 לייקים

כמו 0x5f3759df ב-Quake 3?



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

המשתנים: x, y, בסך הכל מופיעים כשמשתני עזר (לצרכי סינטקס) בתוך פונקציה עם שם די ברור, שמבקשת פרמטרים די ברורים:

def find_black_pixels(pixel_map, width, height):

הפונקציה בת שורה, ואין מה לחטט בה כדי להבין מאיפה הגיעו x, או y, ומה הם באו לייצג.

באשר למה שהפונקציה מחזירה,
השימוש בה בקוד הוא בשורה:

black_pixel_list = find_black_pixels(pixel_map, width, height)

כלומר - המספרים לא “מסתובבים ללא פירוש”, אלא מושמים בתוך משתנה בשם: black_pixel_list.
שגם די מדבר בעד מה שהוא מצביע אליו, וגם קריאה של השורה שבה הוא הוגדר די מספרת לנו מה קרה כאן.


שני התיקונים שאני יכול לחשוב עליהם, הם:

להוסיף את המילה: “Coordinates” לשמות, כך שנקבל:

coordinates_for_black_pixels = find_Coordinates_of_black_pixels(pixel_map, width, height)

אני מניח שזה גם ייתן ל-x ול-y יותר משמעות.
(ולכן לא נצטרך לקרוא להם: “row_in_pixel_map”, או "column_in_pixel_map.

מכיוון שזה נראה לי (אם כי אולי אני טועה) כמו שינוי שאינו הרבה יותר ברור מן המצב הקיים, אני תוהה אם פספסתי משהו.

יכול להיות שההערה מתייחסת ל"1" ולא ל־x, y?

2 לייקים

צרצרים

*הוגש תיקון. :slight_smile:

לייק 1