Внутрішній погляд на процес розробки мобільних додатків Facebook

Автор: Laura McKinney
Дата Створення: 4 Lang L: none (month-011) 2021
Дата Оновлення: 1 Липня 2024
Anonim
Мобільні додатки для бізнесу. Розбираємо, навіщо вони.
Відеоролик: Мобільні додатки для бізнесу. Розбираємо, навіщо вони.

Зміст


Нещодавно я відвідав штаб-квартиру Facebook у Лондоні, щоб дізнатися про процес розробки та підтримки його мобільного додатку Facebook. Тут відбувається набагато більше, ніж ви, мабуть, усвідомлюєте: деякі додатки Facebook тут обробляються в повному обсязі, як-от WhatsApp для робочого столу та орієнтований на бізнес додаток Workplace.

Офіси - це саме те, чого ви очікуєте від зображення Facebook, хоча, можливо, не зовсім до надмірного рівня Соціальної мережі. Це місце, де робиться серйозна робота, але все ж є модна, вигадлива та невимушена атмосфера. Співробітники можуть носити ноутбуки на роботі, де вони захочуть, там є друкарня для виготовлення плакатів (просто тому, що) на замовлення художніх робіт на декількох стінах та гігантська черепаха ніндзя - я ніколи не отримав відповіді, чому.

О, і їжа неймовірна. Я був там під час китайського Нового року і в мене був кратні свинячі черевики. Хороші часи.


Однак я не був там, щоб насолодитися декором та кухнею, я був там, щоб дізнатися про Facebook на мобільних пристроях. Більш конкретно: як на Землі ви навіть займаєтесь підтримкою такого масштабного та амбітного проекту? Вхід на Facebook обслуговує понад два мільярди людей, і лише додаток Android бачить нову версію, яка виходить щотижня.

Як керувати додатком з такою амбіційною кількістю функцій

Я розмовляв з Тал Келлнером через власну систему телеприсутності у Facebook. Тал - технічний керівник програми, який відповідає за інженерну команду випуску, що базується в інженерному офісі Тель-Авіва. Вона була більш ніж рада поділитися жартівливими деталями.

Тал та її команда вперше завантажили свою Lite версію Facebook на iOS

Те, що я дізнався, було досить захоплюючим і з точки зору розробника, і як користувача. Ось що я дізнався.

Управління проектами у Facebook - Чому Scrum> Водоспад

Дивлячись на будь-який великий проект, потрібно враховувати підхід до управління проектами. Один з таких прикладів називається «управління водоспадом». Це послідовний та лінійний підхід, де ви по черзі працюєте над певною фазою, як, наприклад, від ідеї до впровадження до тестування до випуску.


такі компанії, як Facebook, замість цього вибирають більш сучасний підхід до управління проектами, який називається "scrum"

Принципово важливо, що при такому підході ви не починаєте наступну фазу, поки попередня фаза не буде завершена. Система бере свій початок із виготовлення, де певні етапи часто покладаються на попередній етап: вам потрібно джерело цегли, перш ніж ви зможете побудувати стіну!

Що стосується програмного забезпечення, то цей підхід є обмежувальним. У гіршому випадку оновлення може зайняти так багато часу, щоб застаріти, воно застаріло до моменту надходження. Герцог Нукем Назавжди кого?

Таким чином, деякі програмні компанії вибирають натомість сучасніший підхід, який називається "scrum", який є спритною методологією. Цей метод визначає пріоритетність роботи, яка найбільше важлива, і розбиває її на модульні шматки. Він покладається на зв'язок між внутрішніми відділами і навіть окремими агентами, що працюють поодинці над власними куточками коду.

Результатом теоретичного результату є те, що кожен може працювати над тим, що для них найбільше нагадує, і що кожна інша частина бізнесу знає, чим займається. Кожен інженер має високий рівень власності, і кожен зрештою відповідає за свою роботу. Це не тільки робить компанію більш спритною, але й, сподіваємось, збільшує задоволеність робочим місцем. У машині ніхто не є лише гвинтиком.

будь-хто з будь-якої точки організації може запропонувати ідею щодо нової функції

Я був дуже вражений, почувши, що будь-хто з будь-якого місця в організації може запропонувати ідею щодо нової функції, а потім приступити до роботи над цим, якщо матимуть подальшу роботу. Іноді це може навіть перетворитися на власне окреме додаток! Facebook - це набагато більше спільний проект, аніж бачення кількох людей (або однієї людини), на які його часто зображують.

Це дозволяє Facebook реалізовувати надзвичайно швидкий цикл розробки, що дає змогу отримувати нове оновлення для мобільних пристроїв щотижня, а також тисячі комісій (запропоновані зміни коду) між тим Якщо ви вважаєте, що це вражає, веб-версія (вихідна частина якої також обслуговує мобільний додаток) оновлюється кожні дві-три години!

Facebook, як правило, дуже підтримує нові ідеї та стартапи. Він навіть має ініціативу LDN LAB, присвячену підтримці нових ідей та бізнесу.

Пошук балансу

Взяті з власних слайдів Тала

Звичайно, все ще існує межа, коли мова йде про те, з чим може впоратися компанія. Завдяки такому коду завжди є можливість для вдосконалення, але повинен настати час, коли версія вважається «досить хорошою».

Ось тут і грає «золотий трикутник». Три точки трикутника представляють особливості, якість та час. Кожна компанія може зробити тут вибір: коли настає час стискання, чи надаєте пріоритет новим функціям за рахунок того, щоб зайняти трохи більше часу? Чи дозволяєте ви неповнолітньому помилку ковзати через мережу, якщо це означає, що ви можете додати більше функцій? Коли ви не можете все зробити, ви змушені надавати пріоритет.

У Facebook пріоритети - якість та час. Якщо оновлення потрапляє за відведене вікно, можливо, функція буде відсунута назад; замість того, щоб вирізати кут або затримати оновлення.

Зміни контролю версій та жонглювання змінами

Для обробки цих оновлень та змін коду Facebook використовує власну модифіковану версію Mercurial. Це замість дуже широко використовуваного Git, який, мабуть, не був масштабним для цілей компанії. Фабрикатор є еквівалентом GitHub, і він використовує безліч плагінів, щоб допомогти впорядкувати робочий процес, а іноді просто зробити речі трохи веселішими (Facebook, мабуть, любить свої меми).

Для непрограмістів Mercurial, як і Git, є системою контролю версій. Це дозволяє великій кількості людей працювати над одним програмним забезпеченням та вносити зміни та виправлення, не ставлячи під загрозу основну версію програми, що називається "головна гілка". Ці інструменти допомагають запобігти конфліктам з кодом і дозволяють експериментувати. Лише після того, як зміна буде ретельно затверджена на тестовій гілці, вона буде надана ведучому.

Уявіть собі, якби якийсь поганий програміст зробив помилковий помилок, який порушив весь код, і була лише одна версія! Це був би поганий день для всіх.

Такі інструменти, як Mercurial, дозволяють відносно реалізувати підхід scrum, дозволяючи кожному працювати над певними функціями та помилками одночасно, перш ніж об’єднати все це в один великий котел.

Раз на тиждень кандидата на реліз буде відрізано від ведучого, і тоді він пройде етап тестування. Кодери, які витратили цілий тиждень на роботу над виправленнями помилок або новими функціями, в цей момент будуть схрещувати пальці, сподіваючись, що їх робота перетворить їх на нове оновлення.

Будь-які виправлення або зміни, внесені в останню хвилину членами команди, вимагатимуть «вишневого вибору» для включення у нову галузь відповідальних осіб. За повідомленнями, вони, як відомо, вживають хабарі у вигляді цукерок та алкоголю, обдарованих особам, які приймають рішення.

Для компіляції Facebook використовує інший інструмент під назвою Buck. Цей єдиний інструмент збирання може створити все, що стосується упаковки програми. Для націлювання на різні платформи немає необхідності в окремих варіантах, таких як Gradle або Ant.

Вчасно ловлять помилок

Оскільки всі працюють над різними речами, і стільки оновлень виходить регулярно, дуже важливо, щоб компанії переконалися, що їх програмне забезпечення працює і не має серйозних помилок. Здебільшого у Facebook є досить хороший досвід ведення речей.

З цією метою команда розбиває тестування програмного забезпечення на рівні, які називаються C1, C2 та C3.

C1 - це внутрішнє тестування, і всі співробітники запускають цю версію. Під час С2 версія займає 2 відсотки широкої громадськості, а С3 - це виробництво. Якщо буде знайдено щось по-справжньому серйозне, кожен працівник зможе отримати доступ до кнопки аварійної зупинки, щоб вивести виробництво на зупинку.

Добровольці, які висували себе за те, щоб яруси прогресували, дістають назву "хуггери по деревах" (бо гілки), і роблять це над своєю регулярною роботою.

На мобільних пристроях подібні яруси називаються альфа, бета та прода. Альфа означає внутрішній тест, який будуть проходити всі співробітники. Процес будь-якої компанії, що використовує власну продукцію таким чином, називається "вигул собак" - від "поїдання власної собачої їжі".

Тестери також мають у своєму розпорядженні унікальні та цікаві інструменти для швидкого повідомлення про помилки. Один - «Rageshake», де просто розчарування пристрою в розчаруванні дозволить звітувати про помилку, як, наприклад, з Google Maps.

Тестери також мають у своєму розпорядженні унікальні та цікаві інструменти для швидкого повідомлення про помилки

Під час альфа - що ефективно стосується будь-якого внутрішнього тестування, Facebook також використовує автоматичне тестування для запуску програми. Наприклад, недавно придбаний фрагмент програмного забезпечення під назвою "Sapienz" по суті працює, натискаючи кожну кнопку та використовуючи кожну функцію у випадковому нападі, поки вона не спровокує збій. Потім він записує слід стека, записує дію та звітує назад.

Бета-додаток (версія, перевірена широкою громадськістю) проходить через невеликий підрозділ (~ 2 відсотки) для широкої громадськості. Цей невеликий фрагмент отримає оновлення достроково, надаючи Facebook зворотній зв'язок у реальному світі. Якщо все здається хорошим, оновлення виходить для всього населення, і процес починається заново.

Потужні інструменти для автоматизації та примноження сили

Щоб весь цей процес був максимально швидким і безперебійним, Facebook використовує велику кількість різних інструментів. Ми вже бачили, як компанія використовує Phabricator та Sapienz, але у неї є інші інструменти та плагіни для інших етапів.

Інструмент під назвою Picknic збирає всі запити (зміни, які внесли працівники) в одне місце для швидкого та простого перегляду.

Під час тестування виявляється помилка, бот під назвою Nagbot повідомляє відповідальних і обережно примушує їх до виконання роботи. Використання рудиментарного AI для управління цим процесом не тільки забезпечує роботу, але також дозволяє менеджеру уникати бути «поганим хлопцем», постійно кидаючи!

коли тестування видає помилку, яку хтось виправить, бот під назвою Nagbot повідомляє відповідальних і обережно примушує їх виконувати роботу

Crashbot - ще один бот, який відповідає за повідомлення про ті помилки, коли вони трапляються, і є кращим для показників з консолі Google, оскільки він звітує в режимі реального часу. Crashbot позначить проблему, коли проблеми перевищуватимуть "прийнятний поріг аварії". Це може бути пов’язано з кількістю людей, які зазнали помилку, або кількістю разів, коли один користувач зіткнувся з однією помилкою. Так чи інакше, у Facebook також з’явиться показник, який показує кількість сумних користувачів.

Для внутрішнього спілкування Facebook використовує щось, що називається Workplace. Це фактично версія Facebook, призначена для бізнесу, яка забезпечує корисний спосіб отримувати інформацію про членів команди та швидко спілкуватися з тими, хто сидить з іншого боку розповсюдженого офісу. Facebook також продає це програмне забезпечення третім особам.

Звичайно, Facebook не збирається витрачати час на завантаження кожної нової версії своїх додатків у Play Store, App Store, Amazon та всі інші. Існує також додаток для цього під назвою Мобільний потяг.

Замикаючі думки

Постійне оновлення додатків, таких як Facebook, є надзвичайно важливим завданням, і компанія все ще повинна переконати користувачів фактично встановити ці оновлення. Це особливо важко в країнах, де зв’язок не гарантується. У Канаді лише один відсоток користувачів досі працює з версією Facebook старше року. В Ефіопії це число ближче до 50 відсотків!

Команда у Facebook явно працює дуже наполегливо і використовує безліч інструментів та процесів, щоб все було максимально впорядкованим. Зрештою, команда розробників має на меті дотримуватися п'яти принципів:

  • Тримайте господаря в чистоті.
  • Майте одну команду, яка має досвід в галузі інженерних систем.
  • Випускайте вчасно часто.
  • Продукти для собак
  • Будьте ласкаві до користувачів.

Звучить просто, але, як ви бачите, це включає багато прядильних пластин. Навіть підтримка всіх інструментів, що використовуються в процесі, - сам по собі проект!

Зі свого боку, Facebook підтримує дружню та легку атмосферу в офісі в Лондоні. Команда обмінюється GIF-файлами та мемами за допомогою плагінів, вони називають кімнати на основі «речі, яку британці ненавидять» та шекспірівських каламбурів, і вони дуже пишаються своєю роботою. У Facebook вони наполегливо працюють і грають важко, і, схоже, здебільшого система працює.

Наступного разу, коли з'явиться нове оновлення для одного з ваших великих додатків, запасіться думкою про всю роботу та організацію, необхідну для його отримання.

Кожне з 10 зображень у цій вікторині показує популярний ігровий телефон, і ваше завдання - розібратися, який з них. Для кожного питання доступні чотири варіанти, лише один з яких є правильним....

Шукаєте переглянути фільм із великими злочинами, великою кількістю зброї та нездоровою дозою нецензурної лексики? Fuhgeddaboutit! Ми тут, щоб розповісти вам про найкращі фільми про гангстерів на Netfl...

Ми Радимо