Sissevaade Facebooki mobiilirakenduse arendusprotsessi

Autor: Laura McKinney
Loomise Kuupäev: 4 Aprill 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Sissevaade Facebooki mobiilirakenduse arendusprotsessi - Rakendused
Sissevaade Facebooki mobiilirakenduse arendusprotsessi - Rakendused

Sisu


Hiljuti külastasin Londoni Facebooki peakorterit, et saada teada selle mobiilse Facebooki rakenduse arendamise ja hooldamise protsessist. Siin jätkub palju rohkem, kui arvatavasti arvata oskate: mõnda Facebooki rakendust käsitletakse siin tervikuna, näiteks lauaarvuti jaoks mõeldud WhatsApp ja ettevõttele suunatud töökoharakendus.

Kontorid on just need, mida Facebooki pildilt oodata võiksite, ehkki mitte just suhtlusvõrgustiku liigse tasemeni. See on koht, kus saab tõsist tööd teha, kuid seal on siiski trendikas, pentsik ja pingevaba õhkkond. Töötajad võivad kaasas kanda sülearvuteid, kuhu nad tööle lähevad, ükskõik kus nad valivad, seal on trükikoda plakatite valmistamiseks (just seetõttu), mitmele seinale tellitud kunstiteos ja hiiglaslik Ninja kilpkonn - ma ei saanud kunagi vastust, miks.

Oh, ja toit on uskumatu. Olin seal Hiina uusaasta ajal ja mul oli mitu sealiha kõhud. Head ajad.


Kuid ma ei viibinud seal dekoratsiooni ja köögi nautimiseks, vaid olin seal, et õppida Facebooki mobiilis. Täpsemalt: kuidas saaksite Maal isegi säilitada seda suurt ja ambitsioonikat projekti? Facebooki taustprogramm teenindab üle kahe miljardi inimese ja ainuüksi Androidi rakendus näeb igal nädalal välja uut versiooni.

Kuidas hallata nii ambitsioonika arvu funktsioonidega rakendust?

Rääkisin Tal Kellneriga Facebooki enda telepresence-süsteemi kaudu. Tal on tehniline programmijuht, vastutab Tel Avivi inseneribüroos asuva Release Engineering Team'i eest. Ta jagas sõmeraid detaile rohkem kui hea meelega.

Tal ja tema meeskond laadisid esimest korda Facebooki Lite-versiooni iOS-i üles


See, mida ma õppisin, oli päris põnev nii arendaja kui ka kasutaja seisukohast. Siit sain teada.

Projektijuhtimine Facebookis - Miks Scrum> juga

Mis tahes suurt projekti vaadates peate arvestama oma projektijuhtimise lähenemisviisiga. Üks selline näide on nn juga projektijuhtimine. See on järjestikune ja lineaarne lähenemisviis, kus töötate omakorda kindla faasi kallal, näiteks minnes ideest teostuseni ja lõpetades testimisega.

ettevõtted nagu Facebook valivad projekti juhtimiseks moodsama lähenemisviisi, mida nimetatakse “scrumiks”

Oluline on see, et selle lähenemisviisi korral ei alusta te järgmist etappi enne, kui eelmine etapp on lõpule jõudnud. Süsteem pärineb tootmisest, kus teatud etapid tuginevad sageli eelmisele etapile: enne seina ehitamist peate hankima tellised!

Tarkvara osas on see lähenemisviis piirav. Halvimal juhul võib värskenduse kasutuselevõtt võtta nii kaua aega, selle saabumise ajaks on see vananenud. Duke Nukem igavesti keegi?

Seega valivad mõned tarkvaraettevõtted selle asemel kaasaegsema lähenemise, mida nimetatakse “scrumiks”, mis on agar metoodika. See meetod seab esikohale kõige olulisema töö ja jaotab selle mooduliteks. See tugineb suhtlusele siseosakondade ja isegi üksikute esindajate vahel, kes töötavad üksi oma koodinurkade peal.

Teoreetiliselt on tulemuseks see, et kõik saavad töötada selle nimel, mis on nende jaoks kogu aeg hädavajalikum, ja et iga teine ​​osa ärist teab, mida nad teevad. Iga inseneri omand on kõrge ja kõik vastutavad oma töö eest lõppkokkuvõttes. See mitte ainult ei muuda ettevõtet paindlikumaks, vaid suurendab loodetavasti ka tööga rahulolu. Keegi pole lihtsalt masinas hammasratas.

igaüks organisatsiooni siseselt võib soovitada uue funktsiooni ideed

Mulle avaldas suurt muljet kuulda, et kõik organisatsiooni liikmed kõikjal võiksid välja pakkuda idee uue funktsiooni loomiseks ja asuksid selle kallal vaeva nägema. Mõnikord võib see areneda isegi omaette rakenduseks! Facebook on palju rohkem koostööprojekt kui mõne inimese (või ühe inimese) ülalt alla suunatud visioon, mida sageli kujutatakse.

See võimaldab Facebookil rakendada ülikiiret arendustsüklit, võimaldades igal nädalal uut mobiilivärskendust ja seejärel tuhandeid kohustusi (kavandatud koodimuudatused). Kui arvate, et see on muljetavaldav, värskendatakse veebiversiooni (mille taustprogramm pakub ka mobiilirakendust) üks kord iga kahe kuni kolme tunni järel!

Facebook toetab üldiselt väga uusi ideid ja alustavaid ettevõtjaid. Sellel on isegi algatus nimega LDN LAB, mis on pühendatud uute ideede ja ettevõtete toetamisele.

Tasakaalu leidmine

Võetud Tal enda slaididelt

Muidugi, kui asi puudutab seda, millega ettevõte hakkama saab, jääb alati piiriks. Selle suure koodiga on alati arenguruumi, kuid peab saabuma aeg, mil versiooni peetakse piisavalt heaks.

Seal tuleb mängu kuldne kolmnurk. Selle kolmnurga kolm punkti tähistavad funktsioone, kvaliteeti ja aega. Igal ettevõttel on siin oma valik: kas kriisiaja saabudes eelistate uusi funktsioone pisut pikema võtmise arvelt? Kas lubate väiksemal olemasoleval veal netist läbi libiseda, kui see tähendab, et saate lisada veel funktsioone? Kui te ei saa kõike teha, olete sunnitud tähtsustama.

Facebookis on prioriteedid kvaliteet ja aeg. Kui värskendus jääb määratud akna taha, lükatakse funktsioon tõenäoliselt tagasi; selle asemel, et nurka lõigata või värskendamist edasi lükata.

Versioonikontroll ja muudatuste žongleerimine

Nende värskenduste ja koodimuudatuste käsitlemiseks kasutab Facebook omaenda muudetud versiooni Mercurial. See on väga laialt kasutatava Giti asemel, mis ilmselt ei olnud ettevõtte eesmärkidel nii ulatuslik. Phabricator on GitHubi ekvivalent ja kasutab palju pistikprogramme, et töökorraldus sujuvamaks muuta ja mõnikord lihtsalt asju natuke lõbusamaks muuta (Facebookile meeldivad ilmselt tema meemid).

Sealsete programmeerijate jaoks on Mercurial, nagu ka Git, versioonikontrollisüsteem. See võimaldab suurel hulgal inimestel töötada ühe tarkvaraosaga ning teha muudatusi ja parandusi, ilma et see kahjustaks pearakenduse versiooni, mida nimetatakse peaharuks. Need tööriistad aitavad ära hoida koodikonflikte ja võimaldavad katsetamist. Ainult siis, kui muudatus on testiharus põhjalikult heaks kiidetud, antakse see kaptenile.

Kujutage ette, kui mõni vaene programmeerija tegi kirjavigu, mis rikkus kogu koodi ja seal oli ainult üks versioon! See oleks halb päev kõigile.

Tööriistad, nagu Mercurial, võimaldavad scrum-lähenemist suhteliselt hõlpsalt rakendada, lubades kõigil töötada enne funktsioonide ja vigade samaaegset ühendamist enne ühe suures potis ühendamist.

Kord nädalas lõigatakse vabastamiskandidaat kaptenilt ja see läbib seejärel testimisetapi. Koodrid, kes on terve nädala veetnud veaparanduste või uute funktsioonide kallal, lähevad sel hetkel üle sõrmede, lootes, et nende töö saab selle uueks värskenduseks.

Meeskonnaliikmete tehtud viimase hetke parandused või muudatused peavad vastutavate isikute uude harusse lisamiseks olema "kirsiks valitud". Teadaolevalt kasutavad nad otsustajatele andekaid altkäemaksu šokolaadide ja alkoholi kujul.

Kompileerimiseks kasutab Facebook teist tööriista nimega Buck. See üksik ehitustööriist suudab rakenduse pakkimisel ehitada ükskõik mida. Erinevatele platvormidele sihtimiseks pole vaja eraldi valikuid, näiteks Gradle või Ant.

Vigade õigeaegne leidmine

Kuna kõik tegelevad erinevate asjadega ja regulaarselt väljastatakse nii palju värskendusi, on väga oluline, et ettevõtted hoolitseksid selle eest, et nende tarkvara töötaks ja kas neil pole ühtegi tõsist viga. Enamasti on Facebookil asjade käekäigul üsna hea kogemus.

Selleks jagab meeskond tarkvara testimise astmeteks, mida nimetatakse C1, C2 ja C3.

C1 on sisemine testimine ja seda versiooni kasutavad kõik töötajad. C2 ajal läbib versioon 2 protsenti üldsusest ja C3 on tootmine. Kui midagi tõeliselt tõsist leitakse, pääseb iga töötaja juurde hädaseiskamisnupule, et tootmine jahvatada.

Vabatahtlikud, kes seavad end astme edenemise nimel edasi, kannavad nime “puu kallistajad” (sest oksad) ja teevad seda lisaks oma tavalisele tööle.

Mobiilis nimetatakse sarnaseid astmeid alfa-, beeta- ja prod. Alfa tähendab sisetesti, mille kõik töötajad läbi viivad. Protsessi, mida iga ettevõte kasutab oma tooteid sel viisil, nimetatakse “koeratoiduks” - alates “omaenda koeratoidu söömisest”.

Testijate käsutuses on ka mõni ainulaadne ja huvitav tööriist veadest kiireks teatamiseks. Üks neist on „Rageshake”, kus seadme raputamine lihtsalt pettumuseks võimaldab veateate, nagu Google Mapsi puhul.

Testijate käsutuses on ka mõni ainulaadne ja huvitav tööriist veadest kiireks teatamiseks

Alfa ajal - mis tegelikult viitab mis tahes sisemisele testimisele - kasutab Facebook rakenduse käitamiseks ka automaatset testimist. Näiteks töötab üks hiljuti omandatud tarkvaraosa, mille nimi on „Sapienz”, klõpsates igal nupul ja kasutades juhuslikus rünnakus kõiki funktsioone, kuni see käivitab krahhi. Seejärel logib ta virna jälje, registreerib toimingu ja edastab aruande.

Beetarakendus (üldsuse testitud versioon) läbib väikese osa (~ 2 protsenti) üldsusest. See väike katkend saab värskenduse enne tähtaega, pakkudes Facebookile reaalajas tagasisidet. Kui kõik tundub hea, läheb värskendus välja kogu elanikkonnale ja protsess algab uuesti.

Võimsad tööriistad automatiseerimiseks ja jõu korrutamiseks

Kogu selle protsessi võimalikult kiireks ja sujuvaks hoidmiseks kasutab Facebook suurt hulka erinevaid tööriistu. Oleme juba näinud, kuidas ettevõte kasutab Phabricatorit ja Sapienzit, kuid sellel etapil on muid tööriistu ja pistikprogramme.

Tööriist nimega Picknic koondab kõik tõmbetaotlused (töötajate tehtud muudatused) ühte kohta, et neid oleks kiire ja lihtne üle vaadata.

Kui testimine tekitab tõrke, teavitab robot Nagbot vastutajaid ja soovitab neil õrnalt tööd teha. Algse AI kasutamine selle protsessi käitlemiseks mitte ainult ei taga töö saamist, vaid võimaldab ka juhil pidevalt näägutamisega vältida pahameest!

kui testimine toob kellegi viga parandada, teatab robot Nagbot vastutavatele isikutele ja soovitab neil õrnalt tööd teha

Crashbot on veel üks robot, mis vastutab nendest vigadest teatamise eest, kui need tekivad, ja see on parem kui Google Console'i ​​mõõdikud, kuna see annab aru reaalajas. Crashbot tähistab probleemi, kui probleemid on ületanud „vastuvõetava krahhiläve”. Selle põhjuseks võib olla tõrkega inimeste arv või mitu korda üks kasutaja on sama tõrkega kokku puutunud. Mõlemal juhul on Facebookil ka meetrika, mis näitab kurbade kasutajate arvu.

Sisekommunikatsiooniks kasutab Facebook midagi, mida nimetatakse Workplace. See on tõhusalt ettevõtetele mõeldud Facebooki versioon, mis pakub kasulikku viisi meeskonna liikmete kohta teabe saamiseks ja kiire suhelda laialivalguva kontori teisel poolel asuvate inimestega. Facebook müüb seda tarkvara ka kolmandatele osapooltele.

Muidugi ei kavatse Facebook raisata oma rakenduste iga uue versiooni üleslaadimist Play poodi, App Store'i, Amazoni ja mujale. Selle jaoks on olemas ka rakendus, mida nimetatakse mobiilseks tõukejõuks.

Lõpetavad mõtted

Sellise rakenduse nagu Facebooki ajakohastamine on tohutu ettevõtmine ja ettevõte peab endiselt veenma kasutajaid need värskendused tegelikult installima. See on eriti keeruline riikides, kus ühenduvus pole tagatud. Kanadas kasutab vaid üks protsent kasutajaid üle aasta vanuse Facebooki versiooni. Etioopias on see arv lähemal 50 protsendile!

Facebooki meeskond töötab selgelt väga kõvasti ja kasutab palju tööriistu ja protsesse, et hoida kõike võimalikult sujuvalt. Päeva lõpuks on arendusmeeskonna eesmärk järgida viit valitsevat põhimõtet:

  • Hoidke kapten puhtana.
  • Tehke üks meeskond, kellel on vabastustehnika alal kogemusi.
  • Vabastage sageli õigel ajal.
  • Koeratooted.
  • Ole kasutajate vastu lahke.

See kõlab lihtsalt, kuid nagu näete, hõlmab see palju ketravaid plaate. Isegi kõigi protsessis kasutatavate tööriistade hooldamine on projekt omaette!

Facebook hoiab omalt poolt Londoni kontoris sõbralikku ja heasüdamlikku õhkkonda. Meeskond vahetab GIF-e ja meemid pistikprogrammide kaudu, nad nimetavad toad „brittide vihkamise“ ja Shakespeare'i puntide põhjal ning tunnevad oma töö üle uhkust. Facebookis töötavad nad kõvasti ja mängivad kõvasti ning tundub, et enamasti süsteem töötab.

Järgmine kord, kui ühe teie suurema rakenduse jaoks ilmub uus värskendus, säästke mõttega kogu töö ja korralduse jaoks, mis selle hankimiseks kulus.

Google Aitant käivita vähem kui neli aatat tagai, kuid elle lühikee aja jookul on digitaalne abitaja laiendanud oma nutitelefonide ja nutikellade ulatut tohutule hulgale kodu kautatavat...

Amazon on kinnitanud, et hoiab teie Alexa ärakirju ja helialvetii määramata ajak, kui te neid käiti ei kututa. ee on kirja enaatorile Chri Coonile (D-DE) 28. juunil aadetud kirja....

Meile Soovitatud