A Facebook mobilalkalmazás-fejlesztési folyamatának belső áttekintése

Szerző: Laura McKinney
A Teremtés Dátuma: 4 Lang L: none (month-011) 2021
Frissítés Dátuma: 9 Lehet 2024
Anonim
A Facebook mobilalkalmazás-fejlesztési folyamatának belső áttekintése - Alkalmazások
A Facebook mobilalkalmazás-fejlesztési folyamatának belső áttekintése - Alkalmazások

Tartalom


Nemrégiben meglátogattam a londoni Facebook központot, hogy megismerjem a mobil Facebook alkalmazás fejlesztésének és karbantartásának folyamatát. Sokkal több történik itt, mint valószínűleg észreveszi: a Facebook néhány alkalmazását teljes egészében itt kezelik, például a WhatsApp asztali számítógépen és az üzleti orientált Munkahelyi alkalmazást.

Az irodák éppen azok, amire számíthat a Facebook képéből, bár talán nem egészen a The Social Network szintjéhez. Ez egy olyan hely, ahol komoly munkát végeznek, ám ennek ellenére van trendi, mókás és nyugodt légkör. Az alkalmazottak hordozhatnak laptopokat, bárhová is választhatnak: van egy nyomdahely poszterek készítéséhez (csak azért, mert) a több falra megrendeltek műalkotásokat és egy óriás Ninja teknős - soha nem kaptam választ arra, hogy miért.


Ó, és az étel hihetetlen. Ott voltam a kínai újév alatt, és volt többszörös sertéshús. Szép idők.

De nem voltam ott, hogy élvezze a dekorációt és a konyhát, ott voltam, hogy mobiltelefonon megismerjem a Facebook-ot. Pontosabban: hogyan lehet a Földön egy ilyen nagyszabású és ambiciózus projektet fenntartani? A Facebook háttérkép több mint két milliárd embert szolgál fel, és az Android alkalmazás önmagában egy új verziót lát hetente.

Hogyan tudja kezelni egy alkalmazást ilyen ambiciózus funkciókkal

Beszéltem Tal Kellnerrel a Facebook saját telepresence rendszerén keresztül. Tal műszaki programmenedzser, a Tel Aviv mérnöki irodában található Release Engineering Team felelős. Örömmel osztotta meg a szemcsés részleteket.


Tal és csapata először töltötte fel a Facebook Lite verzióját az iOS rendszerbe

Amit megtanultam, nagyon izgalmas volt mind fejlesztő, mind felhasználó szempontjából. Itt van, amit megtudtam.

Projektmenedzsment a Facebookon - Miért Scrum> Vízesés

Bármely nagy projekt megtekintésekor figyelembe kell vennie a projekt menedzsment megközelítését. Az egyik ilyen példát „vízesés” projektmenedzsmentnek hívják. Ez egy szekvenciális és lineáris megközelítés, ahol egy adott fázison dolgozik, viszont az ötlettől a megvalósításig, a tesztelésig, a kiadásig.

az olyan vállalatok, mint a Facebook, inkább a „scrum” elnevezésű, modernebb megközelítést választják a projektvezetéshez

Lényeges, hogy ebben a megközelítésben nem kezdje el a következő fázist, amíg az előző fázis nem teljes. A rendszer a gyártásból származik, ahol bizonyos szakaszok gyakran az előző szakaszra támaszkodnak: a fal felépítése előtt be kell szereznie a téglákat!

Szoftver esetében ez a megközelítés korlátozó. A legrosszabb esetben egy frissítés eltartása ennyi időt vehet igénybe, az érkezéskor már elavult. Nukem herceg örökre valaki?

Így néhány szoftvergyártó vállalat inkább a „scrum” elnevezésű, modernebb megközelítést választja, amely egy agilis módszer. Ez a módszer rangsorolja a legfontosabb munkát, és moduláris darabbá osztja. A belső részlegek és még az egyes ügynökök közötti kommunikációra támaszkodik, akik egyedül dolgoznak a saját kód sarkaikon.

Az eredmény elméletileg az, hogy mindenki azon dolgozhat, amelyikre mindig sürgetik őket, és hogy az üzlet minden más része tudja, mit csinál. Minden mérnöknek magas a tulajdonjoga, és mindenki felelős a saját munkáért. Ez nemcsak a társaságot mozgékonyabbá teszi, hanem remélhetőleg növeli a munkahelyi elégedettséget. Senki sem csak fogaskerekű a gépben.

bárki a szervezet bármely pontjáról javaslatot tehet új funkcióra

Nagyon lenyűgözött, hogy bárki a szervezet bármely részéről javaslatot tehet egy új funkció elképzelésére, majd ezt megkezdi dolgozni, ha megkapja ezt a lépést. Előfordulhat, hogy ez saját, különálló alkalmazásgé is fejlődik! A Facebook sokkal inkább együttműködési projekt, mint néhány ember (vagy egy ember) felülről lefelé hajtott jövőképe, amelyet gyakran ábrázolnak.

Ez lehetővé teszi a Facebook számára, hogy rendkívül gyors fejlesztési ciklust valósítson meg, lehetővé téve egy új mobil frissítést minden héten, és ezernyi kötelezettségvállalás (javasolt kódváltoztatás) között. Ha úgy gondolja, hogy ez lenyűgöző, akkor a webes verzió (amelynek háttere a mobilalkalmazást is szolgálja) két-három óránként frissül!

A Facebook általában nagyon támogatja az új ötleteket és induló vállalkozásokat. Még az LDN LAB elnevezésű kezdeményezése is új ötletek és vállalkozások támogatására szólít fel.

Egyensúly megtalálása

Tal saját diajából vették

Természetesen mindig is lesz egy korlátozás, amikor a társaság mit tud kezelni. Ennek a sok kódnak köszönhetően mindig van fejlesztési lehetőség, de el kell érnie egy olyan időt, amikor a verziót elég jónak tekintik.

Itt jön az „arany háromszög”. Ez a háromszög három pontja jellemzi a tulajdonságokat, a minőséget és az időt. Minden társaságnak itt van választása: ha összeomlik az idő, akkor az új funkciókat részesíti előnyben azáltal, hogy kicsit hosszabb időt vesz igénybe? Engedélyezi egy kisebb létező hiba átcsúszását a hálózaton, ha azt jelenti, hogy további funkciókat adhat hozzá? Ha nem tud mindent megtenni, akkor arra kényszerül, hogy prioritást élvez.

A Facebookon a prioritások a minőség és az idő. Ha egy frissítés esik a kijelölt ablak mögött, akkor egy szolgáltatás valószínűleg visszatekintésre kerül; helyett egy sarkot vágnak vagy a frissítést késik.

Verziókezelés és zsonglőrváltozások

A frissítések és a kód módosításainak kezelésére a Facebook a Mercurial saját módosított verzióját használja. Ez a nagyon széles körben alkalmazott Git helyett, amely nyilvánvalóan nem volt méretezve a vállalat céljainak megfelelően. A Phabricator megegyezik a GitHub-tal, és sok plugint használ a munkafolyamat korszerűsítéséhez és néha csak a dolgok kicsit szórakoztatóbbá tételéhez (a Facebook nyilvánvalóan kedveli a mémeit).

A nem programozók számára a Mercurial, mint a Git, verziószabályozó rendszer. Ez lehetővé teszi, hogy nagy számú ember dolgozzon ki egy szoftvert, és változtatásokat és javításokat végezzen anélkül, hogy veszélybe sodorná a „fő ágnak” nevezett alkalmazás fő verzióját. Ezek az eszközök elősegítik a kódütközéseket és lehetővé teszik a kísérletezést. Csak akkor, ha egy változtatást alaposan jóváhagytak egy tesztágon, elkötelezik a mesterrel.

Képzelje el, ha valami szegény programozó elírja az egész kódot, és csak egy verzió létezett! Ez mindenki számára rossz nap lenne.

Az olyan eszközök, mint a Mercurial, lehetővé teszik a scrum-megközelítés viszonylag könnyű megvalósítását, lehetővé téve mindenkinek, hogy egyidejűleg egyesítsék a sajátosságokat és a hibákat, mielőtt összevonnák őket egy nagy bankotba.

Hetente egyszer egy felszabadító jelöltet levágnak a mestertől, és ezután megy keresztül a tesztelési szakaszban. Azok a kódolók, akik egész héten hibajavításokkal vagy új funkciókkal foglalkoztak, ezen a ponton átlépik az ujjukat, abban a reményben, hogy munkájukkal bekerül az új frissítésbe.

A csapat tagjai által az utolsó pillanatban végrehajtott javításokhoz vagy módosításokhoz „cseresznyét kell választani”, hogy a felelős felek bekerülhessenek az új ágba. Úgy tűnik, ismerték, hogy megvesztegetést alkalmaznak csokoládé és alkohol formájában, amelyeket a döntéshozóknak adományoztak.

A fordításhoz a Facebook egy másik eszközt használ a Buck néven. Ez az egyetlen összeépítési eszköz bármit építhet, amikor az alkalmazás csomagolására kerül sor. Különböző platformok célzásakor nincs szükség külön opciókra, például a Gradle vagy Ant.

Hibakeresés időben

Mivel mindenki más dolgokat dolgoz fel, és rengeteg frissítés történik rendszeresen, nagyon fontos, hogy a vállalatok ellenőrizzék, hogy szoftverük működik-e, és nincs-e súlyos hiba. A Facebook nagyrészt jó eredményeket mutat a dolgok futásának folyamatában.

E célból a csapat a szoftver tesztelését szakaszokra osztja, C1, C2 és C3 néven.

A C1 belső tesztelés, és minden alkalmazott futtatja ezt a verziót. A C2 alatt a verzió a lakosság 2% -án áthalad, a C3 pedig a gyártás. Ha valami igazán komoly eredményt találnak, minden alkalmazott hozzáférhet egy vészleállító gombhoz, hogy megállítsa a gyártást.

Azok az önkéntesek, akik elõrejelzik magukat a fokozatos fokozódás megõrzéséért, „fa átölelõk” elnevezés alatt állnak (mert ágak), és ezt a szokásos munkáik kiegészítéseként végzik.

A Mobilen hasonló szinteket hívnak alfa, béta és prod. Az Alfa belső tesztet jelent, amelyet minden alkalmazott elvégz. Az a folyamat, amelyben minden vállalat a saját termékeit ilyen módon használja fel, „kutyaeledel készítés”, azaz „a saját kutyaeledel étkezésétől” kezdődik.

A tesztelők rendelkeznek néhány egyedi és érdekes eszközzel a hibák gyors jelentésére. Az egyik a „Rageshake”, ahol az eszköz frusztrált rázása lehetővé teszi egy hibajelentést, mint a Google Maps esetében.

A tesztelők rendelkeznek néhány egyedi és érdekes eszközzel a hibák gyors jelentésére

Az alfa alatt - amely ténylegesen utal bármilyen belső tesztelésre - a Facebook az automatikus futtatást is használja az alkalmazás futtatásához. Például egy nemrégiben megvásárolt „Sapienz” nevű szoftver lényegében úgy működik, hogy minden gombra kattint, és véletlenszerű támadás során minden funkciót felhasznál, amíg az összeomlik. Ezután naplózza a verem nyomkövetését, rögzíti a műveletet és jelentést készít.

A béta alkalmazás (a nagyközönség által tesztelt változat) a nagyközönség egy kis részén (~ 2 százalék) megy keresztül. Ez a kis részlet idő előtt megkapja a frissítést, így a Facebook valós visszajelzéseket küld. Ha minden jól tűnik, akkor a frissítés az egész népességre kiterjed, és a folyamat újból megkezdődik.

Hatékony szerszámok az automatizáláshoz és az erő szorzásához

Annak érdekében, hogy az egész folyamat a lehető leggyorsabban és zökkenőmentesen folyhasson, a Facebook számos különféle eszközt használ. Már láttuk, hogy a vállalat hogyan használja a Phabricator és a Sapienz szoftvert, de más eszközökkel és plug-inekkel is rendelkezik más szakaszokhoz.

A Picknic nevű eszköz összegyűjti az összes lehívási kérelmet (az alkalmazottak által végrehajtott változtatásokat) egy helyen a gyors és egyszerű áttekintés érdekében.

Amikor a tesztelés hibát idéz elő, egy Nagbot nevű bot értesíti a felelősöket, és óvatosan megkísérelte őket a munka elvégzéséhez. A kezdetleges AI használata ennek a folyamatnak a kezeléséhez nemcsak biztosítja a munka elvégzését, hanem lehetővé teszi a menedzser számára is, hogy folyamatosan elbújva elkerülje „rosszfiút”!

amikor a tesztelés hibát idéz elő, hogy valaki javíthasson, egy Nagbot nevű bot értesíti a felelősöket, és óvatosan bátorítja őket a munka elvégzésére

A Crashbot egy másik robot, amely felelős a hibák bejelentéséért, amikor azok előfordulnak, és inkább a Google Console metrikáinál felel meg, mivel valós időben jelentenek jelentést. A Crashbot megjelöli a problémát, ha a problémák túllépik az „elfogadható összeomlási küszöböt”. Ennek oka lehet a hibát tapasztaló emberek száma vagy az, hogy egy felhasználó ugyanazt a hibát tapasztalta meg. Akárhogy is, a Facebooknak is lesz egy mutatója, amely megmutatja a szomorú felhasználók számát.

A belső kommunikációhoz a Facebook valamit Workplace néven használ. Ez valójában a Facebook vállalkozásoknak szánt verziója, amely hasznos módszert kínál a csapat tagjairól szóló információk megszerzéséhez és a gyorsan terjedő irodákkal való kommunikációhoz. A Facebook ezt a szoftvert harmadik feleknek is eladja.

A Facebook természetesen nem fog pazarolni az időt az alkalmazások minden új verziójának feltöltésére a Play Áruházba, az App Store-ba, az Amazonba és a többiekbe. Van egy ehhez tartozó alkalmazás is, amelyet úgy hívnak, mint a Mobile Push Train.

Záró gondolatok

Az olyan alkalmazások, mint a Facebook, naprakészen tartása óriási feladat, és a vállalatnak továbbra is meg kell győznie a felhasználókat a frissítések tényleges telepítéséről. Ez különösen nehéz azokban az országokban, ahol a csatlakoztathatóság nem garantált. Kanadában a felhasználóknak csak egy százaléka továbbra is futtatja a Facebook egy évnél régebbi verzióját. Etiópiában ez a szám közelebb áll az 50 százalékhoz!

A Facebook csapata nyilvánvalóan nagyon keményen dolgozik, és rengeteg eszközt és folyamatot használ annak érdekében, hogy mindent a lehető legegyszerűbben kezeljen. A nap végén a fejlesztői csapat öt irányadó elv tiszteletben tartására törekszik:

  • Tartsa tisztán a mestert.
  • Van egy csapata, aki szaktudással rendelkezik a kiadástechnika területén.
  • Gyorsan engedje el.
  • Kutyaeledel-termékek.
  • Legyen kedves a felhasználókkal szemben.

Egyszerűen hangzik, de amint láthatja, sok fonólapot foglal magában. Még a folyamatban használt összes eszköz karbantartása önmagában is projekt!

A Facebook a maga részéről barátságos és barátságos légkört tart fenn a londoni irodában. A csapat GIF-eket és mémeket cserél ki pluginokon keresztül, nevezik a szobákat „a dolgok ellen, amelyeket a brit utál” és a shakespeare-i büntetések alapján, és nagyon büszkék vannak munkájukra. A Facebookon keményen dolgoznak és keményen játszanak, és úgy tűnik, hogy a rendszer nagyrészt működik.

Legközelebb egy új frissítés jelenik meg az egyik nagyobb alkalmazásodnál, és gondolja át az odajutáshoz szükséges összes munkát és szervezetet.

ok vicce film található a Netflix-en, kezdve a rom-com-otól a ötét zatírokig, egézen a zuperhő komédiaig. Nagyon nehéz azonban a Netflix kereőmezőjébő...

Az egyzerű feltevé ellenére nem minden galéria-alkalmazá azono. Néhányuk fantaztikuan dolgozik, nagyzerű kivitelben é gyoraággal. Máok zenvednek a roz ter...

Neked