היי לכולם
היום outbrain מארחת את הפודקאסט ואיתנו היום אורח, איתי הוכמן.
דיברנו על תכנות מונחה בדיקות והשלכותיו על חיינו.
תודה לאיתי.
כאן הקובץ - ביי
היום outbrain מארחת את הפודקאסט ואיתנו היום אורח, איתי הוכמן.
דיברנו על תכנות מונחה בדיקות והשלכותיו על חיינו.
- אז מה זה בכלל TDD?
- מה זה בכלל נותן לנו? מה נשאר מהמאמץ?
- דרישות -> כתיבת בדיקות -> פיתוח. פעם אחת או מעגל מחזורי.
- בדיקות לפי שורות קוד או מודולים או לפי פונקציונאלית.
- מתי לכתוב את הבדיקות. לפני? אחרי? תוך כדי?!?
- אם יש באג בקוד הבדיקה.
- מי כותב את הבדיקות? המפתח? הבודק?
- שימוש ב - continues integration server והרצת הבדיקות.
- בדיקות אינטגרציה מול בדיקות יחידה.
- הנסיון של רן, מיקרוסופט מול גוגל וגישתם ל- TDD.
- ממילא אנחנו מריצים את הקוד בפיתוח - למה לא להריץ תחת בדיקות היחידה.
- איך בודקים UI? איזה כלים יש? האם אפשר לבדוק אוטומטית?
- כלים: Team-City - JUnit - JMeter
- טירונות בגוגל ואח"כ המסלול לבגרות באיכות קוד.
- TOTT - הגרסה הגוגלית ל"עד מתי נובמבר..." על הקיר בשירותים.
- כמה מהר לתקן בדיקה שנכשלה? מתי יוצרים פתח לשכונת עוני.
תודה לאיתי.
כאן הקובץ - ביי
הי,
השבמחקאחלה פוסט.
היה נחמד אם הייתם מקדישים פוסט לנושא
performance,scalabillity,N+1 וכו'
איל
רעיון מצויין - אייל
השבמחקנכניס לרשימה.
יש מומחה מסויים שנראה לך ששווה לארח בנושא הזה?
רגע של עברית - introduce - אולי בהקשר הזה מתאים לומר "להציף"?
השבמחקאה - ודרך אגב, אחלא פודקאסט, וגם השניים הקודמים - הדיון על הדיבגר היה בהחלט מעורר ומעניין.
השבמחקלגבי בדיקות - שווה גם להזכיר שיש כל מיני סוגים של בדיקות, לכל אחד יתרונות וחסרונות ומטרות שונו - החל מ-smoke test לבדוק שמשהו שכתבת פשוט עובד (אפילו במקרה אחד או שניים) דרך boundary tests שעוזרות לגלות את הפינות החשוכות בקצה הסקאלה ובאגים בסגנון "אופס שכחתי אחד", בדיקות מול מידע אמיתי או אפילו מול כל המידע האמיתי, בדיקות מול נתונים אקראיים... הרבה פעמים אפשר לפתח מודלים מאוד מעניינים של בדיקות, בלי שום קשר לקוד! :-)
ולפינה הביבליוגרפית: אני ממליץ על המאמר הקריא "Beautiful Tests" http://media.techtarget.com/searchSoftwareQuality/downloads/BeautifulTests.pdf מתוך הספר "Beautiful Code" (יש כאלו שטוענים ששם הספר הוא אוקסימורון).
מחכים לפודקאסט הבא!
אודי
אני רק בקשה...
השבמחקשמות הקבצים (או הכותרות שלהם) בעברית קצת בעייתיים כי אייפוד קלאסיק דור 4/5 לא תומך בעברית. יש סיכוי שתשנו את שמות הקבצים (או ה ID3) למשהו שייתמך באייפוד?
תודה...
אורי,
השבמחקאני לא מכיר מומחים. אבל אני בטוח שבגוגל יש מומחים.
אולי מישהו מ GigaSpaces יש להם מוצר שעונה על הבעיה
(לא מכיר מישהו משם באופן אישי).
נ.ב
זו בעיה מאד כואבת איפה שאני עובד יש לנו תשתיות של 5 שנים שלא תוכננו להיות scalable ועכשיו שאנו עומדים בפני עומסים לא אנושיים אנחנו כנראה נצטרך לעשות refactoring לתשתית שתהיה scalable דבר לא פשוט בכלל שצורך הרבה משאבים.
איל
הי,
השבמחקאחלה פודקאסט, אבל למרות שדובר בו רבות על טסטים, לא שמעתי כמעט כלום על TDD, שיש לו רק קשר נסיבתי לבדיקות עצמן. הרעיון ב-TDD הוא שיש להתנסות קודם בכתיבת קוד לקוח שמשתמש בקוד שאתה מתכוון לכתוב. ההתנסות הזו תלמד אותך על הצרכים מהקוד שלך ותלטש את הממשק שלו. כשקוד הלקוח מוצא חן בעינייך כמפתח (מעט בוילרפלייט, מינימום חזרות מקסימום משמעות, קריאות וכו'), אתה ניגש לממש את הממשק שלו. ממש במקרה, המקום הכי הגיוני לכתוב כזה דבר זה בטסטים שלך. ברור שהרווח כפול ומכופל והרווחת גם טסטים כתוצרים חשובים ביותר. אבל התובנה הגדולה של TDD היא שהשיטה הזו מאד עוזרת למקד את המפתח וללטש את הממשק. אחרת למה לכתוב את הבדיקה לפני ולא בכל זמן אחרי?
אופיר
הי אופיר, אני חושב שיש מספר יתרונות ל TDD ואחד מהם הוא אכן זה שהזכרת אז תודה על התוספת.
השבמחקתשובה לאיל
השבמחקצור איתי קשר ב- אורי [דוט] רברסים [דוט] קום
אולי אוכל לסייע מנסיוני לפני שנקליט את הפודקאסט.
תודה על הפודקאסט המעניין.
השבמחקרק מה שהיה חסר לי בהקשר של continuous integration זה דיון על כלים כמ Maven, Ant. מעוד מעניין אותי באילו כלים לבניה ואריזה משתמשים בגוגל וב- outbrain . יש מצב לשיחה בנושא הזה בפודקאסטים הקרובים?
בגוגל משתמשים בכלים פנימיים שלצערי לא אוכל לדבר עליהם. אלו כלים מאוד חזקים ומעניינים יחד עם זאת הם תפורים לאפליקציות של גוגל ובכל מקרה לא ניתנים לפרסום.
השבמחקאיתי הזכיר את clear-case אם אינני טועה שמשמש את outbrain ל continuos integration.
אולי אורי יוכל להרחיב מעבר לכך.
כן...
השבמחקכלי הפיתוח באאוטבריין הם בעיקר:
ECLIPSE לפיתוח
SVN לניהול הקוד והתצורה
ANT לבניה
ו- Team-city מבית IDE-A כשרת בניות והרצת בדיקות שבגדול מפותחות ב- JUNIT.