Una mirada interior al procés de desenvolupament d'aplicacions mòbils de Facebook

Autora: Laura McKinney
Data De La Creació: 4 Lang L: none (month-011) 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Una mirada interior al procés de desenvolupament d'aplicacions mòbils de Facebook - Aplicacions
Una mirada interior al procés de desenvolupament d'aplicacions mòbils de Facebook - Aplicacions

Content


Recentment, he visitat la seu central de Facebook a Londres per conèixer el procés de desenvolupament i manteniment de la seva aplicació mòbil de Facebook. Aquí passa molt més del que probablement us adoneu: algunes de les aplicacions de Facebook es gestionen en la seva totalitat, com ara WhatsApp per a escriptori i l’aplicació Workplace orientada al negoci.

Les oficines són exactament allò que esperaves de la imatge de Facebook, encara que potser no siguin a nivells d’excés de la xarxa social. Aquest és un lloc on es fa un treball seriós, però hi ha una atmosfera de moda, tranquil·la i relaxada. Els empleats poden portar ordinadors portàtils per treballar allà on triïn, hi ha una sala d’impressió per a la realització de pòsters (només perquè), l’encàrrec d’obres d’art a diverses de les parets i una tortuga gegant Ninja - mai vaig rebre cap resposta sobre el perquè.


Ah, i el menjar és increïble. Vaig estar allà durant l'Any Nou Xinès i vaig tenir-ho múltiples panxes de porc. Bons moments.

Tanmateix, no estava allà per gaudir de la decoració i la cuina, vaig estar allà per aprendre sobre Facebook a través del mòbil. Més concretament: com a la Terra fins i tot aneu a mantenir un projecte tan gran i ambiciós? El backend de Facebook dóna servei a més de dos mil milions de persones, i l’aplicació per a Android només veu una nova versió llançada cada setmana.

Com gestiona una aplicació amb un nombre tan ampli de funcions

Vaig parlar amb Tal Kellner a través del propi sistema de telepresència de Facebook. Tal és responsable de programes tècnics, responsable de l’Equip d’Enginyeria de Llibertat amb seu a l’oficina d’enginyeria de Tel Aviv. Va estar més que contenta de compartir els detalls agrests.


Tal i el seu equip han penjat per primera vegada la seva versió Lite de Facebook a iOS

El que vaig aprendre va ser força fascinant tant des de la perspectiva de desenvolupador com d’usuari. Aquí he descobert

Gestió de projectes a Facebook - Why Scrum> Cascada

Quan busqueu qualsevol gran projecte, heu de plantejar-vos el plantejament de gestió de projectes. Un d’aquest exemple s’anomena gestió de projectes “cascada”. Aquest és un enfocament seqüencial i lineal on es treballa en una fase específica al seu torn, com anar des de la ideació fins a la implementació fins a les proves fins al llançament.

empreses com Facebook opten per un enfocament més modern de la gestió de projectes anomenat "scrum"

D'altra banda, en aquest enfocament no comenceu la fase següent fins que no s'hagi completat la fase anterior. El sistema és originari de la fabricació, on certes etapes depenen sovint de l’etapa anterior: heu d’aportar maons abans de poder construir un mur.

Quan es tracta de programari, aquest enfocament és restrictiu. En el pitjor dels casos, una actualització pot trigar tant a deixar-se passar, quedant obsoleta en el moment que arriba. Duc Nukem Per sempre a algú?

Així, algunes empreses de programari opten per un enfocament més modern anomenat "scrum", que és una metodologia àgil. Aquest mètode prioritza el treball que més importa i el divideix en trossos modulars. Es basa en la comunicació entre departaments interns i fins i tot agents individuals que treballen sols en els seus racons de codi.

El resultat, en teoria, és que tothom pot treballar en allò que més els pressiona durant tot el temps i que totes les altres parts del negoci saben el que fan. Hi ha un alt nivell de propietat per a cada enginyer i cadascú és el responsable del seu propi treball. Això no només fa que l’empresa sigui més àgil, sinó que també augmenta la satisfacció del lloc de treball. Ningú és només un engranatge a la màquina.

qualsevol persona de qualsevol part de l’organització pot suggerir una idea per a una funció nova

M’ha impressionat molt sentir que qualsevol persona de qualsevol part de l’organització pogués suggerir una idea per a una nova funció i, a continuació, començar a treballar sobre això si se’ls dona la idea. De vegades, fins i tot es pot convertir en la seva pròpia aplicació independent. Facebook és molt més un projecte col·laboratiu que la visió obligada de poques persones (o una persona) que sovint es retrata com.

Això permet a Facebook implementar un cicle de desenvolupament extremadament ràpid, que permet una actualització mòbil cada setmana i milers de comes (canvis de codi proposats) entre llavors. Si creieu que és impressionant, la versió web (el backend de la qual serveix també l'aplicació per a mòbils) s'actualitza una vegada dues o tres hores.

Facebook generalment dóna suport a noves idees i startups. Fins i tot té una iniciativa anomenada LDN LAB dedicada a donar suport a noves idees i empreses.

Trobar l’equilibri

A partir de les diapositives pròpies de Tal

Per descomptat, sempre hi haurà un límit quan es tracti d'una empresa. Amb aquest codi, sempre hi ha marge per millorar, però ha d'arribar a un moment en què la versió es considera "prou bona".

És aquí on entra en joc el "triangle daurat". Els tres punts d’aquest triangle representen característiques, qualitat i temps. Cada empresa té la possibilitat de triar aquí: a l’hora d’escriure el temps, prioritzeu les novetats a costa de trigar una mica més? Permet que un error existent menor passi per la xarxa si vol dir que podeu afegir més funcions? Quan no ho podeu fer tot, esteu obligats a prioritzar.

A Facebook, les prioritats són la qualitat i el temps. Si hi ha una actualització darrere de la finestra assignada, probablement la funció es tornarà a recuperar; en lloc de tallar un cantó o de retardar l'actualització.

Control de versions i canvis de malabars

Per manejar aquestes actualitzacions i canvis al codi, Facebook utilitza la seva pròpia versió modificada de Mercurial. En lloc del Git molt utilitzat, que aparentment no es va dimensionar bé per als propòsits de l’empresa. Phabricator és l’equivalent a GitHub, i utilitza molts complements per ajudar a racionalitzar el flux de treball i, de vegades, simplement per fer les coses una mica més divertides (aparentment a Facebook els agraden els seus memes).

Per als no programadors que hi ha, Mercurial, com Git, és un sistema de control de versions. Permet que un gran nombre de persones treballin en un sol programari i es puguin fer canvis i solucions sense posar en perill la versió principal de l’aplicació, anomenada “branca mestra”. Aquestes eines ajuden a prevenir conflictes de codi i permeten experimentar. Només una vegada que s'hagi aprovat un canvi completament en una branca de proves, es comprometrà amb el mestre.

Imagineu-vos si algun programador pobre va fer un error que va trencar tot el codi i només hi havia una versió. Seria un mal dia per a tothom.

Eines com Mercurial permeten implementar l’aproximació de scrum amb relativa facilitat, permetent a tothom treballar simultàniament funcions i errors específics abans de combinar-ho tots junts en una gran olla.

Un cop a la setmana, un candidat de llançament es tallarà del mestre i passarà a la fase de proves. Els codificadors que han estat tota la setmana treballant en solucions d’errors o noves funcions estaran creuant els seus dits amb l’esperança que el seu treball ho converteixi en la nova actualització.

Qualsevol correcció d’última hora o canvis realitzats pels membres de l’equip hauran de ser “cireres recollides” per incloure-los a la nova sucursal per part dels responsables. Segons s'ha afirmat, se'ls ha sabut utilitzar suborns en forma de bombons i alcohol dotats als responsables de decisió.

Per compilar, Facebook utilitza una altra eina anomenada Buck. Aquesta eina de creació única pot crear qualsevol cosa a l’hora d’empaquetar l’aplicació. No cal que hi hagi opcions separades com Gradle o Ant quan s’orientin diferents plataformes.

Captura d'errors a temps

Amb tot el món que treballa en diferents coses i tantes actualitzacions apareixen regularment, és molt important que les empreses s’asseguren que el seu programari funcioni i que no tingui problemes greus. En la seva majoria, Facebook té un historial molt bo de mantenir les coses en marxa.

A aquest efecte, l'equip divideix les proves de programari en nivells, denominats C1, C2 i C3.

C1 està provant internament i tots els empleats utilitzaran aquesta versió. Durant C2, la versió travessa el 2 per cent del públic en general, i C3 la producció. Si es troba alguna cosa realment greu, tots els empleats podran accedir al botó d’aturada d’emergència per aturar la producció.

Els voluntaris que es presenten per mantenir el nivell progressiu passen amb el nom de "tree huggers" (perquè les branques), i ho fan a més dels seus treballs habituals.

A Mobile, els nivells similars s’anomenen alfa, beta i prod. Alfa significa una prova interna, que tots els empleats correran. El procés de qualsevol empresa amb els seus propis productes s'anomena "menjar per a gossos", des de "menjar el vostre propi menjar per a gossos".

Els provadors també tenen a la seva disposició algunes eines interessants i exclusives per informar ràpidament d’errors. Una és "Rageshake", on simplement agitar el dispositiu amb frustració permetrà realitzar un informe d'errors, com en Google Maps.

Els provadors també tenen a la seva disposició algunes eines interessants i exclusives per informar ràpidament d’errors

Durant alfa (que es refereix efectivament a qualsevol prova interna), Facebook també utilitza proves automàtiques per executar l'aplicació. Per exemple, un programari recentment adquirit anomenat "Sapienz" funciona fonamentalment fent clic a cada botó i utilitzant totes les funcions d'un assalt aleatori fins que es produeixi un bloqueig. A continuació, registra la traça de la pila, registra l'acció i es torna a informar.

L’aplicació beta (la versió provada pel públic general) passa per una petita subsecció (~ 2%) del gran públic. Aquest petit fragment rebrà l'actualització abans d'hora, proporcionant a Facebook comentaris reals del món. Si tot sembla bo, l'actualització es destina a tota la població i el procés comença de nou.

Eines potents d’automatització i multiplicació de forces

Per mantenir tot aquest procés el més ràpid i el més suau possible, Facebook utilitza un gran nombre d’eines diferents. Ja hem vist com l'empresa utilitza Phabricator i Sapienz, però té altres eines i plugins per a altres etapes.

Una eina anomenada Picknic recopila totes les sol·licituds d’extracció (canvis que han fet els empleats) en un sol lloc per fer una revisió ràpida i senzilla.

Quan es fa un error es produeix un error, un bot anomenat Nagbot informa als responsables i els aplega suaument perquè es facin el treball. L'ús d'una IA rudimentària per gestionar aquest procés no només garanteix la feina feta, sinó que també permet al gestor evitar el "dolent" fent malbé constantment!

quan es fa una prova, es produeix un error que algú va arreglar, un bot anomenat Nagbot informa als responsables i els produeix suaument que es facin la feina

Crashbot és un altre bot responsable de comunicar aquests errors quan es produeixen, i és preferible a les mètriques de la consola de Google, ja que es reporten en temps real. Crashbot indicarà un problema un cop que els problemes superen el "llindar de bloqueig acceptable". Això pot ser degut al nombre de persones que experimenten l'error o al nombre de vegades que un sol usuari ha trobat el mateix error. De qualsevol forma, Facebook també tindrà una mètrica que mostra el nombre d’usuaris tristos.

Per a la comunicació interna, Facebook utilitza una cosa anomenada Workplace. Es tracta efectivament d’una versió de Facebook destinada a les empreses, que proporciona una forma útil d’obtenir informació sobre els membres de l’equip i comunicar-se ràpidament amb els que s’estan a l’altra banda de l’oficina de distribució. Facebook també ven aquest programari a tercers.

Per descomptat, Facebook no perdrà temps carregant cada nova versió de les seves aplicacions a Play Store, App Store, Amazon i tota la resta. També hi ha una aplicació per al tren de trens mòbils.

Pensaments que tanquen

Mantenir una aplicació com Facebook actualitzada és una empresa immensa, i l’empresa encara ha de convèncer els usuaris perquè instal·lin actualitzacions actuals. Això és especialment difícil als països on no es garanteix la connectivitat. Al Canadà, només un percentatge dels usuaris encara tenen una versió de Facebook de més d'un any. A Etiòpia, el nombre s'aproxima al 50 per cent!

L’equip de Facebook treballa clarament molt i fa servir una gran quantitat d’eines i processos per mantenir-ho tot el més racional possible. Al final del dia, l’equip de desenvolupament vol complir cinc principis dominants:

  • Manteniu el mestre net.
  • Tenir un equip amb experiència en enginyeria de llançament.
  • Allibereu-lo a temps sovint.
  • Productes per a aliments per a gossos
  • Sigueu amables amb els usuaris.

Sona senzill, però com es pot veure implica una gran quantitat de plaques de filar. Fins i tot mantenir totes les eines utilitzades en el procés és un projecte en si mateix!

Per la seva banda, Facebook manté un ambient agradable i alegre a l’oficina de Londres. L’equip intercanvia GIFs i memes a través de plugins, anomenen sales basades en “les coses que l’odi britànic” i els càstigs de Shakespearean i tenen molt d’orgull en la seva tasca. A Facebook treballen molt i juguen molt, i sembla que, en gran part, el sistema funciona.

La propera vegada que es presenti una nova actualització per a una de les vostres aplicacions més grans, aporteu una idea de tot el treball i organització que calgueu per arribar-hi.

Depré d'una filtració aparentment interminable, el Pixel 3a i el Pixel 3a XL arriben aquí!Tot do dipoitiu tenen molt en comú amb el eu homòleg mé car, coa que fa que ...

Google ha anunciat Google Pixel 3a i Pixel 3a XL a Google I / O 2019. Com havien uggerit nombroo rumor, el telèfon mòbil previto embalen gairebé tota la bondat del telèfon intel...

Recomanat Per Nosaltres