כתיבת קוד — שיעור 22
Build, Deployment ו-Code Review
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T2 · בסיסי200 נק'~15 דק'build
פרסור קובץ .env
ממש parse_env(text) שמפרק תוכן קובץ .env למילון. דלג על שורות ריקות ועל הערות (מתחילות ב-#). כל שורה KEY=VALUE: התעלם מקידומת 'export '; קצץ רווחים סביב המפתח והערך; הסר מרכאות עוטפות (' או ") מהערך; פצל על ה-'=' הראשון בלבד (כך ש-'=' בערך נשמר). שורה בלי '=' — דלג.
דוגמאות
'A=1\n# comment\nB="two words"\nexport C=3' → {'A':'1','B':'two words','C':'3'}
'URL=http://x?a=1&b=2' → {'URL':'http://x?a=1&b=2'}
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני350 נק'~22 דק'build
סורק סודות מוקשחים (Pre-commit)
בדיקת production: אף פעם לא מכניסים סודות ל-git. ממש scan_secrets(lines) שמחזיר רשימת (מספר_שורה, סוג) עבור סודות מוקשחים. זהה: (1) מפתח AWS בתבנית AKIA + 16 תווי [0-9A-Z] → 'aws_key'; (2) השמה למשתנה בשם password/secret/api_key/token עם מחרוזת מילולית לא-ריקה → 'secret_assignment'. שורות שקוראות ממשתנה-סביבה (בלי מחרוזת מילולית) אינן סוד. מספור שורות מ-1.
דוגמאות
['x=1', 'password = "hunter2"', 'y=2'] → [(2, 'secret_assignment')]
['key = "AKIAIOSFODNN7EXAMPLE"'] → [(1, 'aws_key')]
הפתרון נשמר מקומית אוטומטית.