AMA: שאלות ואיך אפשר לעזור לכם לסיים את שבוע 15

עכשיו כשהתנסתם היטב בכל החומרים של שבוע 15 – איפה אתם מרגישים שקשה לכם במיוחד ותצטרכו חיזוק?
שאלו כל דבר שעולה לכם לראש ואנסה להתייחס אליו באחד מהסרטונים הבאים שייצאו.

3 לייקים

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

4 לייקים

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

תודה!

5 לייקים

אשמח להסבר איך ניגשים לשאלה ומגיעים לפתרון מיטבי של (nlog(n, איזה בעיות (חוץ מסידור) יכולות להיפתח על ידי הסיבוכיות הזו.

לייק 1

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

2 לייקים

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

2 לייקים

היי, קודם כל תודה רבה על ההארכה :slight_smile:

  1. אשמח לחיזוק במחשבה על טסטים ואיך מוסיפים עוד טסטים לפונקציה כשכבר נגמרים הרעיונות לבדיקות אבל עדיין לא הגענו ל 100% כיסוי.
    ואיך בעצם בודקים מצבים כמו פונקציה שרק מדפיסה או פונקציה מנהלת (שמריצה מספר פונקציות אחרות) ולא מחזירות בעצם אף תוצאה.

  2. אשמח לחידודים ולהצגה של “חיבור סיבוכיות”
    כיצד בעצם מחשבים סיבוכיות למערכת אחרי שמחשבים סיבוכיות לפונקציות שבתוכה.

תודה

2 לייקים

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

‏‏אני לא בטוח שהבנתי את הבקשה שלך, @PureDream

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

לייק 1

לא הבנתי איך אני כותב רגקס שתופס רק ביטויים שיש בהם עד מקסימום מתו מסויים. בעקבות תרגיל 2 בadvent of code. למשל יש תנאי לסיסמה שהאות j תהיה בסיסמה פעם אחת עד 3, הבעיה שיכולה להיות סיסמה aajjjjbj שהרגקס{ j{1,3 יתפוס…

אין משהו שיודע לעשות למשל count במצב כזה שה j יכולה להיות מפוזרת לאורך המחרוזת - אתה צריך ליצור מחרוזת שידעת לקבל לפחות j מובנה ועוד 2 אופציונאלים ואת השאר לעשות שזה הכל חוץ מj ואופציונאלי.

לייק 1

מצטרפת לשאלה על הבדיקות לפרויקט בדגש על כל הפונקציות שיוצרות את הdb וכו…

לייק 1

היוש, היתי שמחה אם תדבר בלייב על שני דברים:

  1. ארכיטקטורה של שרת REST המועדפת עליך.
    תוכל להסביר על ההפרדה בין השכבות של הhttp, של הלוגיקה והגישה למודלים של הדיבי ובעיקר איפה מטלפים בשגיאות.
    נניח יש לי שגיאה שמבעבעת מהדיבי אבל את ה500 או 404 ודומיו אני אתן רק בשכבה של הhttp.
  2. יבווא קבצים, אני כל פעם מבזבזת המון זמן להבין איפה אני שמה את הINIT של המודול ולאיזה נתיב אני פונה, קראתי כמה מדריכים ועדין מתפסטנת על זה כל פעם מחדש.
לייק 1

היי,
תודה על הלייב הנוסף, אני אשמח להסבר נוסף לגבי ה fixture.
יש לי פונקציות שצריכות שה user יהיה מחובר ואז אני בעצם צריכה שה user שאני שולחת יעשה גם signup וגם log in. לא לגמרי הבנתי איך אני יכולה לעשות את זה. יש דרך להריץ את שתיהן לפני הבדיקה הספציפית?
לחילופין, האם אני יכולה להשתמש בבדיקות עם נתונים שהוכנסו מראש לדאטה בייס לצורך הבדיקה?
מקווה שהשאלה ברורה, קצת מסתבכת עם זה.
תודה

לייק 1

את יכולה ליצור בטסטים “פונקציות עזר” להשתמש בהן בתוך הטסטים וה-fixtureים, נגיד פונקציית login שעושה post בעמוד הלוגין (בעצם מטריג (trigger) את ה-route הזה באפליקציה). יש פה דוגמא לזה.

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

  1. יצרתי fixture של יוזר שמסמלץ יוזר מחובר, פה עושים יצירה של יוזר וחיבור (פונקציות עזר)
  2. יצרתי fixture של ישות הזו שיורשת את היוזר (כי אפשר ליצור את הישות רק כשמחוברים)
  3. יצרתי טסט שיורש את הישות (וגם היוזר מחובר, כשתוצאה מסעיף 2)
    א. ניתקתי את היוזר מהמערכת (באמצעות פונקציית עזר)
    ב. ניסיתי למחוק את הישות ולבדוק האם התבצע או לא

מקווה שזה עוזר :slight_smile:

לייק 1

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


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

כיוון שזה set comprehension, ראוי להשתמש ב¯set


גם עכשיו הוא לא מרוצה…

נסה לחשוב למה הוא לא מרוצה ואיך אפשר לכתוב את זה בקצרה