Vnútorný pohľad na proces vývoja mobilných aplikácií Facebooku

Autor: Laura McKinney
Dátum Stvorenia: 4 Lang L: none (month-011) 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
Vnútorný pohľad na proces vývoja mobilných aplikácií Facebooku - Aplikácie
Vnútorný pohľad na proces vývoja mobilných aplikácií Facebooku - Aplikácie

Obsah


Nedávno som navštívil Londýnske ústredie v Londýne, aby som sa dozvedel o procese vývoja a údržby jeho mobilnej aplikácie Facebook. Deje sa tu omnoho viac, ako si pravdepodobne uvedomujete: niektoré aplikácie Facebooku sa tu spracovávajú v plnom rozsahu, napríklad WhatsApp pre stolné počítače a obchodne orientovaná pracovná aplikácia.

Kancelárie sú presne to, čo by ste od imidžu Facebooku očakávali, ale možno nie celkom nad úroveň sociálnych sietí. Toto je miesto, kde sa vykonáva seriózna práca, ale napriek tomu je tu trendová, nepredvídateľná a uvoľnená atmosféra. Zamestnanci môžu nosiť notebooky, aby mohli pracovať kdekoľvek si vyberú, je tu tlačiareň na výrobu plagátov (len preto), objednané umelecké diela na niekoľkých stenách a obrovská korytnačka Ninja - nikdy som nedostal odpoveď, prečo.


Jo, a jedlo je neuveriteľné. Bol som tam počas čínskeho Nového roka a mal som násobok bravčové bôčiky. Dobré časy.

Avšak nebol som tam, aby som si užíval dekor a kuchyňu, bol som tu, aby som sa dozvedel o Facebooku na mobile. Presnejšie povedané: ako na Zemi dokonca pokračujete v udržiavaní tohto veľkého a ambiciózneho projektu? Backend Facebooku slúži viac ako dvom miliardám ľudí a samotná aplikácia pre Android vidí novú verziu vydanú každý týždeň.

Ako spravujete aplikáciu s takým ambicióznym počtom funkcií

Hovoril som s Tal Kellnerom prostredníctvom vlastného telepresentného systému Facebooku. Tal je technický programový manažér, zodpovedný za tím Release Engineering Team so sídlom v technickej kancelárii v Tel Avive. Bola viac než šťastná, keď sa podelila o odvážne detaily.


Tal a jej tím prvýkrát odovzdali svoju Lite verziu Facebooku do iOS

To, čo som sa naučil, bolo fascinujúce tak z pohľadu vývojára, ako aj z pohľadu užívateľa. Tu je to, čo som zistil.

Projektový manažment na Facebooku - Prečo Scrum> Waterfall

Pri pohľade na akýkoľvek veľký projekt musíte zvážiť prístup k projektovému manažmentu. Jeden taký príklad sa nazýva projektový manažment „vodopád“. Toto je postupný a lineárny prístup, v ktorom postupujete postupne v konkrétnej fáze, napríklad prechod od nápadu k implementácii, k testovaniu až po prepustenie.

spoločnosti ako Facebook sa namiesto toho rozhodnú pre modernejší prístup k projektovému manažmentu s názvom „scrum“

Je dôležité, že v tomto prístupe nezačínate ďalšiu fázu, kým sa neukončí predchádzajúca fáza. Systém pochádza z výroby, v ktorej sa určité fázy často spoliehajú na predchádzajúcu fázu: pred výstavbou steny musíte postaviť tehly!

Pokiaľ ide o softvér, tento prístup je reštriktívny. V najhoršom prípade môže aktualizácia trvať tak dlho, kým bude aktualizácia k dispozícii. Duke Nukem navždy niekto?

Niektoré softvérové ​​spoločnosti sa preto namiesto toho rozhodnú pre modernejší prístup nazývaný „scrum“, čo je agilná metodika. Táto metóda uprednostňuje prácu, na ktorej najviac záleží, a rozdeľuje ju na modulárne kúsky. Spolieha sa na komunikáciu medzi vnútornými oddeleniami a dokonca aj jednotlivými agentmi pracujúcimi samostatne na svojich vlastných zákutiach kódu.

Výsledkom je, že každý môže pracovať na tom, čo je pre nich stále naliehavejšie, a že každá iná časť podniku vie, čo robí. Každý inžinier má vysokú úroveň vlastníctva a za svoju prácu je v konečnom dôsledku zodpovedný každý. Nielenže to robí spoločnosť agilnejšou, ale dúfajme tiež zvyšuje spokojnosť na pracovisku. Nikto nie je len strojček v stroji.

Ktokoľvek z ľubovoľného miesta v organizácii môže navrhnúť nápad na novú funkciu

Veľmi ma ohromilo, keď som počul, že ktokoľvek z ktorejkoľvek časti organizácie by mohol navrhnúť nápad na novú funkciu a potom by som sa s tým mohol začať zaoberať, ak bude mať prednosť. Niekedy sa to môže dokonca vyvinúť do samostatnej aplikácie! Facebook je oveľa viac projektom spolupráce ako vynútená vízia niekoľkých ľudí (alebo jednej osoby) zhora nadol, ktorá sa často zobrazuje ako.

To umožňuje Facebooku implementovať mimoriadne rýchly vývojový cyklus, ktorý umožňuje každý týždeň novú mobilnú aktualizáciu a medzitým tisíce odovzdaných záväzkov (navrhované zmeny kódu). Ak si myslíte, že je to pôsobivé, webová verzia (ktorej backend slúži aj pre mobilnú aplikáciu) sa aktualizuje každé dve až tri hodiny!

Facebook vo všeobecnosti veľmi podporuje nové nápady a startupy. Má dokonca iniciatívu s názvom LDN LAB venovanú podpore nových nápadov a podnikania.

Nájdenie rovnováhy

Prevzaté z vlastných snímok Tal

Samozrejme, stále bude existovať limit, pokiaľ ide o to, čo môže spoločnosť zvládnuť. S týmto veľkým kódom je vždy priestor na zlepšenie, ale musí prísť čas, keď sa verzia považuje za „dosť dobrú“.

Tu prichádza do hry „zlatý trojuholník“. Tri body tohto trojuholníka predstavujú vlastnosti, kvalitu a čas. Každá spoločnosť má na výber tu: pokiaľ ide o krízovú dobu, uprednostňujete nové funkcie na úkor trvať trochu dlhšie? Povolíte prekĺznutiu existujúcej chyby cez sieť, ak to znamená, že môžete pridať ďalšie funkcie? Ak nemôžete urobiť všetko, musíte priniesť prioritu.

Na Facebooku sú prioritami kvalita a čas. Ak aktualizácia zaostáva za prideleným oknom, funkcia sa pravdepodobne vráti späť; namiesto orezania rohu alebo omeškania aktualizácie.

Zmeny v ovládaní verzií a žonglovaní

Na spracovanie týchto aktualizácií a zmien kódu používa Facebook svoju vlastnú upravenú verziu Mercurialu. To je miesto veľmi často používaného systému Git, ktorý sa zjavne nezmenil ani na účely spoločnosti. Phabricator je ekvivalentom GitHubu a používa množstvo doplnkov na zefektívnenie pracovných postupov a niekedy len na to, aby sa veci trochu viac zabavili (Facebook má zjavne rád svoje memy).

Pre tých, ktorí nie sú programátormi, je Mercurial, podobne ako Git, systém riadenia verzií. Umožňuje veľkému počtu ľudí pracovať na jednom softvéri a vykonávať zmeny a opravy bez toho, aby bola ohrozená hlavná verzia aplikácie nazývaná „hlavná vetva“. Tieto nástroje pomáhajú predchádzať konfliktom kódu a umožňujú experimentovanie. Až potom, čo bola zmena dôkladne schválená v skúšobnej vetve, bude ju potom zaviazať kapitán.

Predstavte si, že nejaký zlý programátor urobil preklep, ktorý zlomil celý kód a bola iba jedna verzia! To by bol zlý deň pre všetkých.

Nástroje, ako je Mercurial, umožňujú relatívne ľahkú implementáciu prístupu k scrumu, čo umožňuje každému pracovať súčasne na konkrétnych vlastnostiach a chybách predtým, ako ich všetky spoja do jedného veľkého hrnca.

Raz za týždeň bude kandidát na prepustenie vyradený z hlavnej ponuky a potom prejde fázou testovania. Kodéri, ktorí strávili celý týždeň prácou na opravách chýb alebo nových funkciách, budú v tomto okamihu prekračovať prsty v nádeji, že ich práca urobí novú aktualizáciu.

Akékoľvek opravy alebo zmeny na poslednú chvíľu, ktoré vykonali členovia tímu, si budú vyžadovať „cherry picking“ pre zaradenie do novej pobočky zodpovednými osobami. Údajne je známe, že používajú úplatky vo forme čokolády a alkoholu, ktoré sú odovzdávané osobám s rozhodovacou právomocou.

Na kompiláciu Facebook používa ďalší nástroj s názvom Buck. Tento jediný nástroj na zostavenie dokáže vytvoriť všetko, čo sa týka balenia aplikácie. Pri zacielení na rôzne platformy nie sú potrebné samostatné možnosti, ako napríklad Gradle alebo Ant.

Chytanie chýb v čase

Keďže každý pracuje na rôznych veciach a pravidelne sa vydáva toľko aktualizácií, je veľmi dôležité, aby spoločnosti zabezpečili, aby softvér fungoval a či nemal žiadne vážne chyby. Facebook má z väčšej časti dobré výsledky, aby udržal veci v chode.

Za týmto účelom tím rozdeľuje testovanie softvéru do úrovní označovaných ako C1, C2 a C3.

C1 je interné testovanie a túto verziu spustia všetci zamestnanci. Počas C2 verzia prechádza 2% širokej verejnosti a C3 je výroba. Ak sa nájde niečo skutočne vážne, každý zamestnanec bude mať prístup k tlačidlu núdzového zastavenia, aby zastavil výrobu.

Dobrovoľníci, ktorí sa prihlásili na udržanie postupných úrovní, sa volajú „stromoví objatí“ (pretože konáre) a robia to na vrchole svojich bežných pracovných povinností.

V mobilných zariadeniach sa podobné úrovne nazývajú alfa, beta a prod. Alfa znamená interný test, ktorý vykonajú všetci zamestnanci. Proces akejkoľvek spoločnosti, ktorá týmto spôsobom používa svoje vlastné produkty, sa nazýva „dogfooding“ - od „jedenia vlastného jedla pre psov“.

Testeri majú k dispozícii aj niekoľko jedinečných a zaujímavých nástrojov na rýchle hlásenie chýb. Jedným z nich je „Rageshake“, kde jednoducho trasenie zariadenia frustrovane umožní hlásenie o chybe, napríklad v Mapách Google.

Testeri majú k dispozícii aj niekoľko jedinečných a zaujímavých nástrojov na rýchle hlásenie chýb

Počas aplikácie alfa, ktorá v skutočnosti odkazuje na akékoľvek interné testovanie, používa Facebook aj automatické testovanie na spustenie aplikácie. Napríklad jeden nedávno získaný softvér s názvom „Sapienz“ v podstate funguje tak, že klikne na každé tlačidlo a každú náhodne použije každú funkciu, kým nespustí zlyhanie. Potom zaznamená protokolovanie zásobníka, zaznamená akciu a vráti správu.

Aplikácia beta (verzia testovaná širokou verejnosťou) prechádza malou podsekciou (~ 2 percentá) širokej verejnosti. Tento malý úryvok dostane aktualizáciu vopred a poskytne Facebooku spätnú väzbu v reálnom svete. Ak je všetko v poriadku, aktualizácia sa týka celej populácie a proces sa začína znova.

Výkonné nástroje pre automatizáciu a znásobenie sily

Aby bol celý tento proces čo najrýchlejší a najplynulejší, používa Facebook veľké množstvo rôznych nástrojov. Už sme videli, ako spoločnosť používa Phabricator a Sapienz, ale má aj ďalšie nástroje a doplnky pre ďalšie fázy.

Nástroj s názvom Picknic zhromažďuje všetky požiadavky na ťah (zmeny, ktoré urobili zamestnanci) na jednom mieste, aby sa dalo rýchlo a ľahko skontrolovať.

Keď testovanie vyvolá chybu, robot s názvom Nagbot informuje zodpovedných a jemne ich nabáda, aby vykonali prácu. Použitie základnej inteligencie na zvládnutie tohto procesu nielen zaisťuje, že sa práca dokončí, ale tiež umožňuje manažérovi vyhnúť sa tomu, aby bol neustále zlým človekom!

keď testovanie vyvolá chybu, ktorú môže niekto opraviť, robot s názvom Nagbot informuje zodpovedných a jemne ich nabáda k vykonaniu práce

Crashbot je ďalší robot zodpovedný za hlásenie týchto chýb pri ich výskyte a je vhodnejší ako metriky z Konzoly Google, pretože vykazuje v reálnom čase. Crashbot nahlási problém, keď problém prekročí „prijateľný prah zlyhania“. Môže to byť spôsobené počtom ľudí, ktorým sa vyskytla chyba, alebo počtom prípadov, keď sa jeden používateľ vyskytol rovnakú chybu. V oboch prípadoch bude mať Facebook aj metriku ukazujúcu počet smutných používateľov.

Pre internú komunikáciu používa Facebook niečo, čo sa volá Workplace. Toto je skutočne verzia Facebooku určená pre firmy, ktorá poskytuje užitočný spôsob získavania informácií o členoch tímu a rýchlej komunikácie s tými, ktorí sedia na druhej strane rozľahlej kancelárie. Facebook predáva tento softvér aj tretím stranám.

Facebook samozrejme nebude strácať čas odovzdávaním každej novej verzie svojich aplikácií do obchodov Play, App Store, Amazon a ďalších. K dispozícii je tiež aplikácia s názvom Mobile Push Train.

Záverečné myšlienky

Udržiavanie aplikácie, ako je Facebook, je obrovský záväzok a spoločnosť stále musí presvedčiť používateľov, aby tieto aktualizácie skutočne nainštalovali. Toto je obzvlášť ťažké v krajinách, kde nie je zaručené pripojenie. V Kanade iba jedno percento používateľov stále prevádzkuje verziu Facebooku staršiu ako rok. V Etiópii je toto číslo bližšie k 50 percentám!

Tím na Facebooku jednoznačne pracuje veľmi tvrdo a používa veľa nástrojov a procesov, aby udržal všetko čo najefektívnejšie. Na konci dňa sa vývojový tím zameriava na dodržiavanie piatich princípov:

  • Udržujte kapitána čistú.
  • Majte jeden tím s odbornými znalosťami v oblasti uvoľňovacieho inžinierstva.
  • Vydávanie načas často.
  • Výrobky pre domáce zvieratá.
  • Buďte k používateľom láskaví.

Znie to jednoducho, ale ako vidíte, vyžaduje to veľa rotujúcich dosiek. Dokonca aj udržiavanie všetkých nástrojov použitých v tomto procese je samo o sebe projekt!

Facebook udržuje priateľskú a ľahkú atmosféru v kancelárii v Londýne. Tím si vymieňajú GIF a memy prostredníctvom doplnkov, pomenujú miestnosti na základe „vecí, ktoré Briti nenávidia“ a Shakespearovských slovných hračiek, a na svoju prácu sú veľmi hrdí. Na Facebooku tvrdo pracujú a tvrdo hrajú a zdá sa, že z väčšej časti systém funguje.

Až nabudúce dôjde k novej aktualizácii pre jednu z vašich väčších aplikácií, ušetrite nápad za všetku prácu a organizáciu, ktorá sa tam dostala.

Podľa novej právy odBloomberg, americké minitertvo pravodlivoti by mohlo mať veľmi špecifický - a poburujúci - dopyt predtým, ako chváli fúziu T-Mobile-print. Poveť ...

Aktualizácia 8. júla 2019 (11:15 AM):Podľa novej právy odNY Pot, poločnoť Google by mohla vieť rozhovory programom Dih o vytvorení údajného štvrtého operátora ...

Populárny