Vnitřní pohled na proces vývoje mobilních aplikací na Facebooku

Autor: Laura McKinney
Datum Vytvoření: 4 Lang L: none (month-011) 2021
Datum Aktualizace: 1 Červenec 2024
Anonim
Vnitřní pohled na proces vývoje mobilních aplikací na Facebooku - Aplikace
Vnitřní pohled na proces vývoje mobilních aplikací na Facebooku - Aplikace

Obsah


Nedávno jsem navštívil Londýnské ředitelství v Londýně, abych se dozvěděl o procesu vývoje a údržby mobilní aplikace pro Facebook. Děje se zde mnohem víc, než si pravděpodobně uvědomujete: některé aplikace na Facebooku jsou zde zpracovávány v plném rozsahu, jako je WhatsApp pro stolní počítače a obchodní aplikace Workplace.

Kanceláře jsou přesně to, co byste očekávali od image Facebooku, ale možná ne zcela nad úroveň sociálních sítí. Je to místo, kde se dá vykonat seriózní práce, ale přesto existuje trendová, nepředvídatelná a uvolněná atmosféra. Zaměstnanci mohou nosit notebooky, ať pracují kdekoli, kamkoli si vyberou, je zde tiskárna na výrobu plakátů (jen proto), objednána umělecká díla na několika stěnách a obří želva Ninja - nikdy jsem nedostal odpověď, proč.


A jídlo je neuvěřitelné. Byl jsem tam během čínského nového roku a měl jsem násobek vepřové břicho. Dobré časy.

Nebyl jsem tam však, abych si užil dekor a kuchyni, byl jsem tam, abych se dozvěděl o Facebooku na mobilu. Přesněji: jak na Zemi dokonce pokračujete v udržování tak velkého a ambiciózního projektu? Backend Facebooku obsluhuje více než dvě miliardy lidí a pouze aplikace pro Android vidí každý týden novou verzi.

Jak spravujete aplikaci s tak ambiciózním počtem funkcí

Mluvil jsem s Tal Kellnerem prostřednictvím vlastního telepresentního systému Facebooku. Tal je technický programový manažer, pověřený týmem Release Engineering Team sídlícím v technické kanceláři v Tel Avivu. Byla více než šťastná, když se podělila o odvážné detaily.


Tal a její tým poprvé nahrávali svou Lite verzi Facebooku do iOS

To, co jsem se naučil, bylo fascinující jak z pohledu vývojáře, tak z pohledu uživatele. Zde je to, co jsem zjistil.

Projektový management na Facebooku - Proč Scrum> Waterfall

Při pohledu na jakýkoli velký projekt je třeba zvážit přístup k řízení projektů. Jeden takový příklad se nazývá „vodopád“ projektového řízení. Jedná se o sekvenční a lineární přístup, ve kterém postupně pracujete na konkrétní fázi, jako je přechod od myšlenky k implementaci k testování až k uvolnění.

společnosti jako Facebook se místo toho rozhodnou pro modernější přístup k řízení projektů nazvaný „scrum“

Důležité je, že v tomto přístupu nezačnete další fázi, dokud není předchozí fáze dokončena. Systém pochází z výroby, kde se určité fáze často spoléhají na předchozí fázi: musíte postavit cihly, než začnete stavět zeď!

Pokud jde o software, je tento přístup restriktivní. V nejhorším případě může aktualizace trvat tak dlouho, dokud se aktualizace neobjeví. Duke Nukem navždy někdo?

Některé softwarové společnosti se proto rozhodnou pro modernější přístup zvaný „scrum“, což je agilní metodologie. Tato metoda upřednostňuje práci, která je nejdůležitější, a rozděluje ji na modulární kousky. Spoléhá se na komunikaci mezi interními odděleními a dokonce i jednotlivými agenty, kteří pracují samostatně na svých vlastních rozích kódu.

Výsledkem je, že každý může pracovat na tom, co je pro ně po celou dobu nejnaléhavější, a že každá další část podniku ví, co dělá. Každý inženýr má vysokou úroveň vlastnictví a za svou vlastní práci je v konečném důsledku odpovědný každý. Nejenže to dělá společnost agilnější, ale doufejme také zvyšuje spokojenost na pracovišti. Ve stroji není nikdo jen ozubené kolečko.

kdokoli odkudkoli v rámci organizace může navrhnout novou funkci

Byl jsem velmi ohromen, když jsem slyšel, že kdokoli odkudkoli v rámci organizace by mohl navrhnout nápad na novou funkci, a pak se do toho pustit, kdyby se dostal do budoucnosti. Někdy se to může dokonce vyvinout do vlastní samostatné aplikace! Facebook je mnohem více projektem spolupráce než vynucenou vizí několika lidí (nebo jedné osoby), která je často označována jako.

To umožňuje Facebooku implementovat nesmírně rychlý vývojový cyklus, umožňující novou mobilní aktualizaci každý týden a mezitím tisíce potvrzení (navrhované změny kódu). Pokud si myslíte, že je to působivé, webová verze (jejíž backend také slouží mobilní aplikaci) se aktualizuje jednou za dvě až tři hodiny!

Facebook obecně podporuje nové nápady a startupy. Má dokonce iniciativu s názvem LDN LAB věnovanou podpoře nových nápadů a podniků.

Nalezení rovnováhy

Převzato z Talových vlastních snímků

Samozřejmě stále existuje limit, pokud jde o to, co může společnost zvládnout. S tímto velkým kódem je vždy prostor pro zlepšení, ale musí přijít doba, kdy bude verze považována za „dost dobrou“.

Zde přichází do hry „zlatý trojúhelník“. Tři body tohoto trojúhelníku představují funkce, kvalitu a čas. Každá společnost má na výběr z těchto možností: upřednostňujete nové funkce na úkor doby kratší? Povolíte sklouznutí menší existující chyby sítí, pokud to znamená, že můžete přidat další funkce? Když nemůžete udělat vše, jste nuceni upřednostnit.

Na Facebooku jsou prioritami kvalita a čas. Pokud aktualizace za přiděleným oknem klesne, bude pravděpodobně funkce vrácena; namísto oříznutí rohu nebo o zpoždění aktualizace.

Změny v řízení verzí a žonglování

Pro zpracování těchto aktualizací a změn kódu používá Facebook svou vlastní upravenou verzi Mercurialu. To je místo velmi široce používaného Gitu, který se zjevně také neměřil pro účely společnosti. Phabricator je ekvivalentem GitHub a používá spoustu pluginů, které pomáhají zefektivnit pracovní postup a někdy jen udělat věci trochu zábavnějšími (Facebook má zřejmě své vzpomínky).

Pro neprogramátory existuje Mercurial, stejně jako Git, systém řízení verzí. Umožňuje velkému počtu lidí pracovat na jednom softwaru a provádět změny a opravy bez ohrožení hlavní verze aplikace, která se nazývá „hlavní větev“. Tyto nástroje pomáhají předcházet konfliktům kódu a umožňují experimentovat. Teprve poté, co byla změna důkladně schválena na zkušební větvi, bude ji poté odevzdána veliteli.

Představte si, že nějaký špatný programátor udělal překlep, který zlomil celý kód a byla pouze jedna verze! To by byl špatný den pro všechny.

Nástroje, jako je Mercurial, umožňují relativně snadno implementovat scrumový přístup, který umožňuje každému pracovat na konkrétních vlastnostech a chybách současně, než je všechny spojí do jednoho velkého hrnce.

Jednou týdně bude kandidát na uvolnění vystřihnut z masteru a ten poté projde testovací fází. Kodéři, kteří strávili celý týden prací na opravách chyb nebo nových funkcích, budou v tomto okamžiku přejíždět prsty v naději, že se jejich práce dostane do nové aktualizace.

Jakékoli opravy nebo změny na poslední chvíli provedené členy týmu budou vyžadovat, aby byli zařazeni do nové pobočky odpovědnými osobami. Je známo, že je známo, že používají úplatky ve formě čokolády a alkoholu, které jsou poskytovány osobám s rozhodovací pravomocí.

Ke kompilaci používá Facebook další nástroj s názvem Buck. Tento jediný nástroj pro sestavení dokáže postavit cokoli, co se týká balení aplikace. Při cílení na různé platformy není třeba používat samostatné možnosti, jako je Gradle nebo Ant.

Chytání chyb v čase

Protože všichni pracují na různých věcech a pravidelně se vydává tolik aktualizací, je velmi důležité, aby společnosti zajistily, aby jejich software fungoval, a neměl žádné vážné chyby. Facebook má z velké části dobré výsledky, aby udržel věci v chodu.

Za tímto účelem tým rozděluje testování softwaru do úrovní označovaných jako C1, C2 a C3.

C1 je interní testování a všichni zaměstnanci tuto verzi spustí. Během C2 běží verze přes 2 procenta široké veřejnosti a C3 je produkce. Pokud se najde něco skutečně vážného, ​​každý zaměstnanec bude mít přístup k tlačítku nouzového zastavení, aby zastavil výrobu.

Dobrovolníci, kteří se přihlásili, že udržují postupující úrovně, se jmenují „stromoví objatí“ (protože větve) a dělají to na vrcholu svých běžných zaměstnání.

V mobilu se podobné úrovně nazývají alfa, beta a prod. Alfa znamená interní test, který povedou všichni zaměstnanci. Proces jakékoli společnosti, která tímto způsobem používá své vlastní produkty, se nazývá „dogfooding“ - od „jíst vlastní krmivo pro psy“.

Testery mají také k dispozici některé jedinečné a zajímavé nástroje pro rychlé hlášení chyb. Jedním z nich je „Rageshake“, kde jednoduché otřesy zařízení frustrovaně umožní hlášení o chybě, jako je tomu u Map Google.

Testery mají také k dispozici některé jedinečné a zajímavé nástroje pro rychlé hlášení chyb

Během aplikace alfa, která účinně odkazuje na jakékoli interní testování, používá Facebook také automatické testování, aby mohla aplikaci spustit. Například jeden nedávno získaný software nazvaný „Sapienz“ v podstatě funguje kliknutím na každé tlačítko a použitím každé funkce v náhodném útoku, dokud nespustí selhání. Poté protokolová trasování zásobníku, zaznamenává akci a podává zprávu zpět.

Beta aplikace (verze testovaná širokou veřejností) prochází malou podsekcí (~ 2 procenta) široké veřejnosti. Tento malý úryvek obdrží aktualizaci předem a poskytne Facebooku zpětnou vazbu v reálném světě. Pokud je vše v pořádku, aktualizace se vydá celé populaci a proces začíná znovu.

Výkonné nástroje pro automatizaci a vynásobení síly

Aby byl celý tento proces co nejrychlejší a nejhladší, používá Facebook velké množství různých nástrojů. Už jsme viděli, jak společnost používá Phabricator a Sapienz, ale má jiné nástroje a pluginy pro další fáze.

Nástroj s názvem Picknic shromažďuje všechny požadavky na vyžádání (změny, které zaměstnanci provedli) na jednom místě pro rychlé a snadné přezkoumání.

Když testování vyvolá chybu, bota zvaná Nagbot informuje ty odpovědné a jemně je prosazuje, aby dokončili práci. Používání rudimentální umělé inteligence pro zvládnutí tohoto procesu nejen zajišťuje práci, ale také umožňuje manažerovi vyhýbat se „špatnému člověku“ neustálým otravováním!

když testování vyvolá chybu, kterou někdo opraví, bota zvaná Nagbot informuje odpovědné osoby a jemně je prosazuje, aby dokončili práci

Crashbot je další robot odpovědný za hlášení těchto chyb v okamžiku, kdy k nim dojde, a je vhodnější než metriky z Google Console, protože hlásí v reálném čase. Crashbot problém nahlásí, jakmile problémy překročí „přijatelný prahový limit“. Může to být způsobeno počtem lidí, kterým došlo k chybě, nebo kolikrát jeden uživatel narazil na stejnou chybu. V obou případech bude mít Facebook také metriku zobrazující počet smutných uživatelů.

Pro interní komunikaci používá Facebook něco, co se nazývá Workplace. Jde skutečně o verzi Facebooku určenou pro firmy, která poskytuje užitečný způsob, jak získat informace o členech týmu a rychle komunikovat s těmi, kteří sedí na druhé straně rozlehlé kanceláře. Facebook také prodává tento software třetím stranám.

Facebook samozřejmě neztrácí čas nahráním každé nové verze svých aplikací do obchodů Play, App Store, Amazon a dalších. K dispozici je také aplikace s názvem Mobile Push Train.

Závěrečné myšlenky

Udržovat aplikaci jako je Facebook aktuální je obrovský závazek a společnost stále musí uživatele přesvědčit, aby tyto aktualizace skutečně nainstalovali. To je zvláště obtížné v zemích, kde není připojení zaručeno. V Kanadě pouze jedno procento uživatelů stále provozuje verzi Facebooku starší než jeden rok. V Etiopii se toto číslo blíží 50 procentům!

Tým na Facebooku jasně pracuje velmi tvrdě a používá spoustu nástrojů a procesů, aby vše udržel co nejefektivnější. Na konci dne se vývojový tým snaží dodržovat pět vládnoucích principů:

  • Udržujte pána v čistotě.
  • Mají jeden tým s odbornými znalostmi v oblasti uvolňování techniky.
  • Vydání na čas často.
  • Výrobky pro vnitřní použití.
  • Buďte laskaví k uživatelům.

Zní to jednoduše, ale jak vidíte, zahrnuje spoustu spřádacích desek. Dokonce i udržování všech nástrojů použitých v procesu je samo o sobě projekt!

Facebook udržuje svou přátelskou a lehkou atmosféru v kanceláři v Londýně. Tým si vyměňuje GIFy a memy prostřednictvím zásuvných modulů, pojmenovává místnosti na základě „věcí, které Britové nenávidí“ a Shakespearovských hříček, a při své práci si velmi hrdí. Na Facebooku tvrdě pracují a tvrdě hrají a zdá se, že systém funguje z velké části.

Až příště bude k dispozici nová aktualizace pro jednu z vašich větších aplikací, ušetříte myšlenku za veškerou práci a organizaci, kterou je potřeba k jejímu získání.

Platforma Android polečnoti Google je zdaleka nejoblíbenějším mobilním operačním ytémem v okolí a louží také jako jednotné kontaktní míto pro růz...

Už nějakou dobu jme věděli, že elfie fotoaparáty pod obrazovkou jou na cetě, přičemž polečnot amung poprvé potvrdila vou práci v této oblati v loňkém roce. Od té doby jme...

Čerstvé Příspěvky