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

כששוטטתי בבאגים של Eclipse בזמן שחיפשתי מידע על משהו, נתקלתי בAttachment של קובץ מוזר שסיקרן אותי:
mylar/context/zip.
לא נתקלתי בזה בעבר, ולא ראיתי שום קשר בינו לבין הבאג.
חיפוש קצר בגוגל הביא אותי לדף הזה, שמכיל מאמר על “תכנות מונחה משימות עם מיילר”.
חפרתי עוד קצת, ומצאתי גם את המצגת ווידאו הזו, שמתארת איך משתמשים במיילר ומה הוא עושה (40 דקות).
מסתבר שמיילר הוא פרוייקט Eclipse חדש, אחד מני רבים (Eclipse הפכה לחממה של עשרות טכנולוגיות חדשניות), שמתיימר לפתור את הבעיה של עומס מידע בזמן שעובדים עם Eclipse.
mylar screenshot
באופן הבסיסי ביותר, Mylar הוא רשימת משימות, למשימות מקומיות וכן למשימות/באגים ממערכות באגים כמו bugzilla, trac וJira
מה שיפה זה שמיילר מנהל הקשר (Context) לכל משימה בצורה אוטומטית, שמכיל את כל מה שקשור אל המשימה - איזה קבצים פתחת, איזה אלמנטים בתוך הקבצים מעניינים (במקרה של קוד ג’אווה - איזה פונקציות למשל) וכו’.
ברגע שעוברים לעבוד על משימה, מתחילים מיד מההקשר הקודם של המשימה (ריק בהתחלה), ואחרי שעוברים למשימה אחרת, ההקשר נשמר - מוכן להשלף אוטומטית ברגע שחוזרים לעבוד על אותה משימה.
דמיינו את הסיטואציה הבאה:
אתם עובדים על איזה באג/פיצ’ר לתומכם, ופתאום יש מקרה חירום וצריך לתקן באג חדש ולייצר גרסא חדשה של הdemo מאתמול.
לפני מיילר, מה שזה אומר זה שצריך להתחיל להזכר מה צריך כדי ליצר גרסא חדשה, לפתוח קבצים חדשים, כנראה גם לסגור את כל מה שקשור לבאג שעבדתם עליו.
עכשיו, נניח שהבאג הזה בכלל שייך למישהו אחר בצוות, אז צריך להעביר את העסק עליו ואז להזכר מחדש איפה הייתם ומה עשיתם, לסגור את הקבצים שקשורים לבאג בdemo, לפתוח את הקבצים של הבאג שעבדתם עליו ולהמשיך לעבוד.
כל הסחות הדעת האלו יגרמו לכך שגם תבלו איזה עשר דקות בynet בין המשימות, סתם כדי לנקות את הראש.
עם מיילר, אפשר לעבור בקלות בין ההקשרים, בלי לבזבז זמן ותאי זכרון יקרים.
מיילר מייעל גם עבודה בצוותים: את ההקשרים האלו, שכוללים בעצם ריכוז של ידע על אותו באג, אפשר לצרף לבאג עצמו, ככה שהמפתח הבא יוכל פשוט למשוך את ההקשר מהבאג ולהמשיך מאותו מקום שאתם עצרתם. (כל הקבצים פתוחים, כל הפונציות שרלוונטיות לדעתכם כבר יהיו בהקשר, וכו’).
Eclipse הוא כבר מזמן לא כלי לפיתוח Java בלבד, כבר היום הוא תומך בC/C++, PHP, Prolog ועוד, מיילר אמור לתת ערך מוסף לתכנות בלי קשר לשפה, כל עוד אתם עובדים בתוך Eclipse - אם כי אני לא בטוח שהוא באמת מוכן לשפות אחרות עדיין.
יתרון נוסף הוא התמיכה האוטומטית בקבוצות שינויים (Changeset) כשעובדים מול מערכת ניהול גרסאות הקוד (CVS/SVN וכו’).
מה שזה אומר זה שמיילר ינהל בצורה אוטומטית את הChangeset שקשור לבאג שאתם עובדים עליו, ואפילו יכלול הודעת Commit אוטומטית כשתעשו Commit!

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

יש לינקים עם עוד מידע פה.

25 תגובות ל “תכנות ממוקד משימות - Mylar”

  1. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    שלום עמרי,

    זה בדיוק הזכיר לי שאלה שרציתי לשאול:

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

    כאשר כתבת את FireStats ב- PHP, במה השתמשת? באיזה כלי פיתוח?

  2. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

    לא פיתחתי בדוט-נט, אבל ממה שראיתי, הVisual studio .net הוא שיפור גדול לעומת VC6, אבל ממש ממש לא הכי טוב שיש.
    רוב הIDEים שראיתי לג’אווה לוקחים אותו בסיבוב, במיוחד Eclipse (הם פשוט לא באותה ליגה).

    לגבי FireStats, כתבתי אותו תוך שימוש בvim, שהוא עורך טקסט לא גראפי.
    עכשיו שהתקנתי את מיילר, התקנתי גם את PHPEclipse שהוא תוסף Eclipse שמאפשר עבודה עם PHP, אבל עדיין לא עבדתי איתו מספיק בשביל שתהיה לי דעה מוצקה לגביו.

  3. שמחה זה אנחנו » בהמשך למשחק התיוגים UNITED STATES WordPress wordpress כותב/ת

    [...] מתייג את מהלב והמח, ניצן, עמרי, גם אבא יש רק אחד, סניץ’ אוקלנד סמית’ – בלש פרטי [...]

  4. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    אה, אוקיי.

    דרך אגב, כדי לנסות ולראות את התגובות שלך בזמן אמת, אני משתמש ב- co.comments.com.

    הבעיה היא שלא מקבלים את התגובות בזמן (קיבלתי את התגובה עכשיו, ואילו אתה שלחת אותה לפני יותר משלוש שעות). אני גם משתמש ב- RMail לצורך קבלת עדכוני RSS, וגם הם כמובן לא שולחים בזמן אמת. וכך לא גם שירותים אחרים שניסיתי. זה די הגיוני. המסקנה היא שאין כיום תחליף לקורא RSS בצד הלקוח.

    בנוסף, הם עושים Escaping לתווים בעברית, כך שזה מה שקיבלתי בשורת הנושא:

    Re: תכנות ממוקד משימות - Mylar

    (הופיע בשורה אחת כמובן)

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

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

    אבל איך הסתדרת עם עניין עריכת ה- GUI? הרי זה לא מעשי כיום ליצור GUI עם עורך טקסט. האם זה בגלל שה- GUI לא היה משמעותי בפרוייקט הזה?
    ב- VS אתה יוצר GUI באמצעות גרירה והטלה, בדומה לבנייה של תוכנה ב- Visual Basic. גם כתיבת הקוד נעשת בצורה דומה, וכאן אני חושב שתסכים איתי בהמשך למה ששאלתי אותך בדוא”ל פעם, שזה סוג של הפשטה, כי אתה עובר מכתיבה של קוד HTML ומשלימיו לעבודה עם אובייקטים של כמו VB וקוד VB/סי שארפ משלימים.

  5. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

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

  6. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    עמרי,

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

    אבל האם אתה סבור שאפשר ליצור ממשק GUI (כולל, נניח, AJAX) מורכב ועדיר באמצעות כתיבת קוד ישירה, ללא שום שימוש בכליי WYSIWYG? אני מאוד בספק.

  7. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

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

  8. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    אוקיי.

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

  9. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

    רמז, מתחילים עם נייר ועט :).

  10. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    אה, עוד משהו:

    אם יש לך דוגמאות לממשקי משתמש גרפיים ציבוריים שכתבת HTML והרחבותיו באמצעות VIM או דומייו, מלבד ה- Firefstats שאותו אני מכיר (והוא אכן מרשים), אשמח אם תאמר לי.

  11. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

    אין כי לא כתבתי עם ממשקי WEB ששווה לדבר עליהם.
    FireStats הוא הפרוייקט Web הראשון שלי.

  12. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    אה, אוקיי.

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

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

  13. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

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

  14. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

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

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

    מה שמוביל אותי לעוד שאלה, ברשותך (רק אם יש לך זמן):

    האם Eclipse עבור JAVA הוא כמו VS עבור VB או סי שארפ, כלומר יש לו עורך GUI גרפי?

  15. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

    אין שום דמיון בין לכתוב ממשק משתמש לבן לכתוב תוכנית באסמבלי.
    ממשק משתמש מודרני בנוי מאלמנטים ברמה מאוד גבוהה (high level), לא מדובר על handleים לחלונות, event loops וכדומה כבר מזמן.
    הדברים האלו קיימים, אבל הם מוסתרים מאחורי ממשק מונחה עצמים נוח.

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

  16. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.7 כותב/ת

    לגבי “ממשק משתמש מודרני בנוי מאלמנטים ברמה…”: תאמין או לא, הבנתי את זה באופן אינטואיטיבי לבד. כלומר, זה קצת מה ש- framework אמור לעשות, כמו framework ל- ajax הכתוב ב- JS: למשל, אם אתה יוצר חלון, אתה לא צריך לומר לו איפה בדיוק אתה רוצה את התפריטים, אתה רק מציין רשימה של תפריטים והוא כבר מסדר אותם איפה שצריך בחלון. אני מקווה שאני לא כותב פה שטויות, אבל ברור לי למה אתה מתכוון.
    ומכאן אתה יכול להבין שההשוואה לא הייתה לפיתוח GUI באסמלי, אלא, למשל, כתיבת תוכנית באסמלי במקום ב- C. בכל אופן אני מקבל את דבריך.

    ולגבי Eclipse: תודה על התשובה.

  17. אח"י דקר ISRAEL Windows XP Mozilla Firefox 2.0.0.1 כותב/ת

    יונתן, אני עם עמרי כאן, אני כותבת הכל אך ורק ב VIM - כולל ממשקים. זו הדרך היחידה בה אתה באמת שולט במה שקורה ואיך - אני לא סומכת על ממשקים מתוחכמים שיעשו בדיוק מה שאני רוצה.
    אם אתה רוצ טפסים וככה בקלות - כנראה שהפתרון הטוב ביותר שעדיין מסתמך על hands-on הוא ROR, אני לא שם.

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

  18. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.8 כותב/ת

    אח”י (או אולי עלי לומר: אחות”י (-:), אחרי שקראתי את ההסברים של עמרי אני מסכים איתו. אני לא מתכנת מקצוען ולא כתבתי כלל גואים בשפה כמו JAVA שנהוג לכתוב ב- GUI באמצעות כתיבת קוד ישירה (לעומת, למשל VB ששם זה לא נהוג), כך שזה נראה לי מוזר. מה שנראה מוזר זה האופן בו מתכננים את הממשק: איך אפשר להתחיל לכתוב בלי לדעת איך זה צריך להיראות, איך האלמנטים צריכים להסתדר, וכ’? העין ויזואלית, כתיבת הקוד לא, כך שקצת קשה לי להבין את זה.

    אבל זה באמת לא נושא שאני יכול לשאול עליו יותר מידי כי אין לי ניסיון בזה, סביר להניח שאם הייתי מתכנת בשפה כמו JAVA הייתי מסכים אתכם מייד. בכל אופן ההסבר שהוא נתן בתגובה מס’ 15 נראים לי הגיוניים, כך שאני מתחיל להבין למה הכוונה.

    וגם אני משתמש ב- VIM. התוכנה הזו היא אכן יצירת מופת.

  19. עמרי ISRAEL Debian GNU/Linux Mozilla Firefox 2.0.0.1 כותב/ת

    אח”י דקר, אני משתמש בEclipse בתור סביבת הפיתוח הראשית שלי אולי חמש שנים כבר, אז התשובה היא שלא, אני לא מתחיל :).
    השימוש המרכזי שאני עושה בEclipse הוא פיתוח ג’אווה.
    מה שכן, אני מתחיל לעבוד עם Eclipse לפיתוח ווב (PHP).

  20. אח"י דקר ISRAEL Windows XP Mozilla Firefox 2.0.0.1 כותב/ת

    הממ… התכוונתי לסביבת פיתוח PHP
    בשאר הזמן אני מפתחת על לינוקס ב VIM (אם בכלל) ועבור embeded כך שאני לא מחפשת IDE.
    מערכת פיתוח מלאה ל PHP יכולה להיות מאד מעניינת.

  21. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.8 כותב/ת

    יש מערכת פיתוח מלאה של ZEND, אך היא לא חופשית. (אבל את בטח יודעת את זה…).

    מה זה אומר Embeded מבחינתך? איזה מעבד ומערכת הפעלה?

  22. יונתן אורלב ISRAEL Windows XP Mozilla Firefox 1.5.0.8 כותב/ת

    תיקון לשאלה על Embeded:
    צריך להיות:
    מה זה אומר Embeded? איזה מעבד ואיזו מערכת הפעלה?

  23. עמרי ISRAEL Windows XP Mozilla Firefox 2.0.0.1 כותב/ת

    אח”י, אני אשתדל לכתוב איזו סקירה כשיהיה לי מה להגיד בנושא.

  24. מחשבות, מחשבים, ושאר דברי בלע. » פיתוח PHP עם PDT UNITED STATES WordPress 2.0.2 כותב/ת

    [...] היסטורית, מפתחי PHP תמיד היו מקופחים. בזמן שמפתחים לשפות אחרות נהנו מסביבות פיתוח מתקדמות, עם יכולות דיבאג (נקודות עצירה, בדיקת ערכי משתנים בזמן ריצה ועוד), השלמת קוד תלויית הקשר ועוד, הרוב המכריע של מפתחי הPHP השתמשו בעורכי טקסט פשוטים יחסית (ואני לא מזלזל בVIM ובEmacs). את FireStats התחלתי לפתח כאשר לא ידעתי כמעט כלום על PHP, ובוודאי שלא ידעתי על סביבות הפיתוח המומלצות לפיתוח בPHP, כך שהתחלתי את הפיתוח בשימוש בVIM ישירות על שרת הפיתוח שלי (המחשב בסלון), והייתי מרוצה מהתוצאות. לפני מספר חודשים נתקלתי בMylar, שאיפשר לי התממשקות נוחה למערכת ניהול הבאגים של FireStats, שעובדת על trac. החלטתי שזה שווה את המאמץ של המעבר, והתחלתי לחפש פתרון PHP לEclipse. בהתחלה מצאתי את PHPEclipse, פלאגין שעובד די טוב, אבל כמה באגים עיצבנו אותי, ושמתי לב שהפרוייקט די רדום, אז נטשתי אותו לטובת PDT שמפותח כתוסף רשמי של פלטפורמת Eclipse, בעיקר על ידי מפתחים של Zend. [...]

  25. מחשבות, מחשבים, ושאר דברי בלע » Blog Archive » פייתון וPydev UNITED STATES WordPress 2.2.1h כותב/ת

    [...] התקנתי את pydev, תוסף Eclipse שמאפשר פיתוח פייתון בסביבת Eclipse. ההתקנה, כמו בדרך כלל - היא דרך אתר עדכון אוטומטי. הסביבה כוללת Debug, השלמה אוטומטית, Refactoring ועוד הרבה דברים טיפוסיים לEclipse. בנוסף, יש לה אינטגרציה לMylyn - לשעבר Mylar. (עוד על Mylyn בפוסט הזה). [...]

השאר תגובה

FireStats icon Powered by FireStats