כל מפתח תוכנה יכול לבנות, לבדוק ולארוז ביעילות כל פרויקט, בכל גודל או מורכבות, באמצעות כלי שקל לאמץ ולהרחיב.
מהנדסים יכולים להשתמש ביסודות הבנייה כדי לקבל אותם. מפתחי תוכנה מתמקדים בתהליך היצירתי של כתיבת קוד מפני שהתהליך המכני של בנייה ובדיקה מפוענח. בעת התאמה אישית של מערכת ה-build כדי שתתמוך בשפות חדשות או בצרכים ארגוניים ייחודיים, המשתמשים מתמקדים בהיבטים של הרחבה שהיא ייחודית לתרחיש לדוגמה שלהם, ללא צורך להמציא מחדש את השרברבות הבסיסית.
מהנדסים יכולים לתרום בקלות לכל פרויקט. מפתח שרוצה להתחיל לעבוד על פרויקט חדש יכול פשוט לשכפל את הפרויקט ולהפעיל אותו. אין צורך בהגדרה מקומית – זה פשוט עובד. ההפעלה מרחוק של הפלטפורמות השונות יכולה לעבוד בכל מחשב בכל מקום ולבדוק את השינויים שלהם מול כל הפלטפורמות שאליהן הפרויקט ממקד. מהנדסי תוכנה יכולים להגדיר במהירות את ה-build לפרויקט חדש או להעביר בהדרגה דגם קיים.
ניתן להתאים את הפרויקטים לכל בסיס קוד בכל גודל, לכל צוות גודל. בדיקה מהירה מצטברת מאפשרת לצוותים לאמת באופן מלא את כל השינויים לפני ביצועם. הדבר נכון גם כאשר המאגר גדל, פרויקטים מתפרסים על פני כמה שפות ומוצגות שפות מרובות. תשתיות אינן מאלצות את המפתחים לסחור בכיסוי של בדיקות מהירות הבנייה.
אנחנו מאמינים שלבאזל יש פוטנציאל להגשים את החזון הזה.
Bazel נבנה מלכתחילה על מנת לאפשר דגמים שניתן לשחזר (קבוצה נתונה של קלט תמיד תיצור את אותם פלטים) והיא ניידת (ניתן לבצע build בכל מכונה מבלי להשפיע על הפלט).
המאפיינים האלה תומכים בצמחיות בטוחות (בנייה מחדש של קלט בלבד משתנה, לא מסכנת שחיתות) והבדלות (פעולות build מבודדות וניתן להסיר אותן). על ידי צמצום הפעולות הנדרשות לצורך ביצוע בנייה נכונה ופעולה מקבילה לעבודה במספר ליבות ומערכות מרוחקות, Bazel יכולה להאיץ כל בנייה.
שכבת ההפשטה של בזל — הוראות ספציפיות לשפות, לפלטפורמות ולכלי כלים המוטמעים בשפה פשוטה של יכולת הרחבה — מאפשרת להחיל אותה בקלות על כל הקשר.
כישורים בסיסיים של Bazel
- Bazel תומכת בבדיקות ובגרסאות build של ריבוי פלטפורמות. אתם יכולים להריץ פקודה יחידה כדי לבנות ולבדוק את כל עץ המקור, ללא קשר לשילוב של שפות ופלטפורמות שאליהן אתם מטרגטים.
- לוחות בנייה של בזל מהירים ונכונים. כל בנייה ובדיקה מצטברות, במחשבים של המפתחים וב-CI.
- Bazel מספקת שפה אחידה וניתנת להרחבה כדי להגדיר גרסאות build לכל שפה או פלטפורמה.
- Bazel מאפשרת לבניית קנה מידה של הדגמים שלך על ידי התחברות לשירותים של ביצוע ושמירה במטמון.
- Bazel פועלת בכל פלטפורמות הפיתוח העיקריות (Linux, MacOS ו-Windows).
- אנחנו מאשרים ששימוש בבזל דורש מאמץ גדול, אבל אפשר לאמץ אימוץ הדרגתי. Bazel ממשקים עם כלים דה-פקטו סטנדרטיים לשפה/פלטפורמה נתונים.
קהילות המשרתים את השפה
הנדסת תוכנה מתפתחת בהקשר של קהילות שפות – בדרך כלל, ארגון עצמי של קבוצות אנשים שמשתמשים בכלים ובשיטות עבודה נפוצות.
כדי להשתמש בחברים של קהילת שפות, חובה ליצור כללי בזל איכותיים שמשתלבים עם תהליכי העבודה והמוסכמות של אותה קהילה.
Bazel מחויבת להיות מורחבת ופתוחה, ותומכת בכללי כללי בכל שפה.
דרישות של בעל כללים טוב
- הכללים חייבים לתמוך בבנייה ובדיקה יעילות לשפה, כולל כיסוי קוד.
- הכללים צריכים לעבוד עם "מנהל חבילות" נפוץ בשפה הזו (כגון Maven ל-Java) ולתמוך בנתיבי העברה מצטברים ממערכות build נפוצות אחרות הנתונים.
- הכללים צריכים להיות מתרחבים ולפעול במשולב, בהתאם לעקרונות "כריך בזל".
- על הכללים להיות מוכנים לביצוע מרחוק. בפועל, המשמעות היא שניתן להגדירו באמצעות המנגנון keychains.
- הכללים (ושל Bazel) צריכים ליצור ממשק IDE שנמצא בשימוש נרחב לשפה, אם יש כזה.
- לכללים צריך להיות תיעוד יסודי ונוח לשימוש, עם חומרי מבוא למשתמשים חדשים, ומסמכים מקיפים למשתמשים מומחים.
כל אחד מהפריטים האלה חיוני לחלוטין, ויחד הם מספקים את היכולות של בזל למערכת העסקית הספציפית שלהם.
הם גם, ובגדול, מספיקים, לאחר שיתקיימו כולם, Bazel תספק באופן מלא את הערך שלה לחברים מקהילת השפות.