Ieskats Facebook mobilās lietotnes izstrādes procesā

Autors: Laura McKinney
Radīšanas Datums: 4 Aprīlis 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
Hacker Way: Rethinking Web App Development at Facebook
Video: Hacker Way: Rethinking Web App Development at Facebook

Saturs


Nesen es apmeklēju Facebook galveno mītni Londonā, lai uzzinātu par tās mobilās Facebook lietotnes izstrādes un uzturēšanas procesu. Šeit notiek daudz vairāk, nekā jūs droši vien saprotat: dažas no Facebook lietotnēm šeit tiek apstrādātas pilnībā, piemēram, WhatsApp darbvirsmai un biznesa orientēta lietotne Workplace.

Biroji ir tieši tas, ko jūs varat sagaidīt no Facebook attēla, kaut arī varbūt ne pārāk lielā sociālā tīkla līmenī. Šī ir vieta, kur tiek veikts nopietns darbs, taču tajā pašā laikā ir moderna, omulīga un relaksējoša atmosfēra. Darbinieki var nēsāt klēpjdatorus darbam, kur vien viņi izvēlas, ir drukāšanas telpa plakātu izgatavošanai (tikai tāpēc, ka), pasūtīti mākslas darbi uz vairākām sienām un milzu Ninja Turtle - es nekad nesaņēmu atbildi, kāpēc.

Ak, un ēdiens ir neticami. Es biju tur ķīniešu Jaunā gada laikā, un man bija vairākas cūkgaļas vēderi. Labi laiki.


Tomēr es nebiju tur, lai izbaudītu dekorus un virtuvi, es biju tur, lai mobilajā tīklā uzzinātu par Facebook. Konkrētāk: kā uz Zemes jūs pat varat uzturēt tik lielu un vērienīgu projektu? Facebook aizmugure kalpo vairāk nekā diviem miljardiem cilvēku, un tikai Android lietotne katru nedēļu izlaiž jaunu versiju.

Kā jūs pārvaldāt lietotni ar tik vērienīgu funkciju skaitu

Es runāju ar Tal Kellner, izmantojot pašas Facebook telepresence sistēmu. Tal ir tehnisko programmu vadītājs, kas atbild par Release Engineering Team, kas atrodas Telavivas inženieru birojā. Viņa bija vairāk nekā priecīga dalīties drūmajās detaļās.

Tal un viņas komanda pirmo reizi augšupielādē Facebook Lite versiju iOS

Tas, ko uzzināju, bija diezgan aizraujoši gan no izstrādātāja viedokļa, gan kā lietotājs. Lūk, ko es uzzināju.

Projekta vadība vietnē Facebook - Kāpēc Scrum> Ūdenskritums

Apskatot jebkuru lielu projektu, jums jāapsver sava projekta vadības pieeja. Viens šāds piemērs tiek saukts par “ūdenskrituma” projekta vadību. Šī ir secīga un lineāra pieeja, kurā pēc kārtas strādājat pie konkrētas fāzes, piemēram, pārejat no idejas uz ieviešanu līdz testēšanai, lai atbrīvotu.


uzņēmumi, piemēram, Facebook, izvēlas mūsdienīgāku pieeju projektu vadībai ar nosaukumu “scrum”

Būtiski, ka, izmantojot šo pieeju, nesāciet nākamo posmu, kamēr nav pabeigta iepriekšējā fāze. Sistēmas izcelsme ir ražošana, kur daži posmi bieži paļaujas uz iepriekšējo posmu: pirms sienas uzbūvēšanas jums ir jāiegūst ķieģeļi!

Runājot par programmatūru, šī pieeja ir ierobežojoša. Sliktākajā gadījumā atjauninājuma ieviešana var aizņemt tik daudz laika, līdz tā saņemšanai tas ir novecojis. Hercogs Nukem mūžīgi kāds?

Tādējādi daži programmatūras uzņēmumi izvēlas mūsdienīgāku pieeju, ko sauc par “scrum”, kas ir veikla metodika. Šī metode dod priekšroku darbam, kas ir vissvarīgākais, un sadalās tajā modulāros gabalos. Tas ir atkarīgs no komunikācijas starp iekšējiem departamentiem un pat atsevišķiem aģentiem, kas strādā vieni paši pie sava koda stūra.

Rezultāts teorētiski ir tāds, ka ikviens var strādāt pie tā, kas viņiem visu laiku ir aktuālākais, un ka katra cita biznesa daļa zina, ko viņi dara. Katram inženierim ir augsts īpašumtiesību līmenis, un katrs pats ir atbildīgs par savu darbu. Tas ne tikai padara uzņēmumu veiklāku, bet arī, cerams, palielina apmierinātību ar darbu. Neviens nav tikai zaglis mašīnā.

ikviens no jebkuras vietas organizācijā var ieteikt jaunas funkcijas ideju

Es biju ļoti pārsteigts, dzirdot, ka ikviens no jebkuras organizācijas pārstāvjiem var ierosināt jaunas funkcijas ideju un pēc tam ķerties pie šīs lietas izstrādes. Dažreiz tas pat var izvērsties par atsevišķu lietotni! Facebook ir daudz vairāk sadarbības projekts nekā dažu cilvēku (vai vienas personas) īstenots redzējums no augšas uz leju, tas bieži tiek attēlots kā.

Tas ļauj Facebook ieviest ārkārtīgi ātru attīstības ciklu, katru nedēļu dodot iespēju jaunam mobilajam tālrunim, un starp tiem laikiem tūkstošiem apņemas (ierosinātās koda izmaiņas). Ja uzskatāt, ka tas ir iespaidīgi, tīmekļa versija (kuras aizmugures versija kalpo arī mobilajai lietotnei) tiek atjaunināta reizi divās vai trīs stundās!

Facebook parasti ļoti atbalsta jaunas idejas un jaunizveidotus uzņēmumus. Tai pat ir iniciatīva ar nosaukumu LDN LAB, kas veltīta jaunu ideju un uzņēmumu atbalstam.

Līdzsvara atrašana

Paņemts no pašu Tal slaidiem

Protams, attiecībā uz to, ko uzņēmums var rīkoties, vienmēr būs ierobežojums. Ar šo lielo kodu vienmēr ir iespējami uzlabojumi, taču ir jānāk laikam, kad versija tiek uzskatīta par “pietiekami labu”.

Šeit tiek spēlēts “zelta trīsstūris”. Šī trīsstūra trīs punkti apzīmē īpašības, kvalitāti un laiku. Ikviens uzņēmums šeit var izvēlēties: vai, kad runa ir par īsu laiku, vai jūs prioritējat jaunas funkcijas uz tā, lai patērētu nedaudz ilgāku laiku? Vai jūs ļaujat nelielai esošai kļūdai izslīdēt tīklā, ja tas nozīmē, ka varat pievienot citas funkcijas? Kad jūs nevarat izdarīt visu, esat spiests noteikt prioritāti.

Vietnē Facebook prioritātes ir kvalitāte un laiks. Ja atjauninājums atpaliek no piešķirtajiem logiem, iespējams, ka funkcija tiks atdota; nevis stūra sagriešana vai atjaunināšanas aizkavēšana.

Versijas kontrole un žonglēšana izmaiņas

Lai apstrādātu šos atjauninājumus un koda izmaiņas, Facebook izmanto savu modificēto versiju Mercurial. Tas ir ļoti plaši izmantotā Git vietā, kura acīmredzot nebija tik mēroga kā uzņēmuma mērķiem. Phabricator ir GitHub ekvivalents, un tas izmanto daudz spraudņu, lai palīdzētu pilnveidot darbplūsmu un dažreiz vienkārši lai padarītu lietas mazliet jautrākas (acīmredzot Facebook patīk tās memes).

Neprogrammētājiem, kas tur darbojas, Mercurial, tāpat kā Git, ir versiju kontroles sistēma. Tas ļauj lielam skaitam cilvēku strādāt ar vienu programmatūras vienību un veikt izmaiņas un labojumus, neapdraudot galvenās lietotnes versiju, ko sauc par “galveno filiāli”. Šie rīki palīdz novērst kodu konfliktus un ļauj veikt eksperimentus. Tikai tad, kad izmaiņas ir pilnībā apstiprinātas testa filiālē, tās tiks nodotas kapteinim.

Iedomājieties, ja kāds slikts programmētājs izdarīja typo, kas salauza visu kodu, un bija tikai viena versija! Tā būtu slikta diena visiem.

Rīki, piemēram, Mercurial, ļauj relatīvi viegli ieviest slīdēšanas pieeju, ļaujot visiem vienlaikus strādāt pie specifiskām funkcijām un kļūdām, pirms to visu apvienot vienā lielā katlā.

Reizi nedēļā no galvenā kapteiņa tiks atlaists kandidāts, kurš to pārbaudīs. Kodētāji, kuri visu nedēļu ir pavadījuši, lai strādātu ar kļūdu labošanu vai jaunām funkcijām, šajā brīdī šķērsos pirkstus, cerot, ka viņu darbs ļaus to atjaunināt.

Visi komandas locekļu veiktie pēdējā brīža labojumi vai izmaiņas būs “jānoņem no ķiršiem”, lai atbildīgie tos iekļautu jaunajā filiālē. Tiek ziņots, ka viņi ir izmantojuši kukuļus šokolādes un spirta veidā, kas apdāvināti lēmumu pieņēmējiem.

Apkopošanai Facebook izmanto citu rīku ar nosaukumu Buck. Šis vienotais veidošanas rīks var radīt jebko, kad nepieciešams lietotnes iesaiņojums. Mērķējot uz dažādām platformām, nav vajadzīgas atsevišķas iespējas, piemēram, Gradle vai Ant.

Laiku noķeršana

Tā kā visi strādā pie dažādām lietām un regulāri tiek atjaunināts tik daudz atjauninājumu, ir ļoti svarīgi, lai uzņēmumi pārliecinātos, ka viņu programmatūra darbojas, un tajā nav nopietnu kļūdu. Lielākoties Facebook ir diezgan laba pieredze lietvedībā.

Šajā nolūkā komanda programmatūras testēšanu sadala līmeņos, kas minēti kā C1, C2 un C3.

C1 ir iekšēja pārbaude, un visi darbinieki izmantos šo versiju. C2 laikā versija darbojas caur 2 procentiem sabiedrības, un C3 ir ražošana. Ja tiek atrasts kaut kas patiešām nopietns, katrs darbinieks varēs piekļūt avārijas apturēšanas pogai, lai apturētu ražošanu.

Brīvprātīgie, kas sevi izvirzīja, lai saglabātu līmeņu progresēšanu, saucas “koku ķērāji” (jo zari) un to dara papildus savam parastajam darbam.

Mobilajā telefonā līdzīgus līmeņus sauc par alfa, beta un prod. Alfa nozīmē iekšēju pārbaudi, kuru veiks visi darbinieki. Jebkura uzņēmuma process, kas šādā veidā izmanto savus produktus, tiek saukts par suņu ēdināšanu - sākot no “suņu ēšanas”.

Testētāju rīcībā ir arī unikāli un interesanti rīki, lai ātri ziņotu par kļūdām. Viens no tiem ir “Rageshake”, kur, vienkārši kratot ierīci neapmierinātībā, būs iespējams ziņojums par kļūdu, tāpat kā Google Maps.

Testētāju rīcībā ir arī unikāli un interesanti rīki, lai ātri ziņotu par kļūdām

Alfa laikā - kas faktiski attiecas uz jebkuru iekšēju testēšanu - Facebook arī izmanto automātisko testēšanu, lai palaistu lietotni. Piemēram, nesen iegādāts programmatūras gabals ar nosaukumu “Sapienz” būtībā darbojas, noklikšķinot uz katras pogas un nejaušā uzbrukumā izmantojot katru funkciju, līdz tā izraisa avāriju. Pēc tam tas reģistrē kaudze izsekot, reģistrē darbību un ziņo atpakaļ.

Beta lietotne (versija, ko pārbaudījusi sabiedrība) iet cauri nelielai sabiedrības daļai (~ 2 procenti). Šis mazais fragments atjauninājumu saņems pirms laika, nodrošinot Facebook ar reālās pasaules atsauksmēm. Ja viss šķiet labi, atjauninājums tiek izsniegts visiem iedzīvotājiem, un process sākas no jauna.

Spēcīgi rīki automatizācijai un spēka pavairošanai

Lai visu šo procesu noturētu pēc iespējas ātrāk un pēc iespējas gludāk, Facebook izmanto lielu skaitu dažādu rīku. Mēs jau esam redzējuši, kā uzņēmums izmanto Phabricator un Sapienz, taču tam ir citi rīki un spraudņi citiem posmiem.

Rīks ar nosaukumu Picknic apkopo visus piesaistīšanas pieprasījumus (darbinieku veiktās izmaiņas) vienuviet, lai ātri un ērti pārskatītu.

Pārbaudot tiek atklāta kļūda, robotprogrammatūra Nagbot informē atbildīgos un uzmanīgi mudina viņus uz darbu. Izmantojot rudimentāru AI, lai apstrādātu šo procesu, tas ne tikai nodrošina paveikto darbu, bet arī ļauj vadītājam izvairīties no “sliktā puiša”, pastāvīgi naglojot!

kad pārbaude rada kādam kļūdu, ko labot, robots ar nosaukumu Nagbot informē atbildīgos un uzmanīgi mudina viņus iegūt darbu

Crashbot ir vēl viena robotprogrammatūra, kas atbild par ziņojumu paziņošanu par tām kļūdām, un tā ir labāka nekā metrika no Google Console, jo tā ziņo reāllaikā. Crashbot apzīmēs problēmu, tiklīdz problēmas būs pārsniegušas “pieļaujamo avārijas slieksni”. To var izraisīt cilvēku skaits, kuri piedzīvo kļūdu, vai vairākas reizes, kad viens lietotājs ir saskāries ar vienu un to pašu kļūdu. Jebkurā gadījumā Facebook būs arī metrika, kas parāda bēdīgo lietotāju skaitu.

Iekšējai komunikācijai Facebook izmanto kaut ko ar nosaukumu Workplace. Šī faktiski ir Facebook versija, kas paredzēta uzņēmumiem, un tas ir noderīgs veids, kā iegūt informāciju par komandas locekļiem un ātri sazināties ar tiem, kas sēž birojā, kas izplešas. Facebook šo programmatūru pārdod arī trešajām personām.

Protams, Facebook negaidīs laiku, lai augšupielādētu katru jauno savu lietotņu versiju Play veikalā, App Store, Amazon un citās vietnēs. Tam ir arī lietotne, ko sauc par mobilo vilcienu.

Noslēguma domas

Atjaunināt tādu lietotni kā Facebook ir milzīgs darbs, un uzņēmumam joprojām ir jāpārliecina lietotāji par šo atjauninājumu instalēšanu. Tas ir īpaši grūti valstīs, kur savienojumi nav garantēti. Kanādā tikai viens procents lietotāju joprojām izmanto Facebook versiju, kas vecāka par gadu. Etiopijā šis skaitlis ir tuvāk 50 procentiem!

Facebook komanda acīmredzami strādā ļoti smagi un izmanto ļoti daudz rīku un procesu, lai viss būtu pēc iespējas pilnveidots. Dienas beigās attīstības komandas mērķis ir ievērot piecus valdošos principus:

  • Uzturiet kapteini tīru.
  • Ir viena komanda ar pieredzi izlaidumu inženierijas jomā.
  • Atbrīvojieties laikā bieži.
  • Suņu barības produkti.
  • Esiet laipns pret lietotājiem.

Tas izklausās vienkārši, taču, kā redzat, tas ietver daudz vērpšanas plākšņu. Pat visu procesā izmantoto rīku uzturēšana ir projekts pats par sevi!

No savas puses Facebook uztur draudzīgu un laipnu atmosfēru birojā Londonā. Komanda apmainās ar GIF un mēmām, izmantojot spraudņus, viņi nosauc telpas, balstoties uz “lietām, kuras briti ienīst” un Šekspīra puniem, un viņi daudz lepojas ar savu darbu. Facebook vietnē viņi smagi strādā un daudz spēlē, un šķiet, ka lielākoties sistēma darbojas.

Nākamreiz, kad kādai no jūsu lielākajām lietotnēm tiks ieviests jauns atjauninājums, aizdomājieties par visu darbu un organizāciju, kas bija nepieciešama, lai to iegūtu.

Google šobrīd atroda Cloud Next 2019 vidū, kur iztrādātājiem niedz informāciju par jaunām funkcijām, ka nonāk Google Cloud. Viena no šīm funkcijām ir Google Aitant integrācija G uite (izmantojot 9to5G...

Līdzā Pixel 2 un Pixel 2 XL, Google atklāja ava Bluetooth autiņa ar noaukumu Pixel Bud. Kamēr viņi piedāvāja unikālu dizainu, earbud tandout funkcija bija valoda tulkošana reāllaikā. Izkatā, ka bez je...

Aizraujošas Publikācijas