O privire interioară asupra procesului de dezvoltare a aplicațiilor mobile Facebook

Autor: Laura McKinney
Data Creației: 4 Lang L: none (month-011) 2021
Data Actualizării: 1 Iulie 2024
Anonim
High Density 2022
Video: High Density 2022

Conţinut


Recent, am vizitat sediul Facebook din Londra pentru a afla despre procesul de dezvoltare și menținere a aplicației sale mobile pentru Facebook. Aici se întâmplă mult mai mult decât vă dați seama probabil: unele dintre aplicațiile Facebook sunt gestionate aici în întregime, cum ar fi WhatsApp pentru desktop și aplicația pentru locul de muncă orientată spre afaceri.

Birourile sunt exact ceea ce vă așteptați de la imaginea Facebook, deși poate nu chiar la nivelurile de exces ale rețelei sociale. Acesta este un loc în care se lucrează serios, dar există totuși o atmosferă la modă, ciudată și relaxată. Angajații pot transporta laptopuri pentru a lucra oriunde doresc, există o sală de tipărire pentru realizarea de afișe (doar pentru că), au comandat lucrări de artă pe mai mulți pereți și o broască țestoasă uriașă - nu am primit niciodată un răspuns pentru ce.

Oh, iar mâncarea este incredibilă. Am fost acolo în Anul Nou Chinezesc și am avut multiplu burtele de porc Vremuri bune.


Cu toate acestea, nu am fost acolo să mă bucur de decor și de bucătărie, am fost acolo pentru a afla despre Facebook pe mobil. Mai precis: cum de pe Pământ te gândești chiar la menținerea unui proiect atât de mare și ambițios? Backend-ul Facebook servește peste două miliarde de oameni, iar aplicația pentru Android vede singură o nouă versiune lansată în fiecare săptămână.

Cum gestionați o aplicație cu un număr atât de ambițios de funcții

Am vorbit cu Tal Kellner prin propriul sistem de telepresență Facebook. Tal este un manager de programe tehnice, responsabil cu echipa de inginerie de presă cu sediul în biroul de inginerie Tel Aviv. Ea a fost mai mult decât fericită să împărtășească detaliile crunte.

Tal și echipa ei își încarcă versiunea Lite de Facebook pe iOS pentru prima dată


Ceea ce am învățat a fost destul de fascinant atât din perspectiva dezvoltatorului, cât și ca utilizator. Iată ce am aflat.

Management de proiect la Facebook - De ce Scrum> Cascadă

Când priviți orice proiect mare, trebuie să luați în considerare abordarea dvs. de management de proiect. Un astfel de exemplu se numește gestionarea proiectului „cascadă”. Aceasta este o abordare secvențială și liniară în care lucrați pe o fază specifică la rândul ei, cum ar fi trecerea de la idee la implementare la testare până la lansare.

companii precum Facebook optează în schimb pentru o abordare mai modernă a managementului de proiect numit „scrum”

În mod crucial, în această abordare nu începeți următoarea fază decât până când faza anterioară este completă. Sistemul provine din fabricație, unde anumite etape se bazează adesea pe etapa anterioară: trebuie să creați cărămizi înainte de a putea construi un perete!

Când vine vorba de software, această abordare este restrictivă. În cel mai rău caz, o actualizare poate dura atât de mult pentru a se derula, fiind învechită până la sosirea timpului. Ducele Nukem Pentru oricine?

Astfel, unele companii de software optează în schimb pentru o abordare mai modernă numită „scrum”, care este o metodologie agilă. Această metodă prioritizează munca care contează cel mai mult și o împarte în bucăți modulare. Se bazează pe comunicarea dintre departamentele interne și chiar agenții individuali care lucrează singuri pe propriile colțuri de cod.

Rezultatul, în teorie, este că toată lumea poate lucra la ceea ce este cel mai presant pentru ei tot timpul și că orice altă parte a afacerii știe ce fac. Există un nivel ridicat de proprietate pentru fiecare inginer și fiecare este responsabil în cele din urmă de propria muncă. Acest lucru nu numai că face compania mai agilă, dar, de asemenea, sperăm că crește satisfacția la locul de muncă. Nimeni nu este doar un vârf în mașină.

oricine din orice parte din organizație poate sugera o idee pentru o nouă caracteristică

Am fost foarte impresionat să aud că oricine de oriunde în cadrul organizației poate sugera o idee pentru o nouă caracteristică, și apoi să pot lucra la asta dacă i se va da înainte. Uneori, acest lucru s-ar putea dezvolta chiar și în propria sa aplicație separată! Facebook este mult mai mult un proiect de colaborare decât viziunea aplicată de jos în jos a câtorva persoane (sau a unei persoane), care este adesea înfățișată așa cum este.

Acest lucru permite Facebook să implementeze un ciclu de dezvoltare extrem de rapid, care să permită o nouă actualizare mobilă în fiecare săptămână și mii de angajamente (modificări propuse de cod) între atunci. Dacă credeți că este impresionant, versiunea web (a cărei backend servește și aplicația mobilă) se actualizează o dată la două-trei ore!

Facebook este în general foarte susținător de idei și startup-uri noi. Are chiar o inițiativă numită LDN LAB dedicată susținerii de idei și afaceri noi.

Găsirea echilibrului

Luate din diapozitivele proprii ale lui Tal

Desigur, va rămâne întotdeauna o limită atunci când vine vorba de ceea ce o companie se poate ocupa. Cu acest cod mult, există întotdeauna loc pentru îmbunătățiri, dar trebuie să vină un moment în care versiunea este considerată „suficient de bună”.

Acolo intră în joc „triunghiul de aur”. Cele trei puncte ale acestui triunghi reprezintă caracteristici, calitate și timp. Fiecare companie are de ales aici: când vine vorba de timp de creștere, acordați prioritate noilor funcții, în detrimentul preluării puțin? Permiteți unei erori minore existente să alunece prin net dacă înseamnă că puteți adăuga mai multe funcții? Când nu poți face totul, ești obligat să acorde prioritate.

La Facebook, prioritățile sunt calitatea și timpul. Dacă o actualizare se încadrează în spatele ferestrei alocate, o caracteristică va fi probabil împinsă înapoi; mai degrabă decât să fie tăiat un colț sau actualizarea întârziată.

Modificarea controlului versiunii și a jonglerilor

Pentru gestionarea acestor actualizări și modificări ale codului, Facebook folosește propria versiune modificată a Mercurial. Acesta este în loc de Git-ul foarte utilizat, care se pare că nu s-a extins la fel de bine pentru scopurile companiei. Phabricator este echivalentul GitHub și folosește o mulțime de pluginuri pentru a ajuta la eficientizarea fluxului de lucru și uneori doar pentru a face lucrurile un pic mai distractive (Facebook îi plac meme-urile aparent).

Pentru non-programatorii de acolo, Mercurial, precum Git, este un sistem de control al versiunilor. Permite un număr mare de oameni să lucreze la o singură bucată de software și să facă modificări și remedieri fără a pune în pericol versiunea principală a aplicației, numită „ramură principală”. Aceste instrumente ajută la prevenirea conflictelor de cod și permit experimentarea. Numai după ce o modificare a fost aprobată complet pe o ramură de testare, ea va fi apoi angajată în fața comandantului.

Imaginați-vă dacă un programator sărac a făcut o dactilografie care a spart întregul cod și a existat o singură versiune! Asta ar fi o zi proastă pentru toată lumea.

Instrumente precum Mercurial fac posibilă punerea în aplicare a abordării scrum cu o ușurință relativă, permițând tuturor să lucreze simultan la funcții specifice și bug-uri, înainte de contopirea tuturor într-un singur vas mare.

O dată pe săptămână, un candidat de eliberare va fi tăiat din master și acesta va trece prin faza de testare. Coderii care și-au petrecut toată săptămâna lucrând la remedieri de erori sau la noi caracteristici își vor încrucișa degetele în speranța că munca lor o va face în noua actualizare.

Orice corecții sau modificări de ultimă oră efectuate de membrii echipei vor trebui să fie „culese cireș” pentru includerea în noua sucursală de către cei responsabili. Se presupune că s-a știut că folosesc mită sub formă de bomboane de ciocolată și alcool dăruite factorilor de decizie.

Pentru a compila, Facebook folosește un alt instrument numit Buck. Acest instrument unic de construire poate construi orice când vine vorba de ambalarea aplicației. Nu este nevoie de opțiuni separate, cum ar fi Gradle sau Ant, atunci când vizați diferite platforme.

Prinderea de erori la timp

Cu toată lumea care lucrează la diferite lucruri și atât de multe actualizări apar periodic, este foarte important ca companiile să se asigure că software-ul lor funcționează și să nu aibă probleme grave. În cea mai mare parte, Facebook are un palmares destul de bun în ceea ce privește menținerea lucrurilor.

În acest scop, echipa împarte testarea software în niveluri, denumite C1, C2 și C3.

C1 este testare internă și toți angajații vor rula versiunea respectivă. În timpul C2, versiunea parcurge 2% din publicul larg, iar C3 este producția. În cazul în care se găsește ceva cu adevărat grav, fiecare angajat va putea accesa un buton de oprire de urgență pentru a duce producția la o oprire de măcinare.

Voluntarii care s-au prezentat pentru a menține nivelurile în progres, merg cu numele de „huggers de copaci” (pentru că ramurile) și fac acest lucru pe deasupra locurilor de muncă obișnuite.

Pe mobil, nivelurile similare sunt numite alfa, beta și prod. Alpha înseamnă un test intern, pe care îl vor executa toți angajații. Procesul oricărei companii care folosește propriile produse în acest fel se numește „hrănirea câinilor” - de la „a-ți mânca propria hrană pentru câini”.

De asemenea, testerii au la dispoziție câteva instrumente unice și interesante pentru raportarea rapidă a erorilor. Unul este „Rageshake”, în cazul în care pur și simplu agitarea dispozitivului în frustrare va permite un raport al erorilor, ca în cazul Google Maps.

De asemenea, testerii au la dispoziție câteva instrumente unice și interesante pentru raportarea rapidă a erorilor

În timpul alfa - care se referă în mod eficient la orice testare internă - Facebook folosește și testarea automată pentru a rula aplicația. De exemplu, un software recent achiziționat numit „Sapienz” funcționează în esență făcând clic pe fiecare buton și folosind fiecare caracteristică într-un atac aleatoriu până când declanșează un crash. Apoi, înregistrează urmele stivei, înregistrează acțiunea și raportează înapoi.

Aplicația beta (versiunea testată de publicul larg) trece printr-o subsecțiune mică (~ 2%) din publicul larg. Acest mic fragment va primi actualizarea înainte de timp, oferind Facebook un feedback din lumea reală. Dacă totul pare bine, actualizarea se adresează întregii populații, iar procesul începe din nou.

Instrumente puternice pentru automatizare și înmulțirea forței

Pentru a menține întregul proces cât mai rapid și cât mai neted posibil, Facebook folosește un număr mare de instrumente diferite. Am văzut deja modul în care compania folosește Phabricator și Sapienz, dar are alte instrumente și pluginuri pentru alte etape.

Un instrument numit Picknic adună toate cererile de tragere (modificările pe care le-au făcut angajații) într-un singur loc pentru o examinare rapidă și ușoară.

Atunci când testarea produce o eroare, un bot numit Nagbot îi informează pe cei responsabili și îi produce cu blândețe să acționeze munca. Utilizarea unei AI rudimentare pentru a gestiona acest proces, nu numai că asigură că munca este finalizată, dar permite, de asemenea, managerului să evite să fie „tipul rău” dând greș în mod constant!

atunci când testarea produce o eroare pe care o poate remedia cineva, un bot numit Nagbot îi informează pe cei responsabili și îi răspunde cu blândețe în procesul de finalizare

Crashbot este un alt bot responsabil pentru raportarea erorilor așa cum se întâmplă și este de preferat valorilor din Consola Google, deoarece raportează în timp real. Crashbot va semnaliza o problemă odată ce problemele depășesc un „prag de accident acceptabil”. Acest lucru se poate datora numărului de persoane care întâmpină eroarea sau a numărului de ori când un singur utilizator a întâmpinat aceeași eroare. În orice caz, Facebook va avea, de asemenea, o metrică care arată numărul de utilizatori tristi.

Pentru comunicarea internă, Facebook folosește ceva numit Workplace. Aceasta este efectiv o versiune de Facebook destinată întreprinderilor, care oferă o modalitate utilă de a obține informații despre membrii echipei și de a comunica rapid cu cei care stau de cealaltă parte a biroului de extindere. De asemenea, Facebook vinde acest software către terți.

Desigur, Facebook nu va pierde timpul încărcând fiecare nouă versiune a aplicațiilor sale în Play Store, App Store, Amazon și restul. Există, de asemenea, o aplicație pentru cea denumită Mobile Push Train.

Gânduri de închidere

Menținerea unei aplicații precum Facebook este una imensă și compania trebuie să convingă utilizatorii să instaleze efectiv acele actualizări. Acest lucru este deosebit de dificil în țările în care conectivitatea nu este garantată. În Canada, doar un procent din utilizatori rulează încă o versiune de Facebook de peste un an. În Etiopia, acest număr este mai aproape de 50 la sută!

Echipa de la Facebook lucrează clar foarte mult și folosește o mulțime de instrumente și procese pentru a menține totul cât mai eficient. La sfârșitul zilei, echipa de dezvoltare își propune să respecte cinci principii de conducere:

  • Păstrați stăpânul curat.
  • Să aveți o echipă cu experiență în inginerie.
  • Eliberați-vă la timp des.
  • Produse alimentare pentru câini.
  • Fii amabil cu utilizatorii.

Suna simplu, dar după cum vedeți, implică o mulțime de plăci de învârtit. Chiar și menținerea tuturor instrumentelor utilizate în proces este un proiect în sine!

La rândul său, Facebook menține o atmosferă prietenoasă și plină de inimă la biroul din Londra. Echipa schimbă GIF-uri și memorii prin plugin-uri, numește camere bazate pe „lucruri pe care britanicii le urăsc” și pe pumnii Shakespearean și se bucură de multă mândrie în activitatea lor. La Facebook, muncesc din greu și se joacă din greu și se pare că, în cea mai mare parte, sistemul funcționează.

Data viitoare o nouă actualizare va fi lansată pentru una dintre aplicațiile dvs. mai mari, economisiți toate lucrările și organizația necesară pentru a ajunge acolo.

ub-mărcile unt înfuriate în acete zile, deoarece producătorii livrează noi mărci din divere motive. Acum, e pare că Vivo ete cea mai recentă companie care tachinează un ub-brand, numit IQOO....

Leaker Ice Univer a împărtășit câteva detalii depre ceea ce ne-am putea aștepta de la zvonul Vivo Nex 3. Leaker a potat o fotografie cu un corp de ticlă, în interiorul căruia telefonul ...

Articole Fascinante