מבט מבפנים על תהליך פיתוח האפליקציות לנייד של פייסבוק

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 4 Lang L: none (month-011) 2021
תאריך עדכון: 2 מאי 2024
Anonim
מבט מבפנים על תהליך פיתוח האפליקציות לנייד של פייסבוק - אפליקציות
מבט מבפנים על תהליך פיתוח האפליקציות לנייד של פייסבוק - אפליקציות

תוֹכֶן


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

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

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

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


איך אתה מנהל אפליקציה עם מספר כל כך שאפתני של תכונות

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

טל והצוות שלה מעלים לראשונה את גרסת ה- Lite שלהם של פייסבוק ל- iOS

מה שלמדתי היה די מרתק הן מבחינת המפתח והן כמשתמש. הנה מה שגיליתי.

ניהול פרויקטים בפייסבוק - מדוע Scrum> מפל מים

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

חברות כמו פייסבוק בוחרות במקום זאת גישה מודרנית יותר לניהול פרויקטים בשם "scrum"

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


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

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

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

כל אחד מכל מקום בארגון יכול להציע רעיון לפיצ'ר חדש

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

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

פייסבוק בדרך כלל תומכת מאוד ברעיונות וסטארטאפים חדשים. יש לה אפילו יוזמה בשם LDN LAB המוקדשת לתמיכה ברעיונות ועסקים חדשים.

מציאת איזון

נלקח מהשקופיות של טל עצמה

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

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

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

בקרת גרסאות ושינויים בג'אגלינג

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

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

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

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

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

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

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

לתפוס באגים בזמן

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

לצורך כך מפצל הצוות בדיקות תוכנה לשכבות, המכונות C1, C2 ו- C3.

C1 הוא בדיקה פנימית וכל העובדים יפעילו גרסה זו. במהלך C2 הגרסה עוברת 2 אחוז מהציבור הרחב, ו- C3 היא ייצור. אם יימצא משהו רציני באמת, כל עובד יוכל לגשת לכפתור עצירת חירום כדי להפסיק את הייצור.

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

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

לרשות הבוחנים עומדים לרשותם כמה כלים ייחודיים ומעניינים לדיווח מהיר על באגים. האחת היא "Rageshake", כאשר פשוט ניעור המכשיר בתסכול יאפשר דוח באגים, כמו במפות Google.

לרשות הבוחנים עומדים לרשותם כמה כלים ייחודיים ומעניינים לדיווח מהיר על באגים

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

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

כלים רבי עוצמה לאוטומציה וכפל כוח

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

כלי בשם Picknic אוסף את כל בקשות המשיכה (שינויים שעשו העובדים) במקום אחד לבדיקה מהירה וקלה.

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

כאשר הבדיקה מעלה שגיאה שמישהו יתקן, בוט בשם נגבוט מודיע לאחראים ומציע להם בעדינות לבצע את העבודה.

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

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

כמובן שפייסבוק לא הולכת לבזבז זמן בהעלאת כל גרסה חדשה של האפליקציות שלה לחנות Play, App Store, Amazon, וכל השאר. יש גם אפליקציה לזה שנקראת Push Train.

מחשבות סוגרות

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

הצוות בפייסבוק עובד בבירור קשה ומשתמש במון כלים ותהליכים בכדי להשאיר את הכל בצורה יעילה ככל האפשר. בסופו של יום צוות הפיתוח שואף לדבוק בחמישה עקרונות פסק דין:

  • שמור על המאסטר נקי.
  • יש צוות אחד עם התמחות בהנדסת שחרור.
  • שחרר בזמן לעתים קרובות.
  • מוצרי מזון לכלבים.
  • היה טוב למשתמשים.

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

פייסבוק מצידה שומרת על אווירה ידידותית וקלת לב במשרד בלונדון. הצוות מחליף GIF ו- memes באמצעות תוספים, הם מכנים חדרים על בסיס "דברים שהבריטים שונאים" ונגיונות שייקספיריים, והם גאים הרבה בעבודתם. בפייסבוק עובדים קשה ומשחקים קשה ונראה שלרוב המערכת עובדת.

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

המוביל האמריקני ספרינט לקח את הרשת המתחרה AT&T לבית המשפט מוקדם יותר השנה לאחר שהאחרון הציג מיתוג 5G מזויף במספר טלפונים המשתמשים ברשת שלו. כעת, מתברר ששתי הרשתות הסכימו להסדיר את התביעה, אולם לפי...

עדכון, 29 במאי, 2019 (10:37 בבוקר ET): תכונת החיפוש החדשה המתוארת להלן פועלת כעת עבור לפחות חלק מהסמארטפונים. הצלחנו למשוך את בעלי החיים ה- AR ב- Google Pixel 3 שלנו - עם זאת, לא הצלחנו לגרום להם לעבו...

מעניין באתר