ביטול פיצול של בלוקים

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

הסבר על תהליך ביטול הפענוח

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

כיסויים פשוטים ללא חדירה

בהמשך מפורטות שתי סיבות נפוצות לכך ש-"fork" ("זיוף") ופתרונות איך לחזור לקו הראשי:

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

כיסוי נרחב עם מניעת חדירה

קביעת פונקציונליות שפוצלה

הסיבה הסופית שאנחנו רואים שהמשתמשים מתפצלים היא לתקן אתBlockly כדי ליצור פונקציונליות מותאמת אישית שלדעתם לא כלולה באותו זמן ב-upstream. אם ה-fork לא מעודכן באופן משמעותי, יכול להיות שכבר הוספנו את הפונקציונליות שאתם צריכים – כיישומי פלאגין או כרכיבי ליבה. אם תדעו אילו תכונות הוספתם במזלג, תוכלו לתכנן את התכונות שתצטרכו לעדכן.

להבין את הארכיטקטורה

אחרי שתבינו מהן התכונות שמשתמשות בממשקי API ספציפיים ל-fork, כדאי לשקול:

  • האם יש דרך לשכפל אותה לכל תכונה שמשתמשת ב-fork כ-Blockly API?
  • אם נראה שאין לכם אפשרות לשכפל את התכונה באמצעות ממשקי blockly API, תוכלו לפנות אלינו דרך הפורום או לדווח על בעיה ב-GitHub. לאחר מכן הצוות שלנו יבדוק הוספה של ממשקי API כדי לאפשר את ההתאמה האישית.

זיהוי הדרך הלא מתפצלת

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

  • שדרגו אתBlockly ותראו אילו הפסקות: מיד תראו את האזורים שצריך לעדכן בקוד. ניתן להשתמש בנתונים האלה בשילוב עם מה שאתם כבר יודעים הוא התנהגות מותאמת אישית שתנחה אתכם בפיתוח.
  • מחדשים את הקוד כדי להפריד בין התכונות מ-Blockly: כדי לעשות זאת צריך להבין לעומק אילו תכונות מותאמות אישית למזלג ומהן התכונות שהגיעו מ-Blockly. אחרי הפרדה מלאה בין הקוד, צריך להחליף את הגרסה הישנה של blockly בגרסה העדכנית ביותר, ואז לתקן את שאר הבעיות בשילוב.

ממשיכים הלאה

לפניכם כמה כללים שעליכם לפעול לפיהם כמפתחים של blockly בעתיד:

  • באופן כללי, אין להוסיף מחלקות חדשות למרחב השמות שלBlockly. אפשר לרשום שדות בהתאמה אישית או מחלקות אחרות שניתן לרשום בלי להצהיר עליהם בתוך מאגר השמות של blockly או במרחב השמות שלBlockly.
  • אין להסתמך על כלי ה-build של blockly כדי להדר אפליקציה משלכם. אנחנו לא מחשיבים את כלי ה-build שלנו כחלק מ-API הציבורי, ולכן אנחנו עשויים לבצע בהם שינויים שיפגעו באפליקציה שלכם. אם תרצו, אתם אחראים להרכבת הבקשה.

אפשר לפנות אלינו

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