„Facebook“ mobiliųjų programų kūrimo proceso žvilgsnis iš vidaus

Autorius: Laura McKinney
Kūrybos Data: 4 Balandis 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Crypto Pirates Daily News - February 2nd, 2022 - Latest Cryptocurrency News Update
Video.: Crypto Pirates Daily News - February 2nd, 2022 - Latest Cryptocurrency News Update

Turinys


Neseniai lankiausi „Facebook“ būstinėje Londone, norėdama sužinoti apie mobiliosios „Facebook“ programos kūrimo ir priežiūros procesą. Čia vyksta daug daugiau, nei jūs tikriausiai suprantate: kai kurios „Facebook“ programos čia tvarkomos visos, pvz., „WhatsApp“, skirta staliniams kompiuteriams, ir į verslą orientuota „Workplace“ programa.

Biurai yra būtent tai, ko jūs galite tikėtis iš „Facebook“ įvaizdžio, nors galbūt ne visai pagal socialinio tinklo perteklių. Tai vieta, kur reikia nuveikti rimtą darbą, tačiau vis dėlto yra madinga, keista ir rami atmosfera. Darbuotojai gali nešiotis nešiojamuosius kompiuterius, kad dirbtų, kur tik nori, yra plakatų (tik todėl) spaustuvė, užsakyti meno kūriniai ant kelių sienų ir milžinas „Ninja Turtle“ - niekada negavau atsakymo, kodėl.

O ir maistas neįtikėtinas. Aš ten buvau per kinų Naujuosius metus ir turėjau daugkartinis kiaulienos varpai. Geri laikai.


Tačiau aš nebuvau ten, kad mėgaučiausi dekoru ir virtuve, aš ten mokiausi apie „Facebook“ mobiliajame telefone. Konkrečiau: kaip jūs Žemėje netgi einate palaikyti tokį didelį ir ambicingą projektą? „Facebook“ programinė įranga aptarnauja daugiau nei du milijardus žmonių, ir vien „Android“ programa mato naują versiją, išleidžiamą kiekvieną savaitę.

Kaip valdote programą su tokiu ambicingu funkcijų skaičiumi

Kalbėjausi su Talu Kellneriu per „Facebook“ savo sukurtą „Teleresence“ sistemą. Tal yra techninės programos vadovas, atsakingas už „Release Engineering Team“, įsikūrusį Tel Avivo inžinerijos biure. Ji mielai pasidalino graudžiomis detalėmis.

Tal ir jos komanda pirmą kartą įkelia „Lite“ „Facebook“ versiją į „iOS“

Tai, ką sužinojau, buvo gana žavi tiek iš kūrėjo, tiek kaip vartotojo. Štai ką aš sužinojau.

Projekto valdymas „Facebook“ - Kodėl „Scrum“> Krioklys

Nagrinėdami bet kurį didelį projektą, turite atsižvelgti į savo projekto valdymo metodą. Vienas tokių pavyzdžių vadinamas „krioklio“ projekto valdymu. Tai yra nuoseklus ir linijinis požiūris, kai jūs savo ruožtu dirbate tam tikroje fazėje, pavyzdžiui, pradedant idėjomis ir įgyvendinant bandymais, norint paleisti.


įmonės, tokios kaip „Facebook“, pasirenka modernesnį požiūrį į projektų valdymą, vadinamą „scrum“

Svarbiausia, kad laikydamiesi šio požiūrio nepradėsite kito etapo, kol nebus baigtas ankstesnis etapas. Sistema atsirado iš gamybos, kai tam tikri etapai dažnai pasikliauja ankstesniu etapu: prieš statydami sieną turite įsigyti plytų!

Kalbant apie programinę įrangą, šis požiūris yra ribojantis. Blogiausiu atveju atnaujinimas gali užtrukti tiek laiko, kad jis bus pasenęs iki jo pasirodymo. Kunigaikštis Nukem amžinai kas nors?

Taigi kai kurios programinės įrangos įmonės pasirenka modernesnį požiūrį, vadinamą „scrum“, kuris yra judri metodika. Šis metodas teikia pirmenybę svarbiausiam darbui ir suskaido jį į modulinius gabalus. Tai priklauso nuo komunikacijos tarp vidaus departamentų ir net atskirų agentų, dirbančių atskirai pagal savo kodą.

Teoriškai rezultatas yra tas, kad visi gali dirbti tai, kas jiems visą laiką reikalinga, ir kad visos kitos verslo dalys žino, ką daro. Kiekvieno inžinieriaus nuosavybė yra aukšta, ir kiekvienas asmuo yra atsakingas už savo darbą. Tai ne tik padaro įmonę judresnę, bet ir, tikiuosi, padidina pasitenkinimą darbo vietoje. Niekas nėra tik skruzdė mašinoje.

bet kas iš bet kurios organizacijos vietos gali pasiūlyti naujos funkcijos idėją

Man buvo labai malonu išgirsti, kad bet kuris asmuo iš bet kurios organizacijos vietos gali pasiūlyti naujos funkcijos idėją, ir tada galėtų dirbti prie to, jei patektų į priekį. Kartais tai gali išsivystyti į atskirą programą! „Facebook“ yra daug labiau bendradarbiavimo projektas, o ne kelių žmonių (arba vieno asmens) įgyvendinama vizija iš viršaus į apačią, ji dažnai vaizduojama kaip.

Tai leidžia „Facebook“ įgyvendinti ypač spartų plėtros ciklą, leidžiantį kiekvieną savaitę atnaujinti naują mobilųjį telefoną, o tarp jų - tūkstančiai įsipareigojimų (siūlomi kodo pakeitimai). Jei manote, kad tai įspūdinga, žiniatinklio versija (kurios pagrindinė programa taip pat naudojama programai mobiliesiems) atnaujinama kartą per dvi ar tris valandas!

„Facebook“ paprastai labai palaiko naujas idėjas ir pradedančiuosius. Ji netgi turi iniciatyvą, pavadintą LDN LAB, skirtą naujų idėjų ir verslo rėmimui.

Pusiausvyros ieškojimas

Paimta iš „Tal“ skaidrių

Be abejo, vis dar bus ribota, kai reikia spręsti, ką įmonė gali atlikti. Turint tiek daug kodo, visada yra ką tobulinti, tačiau turi ateiti laikas, kai versija bus laikoma „pakankamai gera“.

Štai kur prasideda „auksinis trikampis“. Trys šio trikampio taškai rodo ypatybes, kokybę ir laiką. Kiekviena įmonė čia gali pasirinkti: kai reikia krizės laiko, ar teikiate pirmenybę naujoms funkcijoms, o tai užtrunka šiek tiek ilgiau? Ar leidžiate nepilnai egzistuojančiai klaidai paslysti per tinklą, jei tai reiškia, kad galite pridėti daugiau funkcijų? Kai negalite padaryti visko, esate priversti teikti pirmenybę.

„Facebook“ prioritetai yra kokybė ir laikas. Jei naujinys nepatenka į skirtą langą, funkcija tikriausiai bus grąžinta atgal; o ne supjaustytas kampas ar atidėtas atnaujinimas.

Versijos valdymas ir žongliravimas pakeitimais

Šiems atnaujinimams ir kodo pakeitimams tvarkyti „Facebook“ naudoja savo modifikuotą „Mercurial“ versiją. Tai vietoj labai plačiai naudojamo „Git“, kuris, matyt, nebuvo taip mastiškai pritaikytas įmonės tikslams. „Phabricator“ yra „GitHub“ atitikmuo. Jis naudoja daugybę papildinių, kad padėtų supaprastinti darbo eigą ir kartais, kad viskas būtų šiek tiek linksmiau („Facebook“, matyt, mėgsta savo memes).

Ne programuotojams, „Mercurial“, kaip ir „Git“, yra versijų valdymo sistema. Tai leidžia dideliam skaičiui žmonių dirbti su viena programinės įrangos dalimi ir atlikti pakeitimus bei taisymus nepakenkiant pagrindinei programos versijai, vadinamai „pagrindine šaka“. Šie įrankiai padeda išvengti kodų konfliktų ir leidžia eksperimentuoti. Tik tada, kai pakeitimai bus kruopščiai patvirtinti bandymo šakoje, jie bus įpareigoti kapitonui.

Įsivaizduokite, jei koks nors blogas programuotojas padarė klaidą, kuri sugadino visą kodą ir buvo tik viena versija! Tai būtų bloga diena visiems.

Įrankiai, tokie kaip „Mercurial“, suteikia galimybę gana lengvai įgyvendinti „scrum“ metodą, leisdami visiems kartu dirbti su konkrečiomis funkcijomis ir klaidomis, prieš sujungdami juos į vieną didelį puodą.

Kartą per savaitę kandidatas į apyvartą bus pašalintas iš meistro, o tada jis bus išbandytas. Programuotojai, kurie visą savaitę praleido dirbdami prie klaidų taisymo ar naujų funkcijų, šiuo metu kerta pirštus tikėdamiesi, kad jų darbas pateks į naująjį atnaujinimą.

Bet kuriuos paskutinės minutės pataisymus ar pakeitimus, kuriuos padarė komandos nariai, turėsite „pasirinkti vyšnias“, kad atsakingi asmenys galėtų jas įtraukti į naują skyrių. Pranešama, kad buvo žinoma, kad jie kyšius naudoja šokolado ir alkoholio pavidalu, dovanojami sprendimus priimantiems asmenims.

Kompiliavimui „Facebook“ naudoja kitą įrankį, pavadintą „Buck“. Šis vienas kūrimo įrankis gali sukurti bet ką, kai reikia pakuoti programą. Taikant skirtingas platformas nereikia atskirų parinkčių, tokių kaip „Gradle“ ar „Ant“.

Laiku pastebėti klaidas

Kai visi dirba prie skirtingų dalykų ir reguliariai atnaujina daugybę atnaujinimų, labai svarbu, kad įmonės įsitikintų, jog jų programinė įranga veikia ir ar nėra jokių rimtų klaidų. Daugeliu atvejų „Facebook“ yra gana gera, kad viskas būtų vykdoma.

Šiuo tikslu komanda programinės įrangos testavimą suskaido į pakopas, nurodytas kaip C1, C2 ir C3.

C1 yra vidinis testavimas ir visi darbuotojai naudos šią versiją. C2 metu versiją naudoja 2 procentai visos visuomenės, o C3 yra gamyba. Jei bus rasta kažkas rimto, kiekvienas darbuotojas galės naudotis avarinio sustabdymo mygtuku, kad sustabdytų gamybą.

Savanoriai, kurie pasiūlė išlaikyti pakopų pažangą, vadinasi „medžio medžiotojai“ (nes šakos), ir tai daro papildomai prie įprastų darbų.

Mobiliajame įrenginyje panašios pakopos vadinamos alfa, beta ir prod. Alfa reiškia vidinį testą, kurį atliks visi darbuotojai. Bet kurios įmonės, kuri tokiu būdu naudoja savo produktus, procesas yra vadinamas „šunų maitinimu“ - pradedant „valgytu savo šunų maistu“.

Testuotojai taip pat turi keletą unikalių ir įdomių įrankių, skirtų greitai pranešti apie klaidas. Vienas iš jų yra „Rageshake“, kur tiesiog sukratant įrenginį, bus galima pranešti apie klaidą, kaip naudojant „Google Maps“.

Testuotojai taip pat turi keletą unikalių ir įdomių įrankių, skirtų greitai pranešti apie klaidas

Alfa metu - tai iš tikrųjų reiškia bet kokį vidinį testavimą - „Facebook“ taip pat naudoja automatinį testavimą, kad paleistų programą. Pvz., Vienas neseniai įsigytas programinės įrangos gaminys, vadinamas „Sapienz“, iš esmės veikia spustelėdamas kiekvieną mygtuką ir naudodamas kiekvieną funkciją atsitiktiniame puolime, kol jis suaktyvina avariją. Tada jis registruoja krūvos pėdsaką, įrašo veiksmą ir praneša atgal.

Beta programa (versija, kurią išbandė plačioji visuomenė) eina per nedidelį poskyrį (~ 2 procentus) plačiosios visuomenės. Šis mažas fragmentas gaus atnaujinimą anksčiau laiko, „Facebook“ pateikdamas realaus pasaulio atsiliepimus. Jei viskas atrodo gerai, atnaujinimas išleidžiamas visiems gyventojams ir procesas prasideda iš naujo.

Galingi įrankiai automatizavimui ir jėgų dauginimui

Kad šis procesas vyktų kuo greičiau ir sklandžiau, „Facebook“ naudoja daugybę skirtingų įrankių. Jau matėme, kaip įmonė naudoja „Phabricator“ ir „Sapienz“, tačiau ji turi kitų įrankių ir papildinių, skirtų kitiems etapams.

Įrankis pavadinimu „Picknic“ surenka visas pateikimo užklausas (darbuotojų atliktus pakeitimus) vienoje vietoje, kad jas būtų galima greitai ir lengvai peržiūrėti.

Kai bandymai užfiksuoja klaidą, „Nagbot“ vadinamas robotas informuoja atsakingus asmenis ir švelniai skatina juos pradėti darbą. Griežto AI naudojimas šiam procesui ne tik užtikrina, kad darbas bus atliktas, bet ir leidžia vadovui nuolat būti „blogiukui“, nuolatos kabinantis!

kai atliekant bandymus nustatoma klaidą, kurią reikia ištaisyti, robotas, vadinamas Nagbot, informuoja atsakingus asmenis ir švelniai skatina juos pradėti darbą

„Crashbot“ yra dar vienas robotas, atsakingas už tų klaidų pranešimą, kai jos įvyksta, ir ji yra labiau tinkama metrikai iš „Google Console“, nes ji teikia ataskaitas realiu laiku. „Crashbot“ pažymės problemą, kai problemos viršys „priimtiną strigčių slenkstį“. Tai gali būti dėl to, kad klaidą patiria daug žmonių arba kiek kartų vienas vartotojas susidūrė su ta pačia klaida. Bet kuriuo atveju „Facebook“ taip pat turės metriką, rodančią liūdnų vartotojų skaičių.

Vidiniam bendravimui „Facebook“ naudoja tai, kas vadinama „Workplace“. Tai iš tikrųjų yra „Facebook“ versija, skirta įmonėms, kuri suteikia naudingą būdą gauti informaciją apie komandos narius ir greitai susisiekti su sėdinčiais kitoje besiplečiančio biuro pusėje. „Facebook“ taip pat parduoda šią programinę įrangą trečiosioms šalims.

Žinoma, „Facebook“ negaišta laiko įkeldamas kiekvieną naują savo programų versiją į „Google Play“ parduotuvę, „App Store“, „Amazon“ ir visas kitas. Taip pat yra programa, vadinama mobiliuoju traukiniu.

Uždarymo mintys

Atnaujinti tokią programą kaip „Facebook“ yra milžiniškas reikalas, ir įmonė vis tiek turi įtikinti vartotojus iš tikrųjų įdiegti tuos naujinius. Tai ypač sunku tose šalyse, kur neužtikrinama ryšio galimybė. Kanadoje tik vienas procentas vartotojų vis dar naudoja „Facebook“ versiją, vyresnę nei metai. Etiopijoje šis skaičius artimas 50 procentų!

„Facebook“ komanda, be abejo, dirba labai sunkiai ir naudoja daugybę įrankių bei procesų, kad viskas būtų kuo racionalesnė. Dienos pabaigoje plėtros komanda siekia laikytis penkių principų:

  • Laikykite šeimininką švarų.
  • Turėkite vieną komandą, turinčią patirties išleidimo inžinerijos srityje.
  • Atleiskite laiku dažnai.
  • Šunų maisto produktai.
  • Būk malonus vartotojams.

Tai skamba paprastai, tačiau, kaip matote, jis susijęs su daugybe verpimo plokštelių. Net visų proceso metu naudojamų įrankių priežiūra yra pats savaime projektas!

Savo ruožtu „Facebook“ biure Londone palaiko draugišką ir nuoširdžią atmosferą. Komanda keičiasi GIF ir memenimis per papildinius, pavadina kambarius remdamasi „britų nekenčiamais dalykais“ ir Šekspyro bausmėmis ir didžiuojasi savo darbu. „Facebook“ sistemoje jie sunkiai dirba ir daug žaidžia, ir panašu, kad dažniausiai sistema veikia.

Kitą kartą, kai bus įdiegtas naujas jūsų didesnių programų atnaujinimas, atsargiai galvokite apie visus darbus ir organizacijas, kurių prireikė norint jį gauti.

Tari „Google Pixel 4“ nebuvo pakankamai nutekėję, naujo ranko u įrenginiu leidoi į gamtą. Šį kartą geriau pažvelgime į „Face Unlock“, matinę įrenginio galinę dalį ir ekrano atnaujinimo dažnio parametr...

„Google Pixel“ erija garėja tuo, kad „Android“ naujiniu gauna prieš praktiškai viu kitu įrenginiu, tačiau panašu, kad keli „Pixel“ vartotojai praneša apie didelę problemą po atnaujinimo į „Android 10“...

Įdomu Šiandien