Mobilna aplikacija za Android podjetja Sprout Social je zmogljiva izvorna aplikacija, ki ohranja naše stranke priklopljene na njihovo prisotnost v družbenih omrežjih, ko so na poti. Kot del naše aplikacije za Android vzdržujemo več kot 35 odvisnosti, ki jih upravlja odprtokodna skupnost in zagotavljajo uporabne gradnike za našo aplikacijo.



Naše odvisnosti zagotavljajo nešteto funkcij, kot so ogrodja za omrežne klice, asinhrono nalaganje slik, orodja za testiranje in druge obstoječe rešitve, ki rešujejo običajne razvojne izzive za Android. Nekatere od teh odvisnosti so potrebne za izkoriščanje osnovnih knjižnic Android, medtem ko druge pomagajo pri reševanju pogostih programskih izzivov, ne da bi morali pisati vso kodo od začetka. Vsaka odvisnost nam omogoča, da izkoristimo funkcionalnost, ne da bi morali znova izumljati kolo.



Hkrati ima vsaka odgovornost, da jih posodablja, da zagotovimo, da smo seznanjeni z novimi posodobitvami delovanja, varnosti in funkcij. Na papirju se to sliši odlično, a kot ve vsak razvijalec mobilnih naprav, je lahko ročno sledenje tem posodobitvam resnično breme.

Ena od naših vrednot Sproutova inženirska ekipa je delovati z namenom in osredotočenostjo. V tem duhu smo se odločili uvesti pametnejšo rešitev, da bi lahko porabili več časa za ustvarjanje učinkovitih funkcij za naše stranke. Da bi to dosegli, smo uporabili prvi vtičnik za samodejno upravljanje odvisnosti, Dependabot. Dependabot zmanjšuje našo količino zastarelih odvisnosti, poenostavlja trud, potreben za njihovo posodobitev, in poenostavlja naš splošni razvojni proces.

Odmik od ročnega vzdrževanja odvisnosti

Pri izvornem razvoju za Android so odvisnosti deklarirane v datoteki build.gradle. Z določitvijo odvisnosti, ki jo potrebujemo s svojo različico, jo bo Gradle razrešil iz osrednjega repozitorija in jo pridobil, da jo bomo lahko uporabljali v aplikaciji. Če je aplikacija za Android večmodulna, ima vsak modul svojo lastno datoteko build.gradle, ki deklarira odvisnosti za ta modul.

Učinkovito vzdrževanje teh odvisnosti je ključnega pomena za nemoten razvojni proces in zagotavljanje strankam učinkovite aplikacije za upravljanje družbenih medijev, ki lahko sledi hitrosti družbenih medijev. Toda posodabljanje odvisnosti postane zastrašujoča naloga, ki zahteva oceno dela, preverjanje združljivosti različic, morebitne spremembe kode in testiranje.

Pred Dependabotom smo imeli ročni postopek upravljanja odvisnosti. S povečevanjem kompleksnosti naše aplikacije se je večal tudi čas, ki smo ga porabili za upravljanje odvisnosti. Ekipa je zahtevala veliko truda, da je ugotovila potrebo po odvisnosti in jo nato obdelala z našimi agilnimi razvojnimi poteki dela, da je bila prednostna in posodobljena. Pogosto smo odkrili, da so bile odvisnosti potrebne posodobitve med razvojem funkcij, kar je uvedlo vedno grozljivo spreminjanje obsega projekta. Potrebovali smo boljši način.



Predstavljamo: Dependabot

Upravljanje odvisnosti ni nov koncept. Glede na to, da je večina dela, potrebnega za upravljanje odvisnosti, ponavljajočega in monotonega, je naša ekipa menila, da bi bil to popoln kandidat za nekaj, kar bi bilo mogoče avtomatizirati (ne da bi se ujeli v past, da bi morali sami napisati avtomatizacijo).

Ugotovili smo, da je Dependabot dobro ustrezal našim potrebam – to je lastno orodje GitHub, ki samodejno zazna novejše različice odvisnosti in upošteva morebitne težave z združljivostjo, ki jih lahko povzroči njihova nadgradnja. Prikazuje vse nadgradnje različice, ko postanejo na voljo, in ustvarja zahteve po vleki (PR), ki vsebujejo informacije o nadgradnji, ki smo jih lahko neopazno integrirali v naš običajni potek inženirskega dela. Nenadoma nam ni bilo treba porabiti dolgih ur ročno za zagotavljanje, da je vse aktualno.

Izvedba

Dependabot inteligentno analizira naše datoteke build.gradle, da določi naše drevo odvisnosti, in ustvari PR-je za vse odvisnosti, ki jih je treba posodobiti. Da bi bila izvedba uspešna, smo potrebovali način za skrben pregled vsakega PR-ja in racionalizacijo združitev PR-jev.



  Grafika odločitvenega drevesa, ki ga Dependabot uporablja za prepoznavanje morebitnih odvisnosti, ki jih je treba posodobiti.

Med vsako izdajo naše aplikacije za Android dodelimo upravitelja izdaje. Odločili smo se, da to odgovornost vključimo v proces upravitelja izdaje, s pričakovanjem, da bo med vsakim ciklom izdaje dokončanih do pet nadgradenj odvisnosti. Upravitelj izdaje pregleda posodobitve odvisnosti, ki jih je odkril Dependabot, zagotovi, da naši neprekinjeni integracijski testi na prehodu za odnose z javnostmi in da ni nobenih zlomljivih sprememb knjižnice, nato pregleda nadgradnje, ki jih ponuja ta izboklina različice, in prinese seznam PR-jev ekipi v odobritev. da se združijo.

Prednosti avtomatizacije

Avtomatizirano upravljanje odvisnosti je močno orodje, ki bistveno izboljša naš razvojni proces in kakovost življenja naših inženirjev. Prav tako uporabnikom zagotavlja visoko vrednost in najnovejše funkcije v naši izvorni mobilni aplikaciji. Z orodjem, kot je Dependabot, smo poenostavili iskanje, integracijo in različice odvisnosti, zmanjšali količino ročnega truda, ki ga morajo porabiti inženirji, in zmanjšali možnost konfliktov v našem drevesu odvisnosti.

Ker zapletenost projektov Android še naprej narašča, je bila uvedba avtomatiziranega upravljanja odvisnosti korak visoke vrednosti, da bi zagotovili razvojni proces svetovnega razreda za našo ekipo in aplikacijo za Android svetovnega razreda za naše stranke.

Če želite izvedeti več o Sproutovi inženirski ekipi in kulturi, obiščite našo karierno stran .

Delite S Prijatelji: