Zistite Svoj Počet Anjela
Automatizácia aktualizácií závislostí pomocou Dependabot
Mobilná aplikácia Sprout Social pre Android je výkonná natívna aplikácia, ktorá udržuje našich zákazníkov pripojených k ich prítomnosti na sociálnych sieťach na cestách. Ako súčasť našej aplikácie pre Android udržiavame viac ako 35 závislostí spravovaných komunitou open source, ktoré poskytujú užitočné stavebné bloky pre našu aplikáciu.
Naše závislosti poskytujú nespočetné množstvo funkcií, ako sú rámce na uskutočňovanie sieťových hovorov, asynchrónne načítavanie obrázkov, testovacie nástroje a ďalšie existujúce riešenia, ktoré riešia bežné výzvy súvisiace s vývojom systému Android. Niektoré z týchto závislostí sú potrebné na využitie základných knižníc Androidu, zatiaľ čo iné pomáhajú riešiť bežné softvérové problémy bez toho, aby ste museli písať celý kód od začiatku. Každá závislosť nám umožňuje využiť funkčnosť bez toho, aby sme museli znovu vynájsť koleso.
Každý zároveň prichádza so zodpovednosťou udržiavať ich aktuálne, aby sme sa uistili, že vieme o nových aktualizáciách výkonu, zabezpečenia a funkcií. Na papieri to znie skvele, ale ako každý mobilný vývojár vie, manuálne sledovanie týchto aktualizácií môže byť poriadnou záťažou.
Jedna z našich hodnôt tím inžinierov spoločnosti Sprout je konať účelne a sústredene. V tomto duchu sme sa rozhodli implementovať inteligentnejšie riešenie, aby sme mohli tráviť viac času vytváraním účinných funkcií pre našich zákazníkov. Aby sme to dosiahli, použili sme doplnok automatickej správy závislostí prvej strany Dependabot. Dependabot znižuje náš objem zastaraných závislostí, zjednodušuje úsilie potrebné na ich aktualizáciu a zefektívňuje náš celkový vývojový proces.
Odchod od manuálnej údržby závislosti
Pri natívnom vývoji Androidu sú závislosti deklarované v súbore build.gradle. Zadaním závislosti, ktorú potrebujeme s jej verziou, ju Gradle vyrieši z centrálneho úložiska a získa ju, aby sme ju mohli používať v rámci aplikácie. Ak je aplikácia pre Android viacmodulová, každý modul má svoj vlastný súbor build.gradle, ktorý deklaruje závislosti pre daný modul.
Efektívne udržiavanie týchto závislostí je rozhodujúce pre hladký vývojový proces a poskytovanie zákazníkom efektívnej aplikácie na správu sociálnych médií, ktorá dokáže držať krok s rýchlosťou sociálnych sietí. Udržiavanie závislostí v aktuálnom stave sa však stáva skľučujúcou úlohou, ktorá si vyžaduje posúdenie práce, kontroly kompatibility verzií, potenciálne zmeny kódu a testovanie.
Pred Dependabotom sme mali manuálny proces správy závislostí. S narastajúcou zložitosťou našej aplikácie rástol aj náš čas strávený správou závislostí. Tím si vyžiadal značné úsilie, aby identifikoval potrebu závislosti a následne ju spracoval prostredníctvom našich agilných vývojových pracovných postupov, aby sme ju uprednostnili a aktualizovali. Často sme zistili, že závislosti potrebovali aktualizácie počas vývoja funkcií, čo prinieslo vždy obávaný rozsah projektu. Potrebovali sme lepší spôsob.
Predstavujeme: Dependabot
Manažment závislostí nie je nový pojem. Vzhľadom na to, že väčšina práce potrebnej na správu závislostí sa opakuje a je monotónna, náš tím si myslel, že by to bol ideálny kandidát na niečo, čo by sa dalo automatizovať (bez toho, aby sme museli automatizáciu napísať sami).
Zistili sme, že Dependabot dobre vyhovuje našim potrebám – je to nástroj prvej strany GitHub, ktorý automaticky zisťuje novšie verzie závislostí a zohľadňuje všetky problémy s kompatibilitou, ktoré môžu byť spôsobené ich inováciou. Odhaľuje všetky aktualizácie verzií, keď sú k dispozícii, a vytvára žiadosti o stiahnutie (PR) obsahujúce informácie o inovácii, ktoré sme dokázali bezproblémovo integrovať do nášho bežného inžinierskeho pracovného postupu. Zrazu sme nemuseli tráviť dlhé hodiny manuálne, aby sme sa uistili, že je všetko aktuálne.
Implementácia
Dependabot inteligentne analyzuje naše súbory build.gradle, aby určil náš strom závislostí a vytvára PR pre všetky závislosti, ktoré je potrebné aktualizovať. Aby bola implementácia úspešná, potrebovali sme spôsob, ako dôkladne preskúmať každé PR a zefektívniť zlúčenie PR.

Počas akéhokoľvek vydania našej aplikácie pre Android prideľujeme správcu vydania. Rozhodli sme sa integrovať túto zodpovednosť do procesu správcu vydania s očakávaním, že počas každého cyklu vydania sa dokončí až päť aktualizácií závislostí. Manažér vydania skontroluje aktualizácie závislostí, ktoré odhalil Dependabot, zaistí, že naše nepretržité integračné testy na schválení PR a nedochádza k žiadnym narušeným zmenám knižnice, potom skontroluje aktualizácie poskytované touto verziou a prinesie tímu na schválenie zoznam PR. zlúčiť.
Výhody automatizácie
Automatizovaná správa závislostí je výkonný nástroj, ktorý výrazne zlepšuje náš vývojový proces a kvalitu života našich inžinierov. Používateľom tiež poskytuje vysokú hodnotu a najnovšie funkcie v rámci našej natívnej mobilnej aplikácie. Pomocou nástroja, akým je Dependabot, sme zefektívnili získavanie, integráciu a vytváranie verzií závislostí, čím sme znížili množstvo manuálneho úsilia, ktoré musia inžinieri vynaložiť, a znížili pravdepodobnosť konfliktov v našom strome závislostí.
Keďže zložitosť projektov pre Android neustále rastie, prijatie automatizovanej správy závislostí bolo veľmi hodnotným krokom na zabezpečenie prvotriedneho vývojového procesu pre náš tím a prvotriednej Android aplikácie pre našich zákazníkov.
Ak sa chcete dozvedieť viac o inžinierskom tíme a kultúre spoločnosti Sprout, navštívte naše kariérne stránky .
Zdieľajte So Svojimi Priateľmi: