17 kritérií na spustenie vášho výskumu a hodnotenia knižníc tretích strán

Prečo znovu vynájsť koleso? Ako vývojári často nachádzame reflexiu tejto otázky. Kedykoľvek sa chystáme zaviesť novú funkčnosť, máme sklon hľadať, či existujúce nástroje, knižnice a rámce, ktoré sú k dispozícii, by mohli našej práci uľahčiť. Napokon, naozaj stojí za to investovať čas a úsilie do replikácie niečoho, čo už mohlo byť vytvorené a optimalizované? Alebo by bolo lepšie využiť existujúce riešenie a prispôsobiť ho tak, aby sme efektívnejšie dosahovali náš cieľ?

Väčšinou ide o to, či existujúce riešenia vyhovujú našim technickým potrebám a do akej miery sú v súlade s našimi obchodnými požiadavkami. Z tohto dôvodu sa pozorné skúmanie a hodnotenie knižníc tretích strán stalo medzi vývojármi veľmi častou činnosťou. Bohužiaľ, výskum a identifikácia najvhodnejšej knižnice tretích strán je zložitá úloha a porovnávanie rôznych knižníc sa často stáva ohromujúcou.

V spoločnosti Panaseer sme si uvedomili, že vytvorenie a využitie hodnotiaceho rámca, ktorý obsahuje súbor rozvojových a obchodných kritérií, môže tento proces zjemniť. Jasne definovaný zoznam kritických oblastí, ktoré sa majú skúmať, poskytuje jasný smer počas výskumnej činnosti. Okrem toho hodnotenie viacerých knižníc na základe rovnakých požiadaviek umožňuje otvorenejšie a transparentnejšie diskusie.

Nasledujúci zoznam je výsledkom vlastného výskumu, prostredníctvom ktorého sme určili súbor kritérií, ktoré používame pri rozhodovaní o prijatí a integrácii knižnice tretích strán v spoločnosti Panaseer. Aj keď tento zoznam odráža oblasti, ktoré považujeme za nevyhnutné pre náš obchod a vývoj, dúfame, že vás povzbudí, aby ste si vytvorili vlastný súbor kritérií, ktorý vyhovuje vašej vízii a kultúre.

1. Účel

Aká je hlavná funkčnosť knižnice?

Aj keď rôzne knižnice tretích strán riešia ten istý problém, často myslia na odlišné účely, a preto ponúkajú ďalšie jedinečné funkcie. Zaznamenaním tohto zistíme, ktorý z nich najviac zodpovedá našim súčasným a budúcim požiadavkám. Napríklad pri hodnotení vizualizačných knižníc na generovanie stĺpcových grafov môže byť konkrétna knižnica vhodnejšia ako ostatné kvôli ďalším typom grafov, ktoré poskytuje.

2. Technológia

Na akej technológii je knižnica založená? Ako dobre sa môže integrovať do existujúcej kódovej základne?

Chceme zvážiť technológiu každej knižnice z dôvodu jej vplyvu na skúsenosti používateľov a vývojovú prácu vrátane integrácie s existujúcou kódovou základňou. Vráťme sa k príkladu našich vizualizačných knižníc, knižnica tretích strán by mohla vykresliť prvky prostredníctvom SVG, zatiaľ čo druhá by to mohla urobiť pomocou rozhrania Canvas API, ktoré môže ovplyvniť implementačnú aktivitu aj výkon.

3. Vývojová súprava

Čo poskytuje knižnica z hľadiska vývojovej súpravy? Je pravdepodobné, že sa urýchli alebo spomalí vývojový čas?

Okrem základnej technológie skúmame aj aktuálny vývojový kit, ktorý poskytuje knižnica tretích strán. Napríklad skúmame, či niektoré knižnice prichádzajú s užitočnými nástrojmi alebo komplexnými API, ktoré môžu potenciálne uľahčiť implementáciu požadovaného riešenia.

4. Dokumentácia

Je dokumentácia knižnice komplexná? Obsahuje príklady a útržky kódu? Je ľahká navigácia?

Dobre napísaná, vyčerpávajúca a aktuálna dokumentácia je cenná, a to ešte viac pri vývoji funkcie v novej knižnici tretích strán. Jednoduchý prehľad dokumentácie knižnice nám často postačuje na to, aby sme mali pocit, čo môžeme očakávať, a zohľadniť to pri konečnom rozhodnutí.

5. Náklady

Je to bezplatná alebo prémiová knižnica? Aké by boli približné náklady, ak nejaké existujú? Aké sú dostupné možnosti nákupu?

Určenie toho, aké sú peňažné náklady spojené s prijatím knižnice, je veľmi dôležité pre obchodné hľadisko a môže v konečnom dôsledku znamenať rozdiel v procese rozhodovania. Aj keď je relatívne jednoduché porovnávať ceny prémiových knižníc, mali by sme rovnako brať do úvahy čas vývoja a súvisiace náklady, ktoré by každá knižnica vyžadovala, aby poskytla požadované riešenie.

6. Vydania

Aká je aktuálna verzia knižnice? Dostáva knižnica pravidelné aktualizácie? Dodržiava stratégiu vydania?

História vydaní knižnice tretej strany je dobrým ukazovateľom jej stratégie vydávania, ktorá poskytuje prehľad o tom, čo sa dá od tejto knižnice očakávať, pokiaľ ide o aktualizácie, opravy chýb a veľké zmeny. Tieto faktory často hrajú hlavnú úlohu, keď sa rozhodneme, ktorú knižnicu vyberieme. Dobre podporovaná knižnica so spoľahlivou stratégiou vydania môže často predĺžiť životnosť funkcií s ňou vytvorených.

7. Veľkosť

Aká je skutočná veľkosť súboru v knižnici? Koľko to pridá k existujúcej veľkosti zväzku?

Aj keď to nie je nevyhnutne dôležité, stále stojí za to pozrieť sa na veľkosť knižničných súborov, najmä v ich zmenšených verziách, a uvažovať o tom, do akej miery to ovplyvní existujúcu veľkosť zväzku. Zvyčajne, čím menšie, tým lepšie.

8. Podpora spoločenstva

Aká veľká a aktívna je komunita okolo knižnice? Koľko vývojárov prispelo k zdrojovému kódu knižnice? Ako ľahké je nájsť informácie a pomoc online?

V závislosti od toho, aká populárna alebo aktuálna je knižnica, môže byť viac alebo menej ťažké získať informácie, tipy a odpovede na otázky online. Mať predstavu o tom, čo možno očakávať, pokiaľ ide o bezplatnú podporu, môže určiť, nakoľko je knižnica tretích strán skutočne vhodná. Zvyčajne to robíme zhromažďovaním jednoduchých metrík prostredníctvom rýchlych online vyhľadávaní, ako je napríklad počet prispievateľov do knižnice na GitHub alebo výsledky vyhľadávania pre knižnicu na StackOverflow.

9. Profesionálna podpora

Je k dispozícii odborná podpora na získanie pomoci s knižnicou? Poskytuje podporu tvorcovia knižníc alebo externí nezávislí spolupracovníci a konzultanti?

V prípadoch, keď knižnice tretích strán nie sú otvoreným zdrojom, je spravidla ťažšie získať informácie prostredníctvom online zdrojov, ako sú GitHub a StackOverflow. Preto hľadáme, aké sú dostupné možnosti na získanie podpory pri práci s knižnicou, aké profesionálne služby sú poskytované a aké sú s tým spojené náklady.

10. Licencia

Na základe akej licencie sa knižnica zverejňuje a distribuuje? Aké sú súvisiace požiadavky?

Knižnice s otvoreným zdrojovým kódom prichádzajú s licenciami, ktoré vo všeobecnosti umožňujú slobodné používanie, úpravu a zdieľanie softvéru, zatiaľ čo prémiové knižnice veľmi často obsahujú presný zoznam prísnych požiadaviek. V závislosti od licencie môže byť knižnica tretej strany viac-menej vhodná pre určitú spoločnosť, aplikáciu alebo časť funkcie. Preto pred prijatím konkrétnej knižnice vyhodnotíme licenčný aspekt, aby sme sa ubezpečili, že rozumieme zodpovedajúcim povinnostiam a aby sme sa v budúcnosti vyhli možným právnym problémom.

11. Výkon

Aká výkonná je knižnica? Je očakávaný výkon v súlade s technickými a užívateľskými požiadavkami?

Posúdenie výkonu knižnice tretej strany pred jej integráciou do existujúcej kódovej základne je pravdepodobne jednou z najnáročnejších úloh. Minimálne sa snažíme nájsť informácie a metriky skúmaním online, či už v dokumentácii knižnice, alebo ešte lepšie prostredníctvom skúseností iných vývojárov. Z nášho pohľadu by výkon knižnice mal spĺňať minimálne technické a užívateľské požiadavky určené pre navrhované riešenie

12. Kompatibilita prehliadača

Ktoré prehliadače knižnica podporuje? Chýba nejaký kritický prehliadač?

Kompatibilita naprieč prehliadačmi často predstavuje problém pre vývojárov front-end, ešte viac pri využívaní knižníc tretích strán. Podľa našich skúseností by malo byť zisťovanie informácií o tom, ktoré prehliadače sú podporované danou knižnicou, pomerne jednoduché a určite by to malo stáť za to.

13. Kompatibilita zariadenia

Ktoré zariadenia knižnica podporuje? Aké sú podporované režimy interakcie?

Okrem kompatibility medzi prehliadačmi je často potrebné front-end knižnice hodnotiť podľa podporovaných typov zariadení. Napríklad v závislosti od vytvoreného konkrétneho riešenia môže byť požiadavkou vybrať knižnicu, ktorá plne integruje dotykové funkcie pre konkrétny mobilný operačný systém. Aj keď to nie je výslovne požadované, cítime, že je stále dobré uviesť zoznam kompatibilných zariadení, keď prechádzate cez užší zoznam knižníc, ak nič iné na posúdenie ich potenciálu do budúcnosti.

14. Formát údajov

Aké sú požiadavky na formát údajov knižnice? Zarovnáva sa knižnica so štandardizovanou dátovou štruktúrou?

Zatiaľ čo všetky knižnice tretích strán spracovávajú údaje nejakého druhu prostredníctvom vstupu a výstupu, niektoré z nich môžu mať prísne požiadavky týkajúce sa očakávaných formátov alebo štruktúr. Ich zoznam a vyhodnotenie nám uľahčuje pochopenie toho, či je možné knižnicu z hľadiska údajov ľahko integrovať do existujúcej kódovej základne.

15. Vyzerajte a cítite

Má knižnica výrazný vzhľad a dojem? Ako je to prispôsobiteľné? Môže byť v súlade s existujúcou aplikáciou?

Kedykoľvek knižnica tretej strany obsahuje vizuálny výstup, veríme, že jej vzhľad by nemal vyzerať príliš ďaleko od vzhľadu existujúcej aplikácie. Z tohto dôvodu si myslíme, že je dobré skúmať, ako prispôsobiteľný je vzhľad a dojem knižnice, na ktorej technológii sa styling zakladá, a na základe čoho by bola potrebná časová investícia na vykonanie požadovaného vzhľadu.

16. Rozšíriteľnosť

Je možné rozšíriť funkčnosť knižnice? Podporuje sa to? Sú už k dispozícii nejaké doplnky alebo rozšírenia tretích strán?

V závislosti od vytvorenej funkcie a funkčnosti, ktoré knižnica ponúka, môže byť potrebné rozšíriť alebo optimalizovať základné komponenty knižnice. Nie všetky knižnice tretích strán to umožňujú, pretože to skutočne závisí od licencie, na základe ktorej sú distribuované. Pre nás je vzhľadom na dlhodobé vplyvy prijatia konkrétnej knižnice rozhodujúce pochopenie právnych a technických obmedzení týkajúcich sa jej rozšíriteľnosti.

17. Budúci smer

Aká je vízia knižnice? Je k dispozícii cestovná mapa? Zosúlaďuje sa s existujúcou aplikáciou?

Pri hodnotení knižníc tretích strán by sa mali vždy zohľadniť informácie o budúcich plánoch knižnice. Sme presvedčení, že to nielen poskytuje prehľad nadchádzajúcich funkcií, vylepšení a opráv chýb, ale tiež zabraňuje prijatiu akejkoľvek knižnice, ktorá by mohla čoskoro prestať dostávať podporu alebo dokonca byť úplne diskontovaná.

Ako sme už uviedli, identifikácia a odsúhlasenie súboru hodnotiacich kritérií knižníc tretích strán môže slúžiť na rôzne účely, od poskytovania usmernení pre výskum informácií až po spoločný základ pre diskusiu a rozhodovanie. V záujme úplného naplnenia týchto cieľov by samozrejme zoznam mal odrážať povahu hodnotených knižníc, ako aj obchodné a technické požiadavky stanovené pre navrhovanú funkciu. Kritériá sa preto môžu meniť v závislosti od toho, či sa hodnotenie točí okolo front-end alebo back-end knižníc, od existujúcich časových obmedzení a, samozrejme, od ponaučení získaných z predchádzajúcich hodnotiacich procesov.

Napriek tomu, že ide o jednoduchý súbor oblastí, ktoré sa majú vyšetrovať, použitie tohto rámca sa už v spoločnosti Panaseer ukázalo ako veľmi cenné pre prijatie nových front-end knižníc. Nielenže ako tím neustále posudzujeme, rozširujeme a optimalizujeme náš zoznam kritérií. Najlepšia časť tohto rámca je koniec koncov, že ho možno ľahko prispôsobiť tak, aby vyhovoval každému účelu a kontextu výskumu.

A čo ty? Máte zavedený rámec na hodnotenie knižníc tretích strán? Máte pocit, že nám chýbajú relevantné kritériá? Dajte nám vedieť!