17 kryteriów, aby rozpocząć badania i ocenę bibliotek stron trzecich

Po co wymyślać koło ponownie? Jako programiści często zastanawiamy się nad tym pytaniem. Ilekroć mamy zamiar wprowadzić nową funkcjonalność, zwykle rozglądamy się, aby sprawdzić, czy istniejące narzędzia, biblioteki i frameworki dostępne tam mogą ułatwić naszą pracę. W końcu, czy naprawdę warto zainwestować czas i wysiłek w odtworzenie czegoś, co mogło już zostać stworzone i zoptymalizowane? A może lepiej byłoby skorzystać z istniejącego rozwiązania i dostosować je, aby osiągnąć nasz cel bardziej efektywnie?

W większości przypadków wszystko sprowadza się do tego, czy istniejące rozwiązania odpowiadają naszym potrzebom technicznym i do jakiego stopnia odpowiadają naszym wymaganiom biznesowym. Z tego powodu dokładne badanie i ocena bibliotek stron trzecich stało się bardzo częstym działaniem programistów. Niestety, wyszukiwanie i identyfikowanie najbardziej odpowiedniej biblioteki strony trzeciej jest złożonym zadaniem, a porównywanie różnych bibliotek często staje się przytłaczające.

W Panaseer zdaliśmy sobie sprawę, że ustanowienie i wykorzystanie ram oceny obejmujących zestaw kryteriów rozwoju i kryteriów biznesowych może usprawnić proces. Dobrze zdefiniowana lista obszarów krytycznych do zbadania zapewnia jasny kierunek podczas działalności badawczej. Ponadto ocena wielu bibliotek pod kątem tych samych wymagań pozwala na bardziej otwarte i przejrzyste dyskusje.

Poniższa lista jest wynikiem własnych badań, dzięki którym zidentyfikowaliśmy zestaw kryteriów, które wykorzystujemy do podjęcia decyzji, czy przyjąć i zintegrować bibliotekę strony trzeciej w Panaseer. Chociaż ta lista odzwierciedla obszary, które uważamy za niezbędne dla naszego biznesu i rozwoju, mamy nadzieję, że zachęci Cię do ustalenia własnego zestawu kryteriów, które będą pasować do twojej wizji i kultury.

1. Cel

Jaka jest podstawowa funkcjonalność biblioteki?

Chociaż różne biblioteki innych firm rozwiązują ten sam problem, często mają one na myśli różne cele, a tym samym oferują dodatkową unikalną funkcjonalność. Zauważając to, możemy ustalić, który z nich najbardziej odpowiada naszym wymaganiom, teraźniejszości i przyszłości. Na przykład podczas oceny bibliotek wizualizacji w celu wygenerowania wykresów słupkowych, konkretna biblioteka może być bardziej odpowiednia niż inne ze względu na dodatkowe typy wykresów, które udostępnia.

2. Technologia

Na jakiej technologii opiera się biblioteka? Jak dobrze można go zintegrować z istniejącą bazą kodu?

Chcemy rozważyć technologię każdej biblioteki ze względu na jej wpływ na wrażenia użytkowników i prace programistyczne, w tym integrację z istniejącą bazą kodu. Wracając do przykładu bibliotek wizualizacji, biblioteka innej firmy może renderować elementy za pomocą SVG, podczas gdy druga może to zrobić przy użyciu Canvas API, co może wpływać zarówno na działanie implementacyjne, jak i wydajność.

3. Zestaw uruchomieniowy

Co zapewnia biblioteka w zakresie zestawu programistycznego? Czy to może przyspieszyć lub spowolnić czas rozwoju?

Oprócz podstawowej technologii badamy rzeczywisty zestaw programistyczny, który zapewnia każda biblioteka innej firmy. Na przykład sprawdzamy, czy niektóre biblioteki są wyposażone w przydatne narzędzia lub kompleksowe interfejsy API, które mogą potencjalnie ułatwić wdrożenie wymaganego rozwiązania.

4. Dokumentacja

Czy dokumentacja biblioteki jest wyczerpująca? Czy zawiera przykłady i fragmenty kodu? Czy nawigacja jest łatwa?

Dobrze napisana, wyczerpująca i aktualna dokumentacja jest nieoceniona, tym bardziej, gdy opracowuje się funkcjonalność za pomocą nowej biblioteki innej firmy. Zwykłe przejrzenie dokumentacji biblioteki jest często wystarczające, abyśmy mogli poczuć, czego się spodziewać i wziąć to pod uwagę przy podejmowaniu ostatecznej decyzji.

5. Koszt

Czy jest to biblioteka bezpłatna czy premium? Jaki byłby przybliżony koszt, jeśli taki istnieje? Jakie są dostępne opcje zakupu?

Określenie kosztów finansowych związanych z przyjęciem biblioteki jest bardzo ważne z punktu widzenia biznesu i może ostatecznie wpłynąć na proces decyzyjny. Chociaż porównywanie cen bibliotek premium jest stosunkowo proste, powinniśmy również wziąć pod uwagę czas opracowywania i związane z tym koszty, których każda biblioteka wymagałaby do dostarczenia pożądanego rozwiązania.

6. Wydania

Jaka jest aktualna wersja biblioteki? Czy biblioteka otrzymuje regularne aktualizacje? Czy to zgodne ze strategią wydania?

Historia wydań biblioteki innej firmy jest dobrym wskaźnikiem jej strategii wydania, zapewniając wgląd w to, czego można się spodziewać w tej bibliotece pod względem aktualizacji, poprawek błędów i głównych zmian. Czynniki te często odgrywają główną rolę, kiedy decydujemy, którą bibliotekę wybrać. Dobrze obsługiwana biblioteka z niezawodną strategią wydania może często wydłużyć żywotność wbudowanych funkcji.

7. Rozmiar

Jaki jest rzeczywisty rozmiar pliku biblioteki? Ile to doda do istniejącego rozmiaru pakietu?

Chociaż niekoniecznie jest to kluczowe, nadal warto przyjrzeć się rozmiarom plików bibliotek, zwłaszcza w ich zminimalizowanych wersjach, i zastanowić się, jak bardzo wpływa to na istniejący rozmiar pakietu. Zwykle im mniejszy, tym lepiej.

8. Wsparcie społeczności

Jak duża i aktywna jest społeczność wokół biblioteki? Ilu programistów przyczyniło się do kodu źródłowego biblioteki? Jak łatwo jest znaleźć informacje i pomoc online?

W zależności od tego, jak popularna lub najnowsza jest biblioteka, uzyskanie informacji, wskazówek i odpowiedzi na pytania w Internecie może być mniej lub bardziej trudne. Pomysł, czego można się spodziewać w zakresie bezpłatnego wsparcia, może określić, jak naprawdę odpowiednia jest biblioteka innej firmy. Zwykle robimy to, zbierając proste dane za pomocą szybkich wyszukiwań online, takich jak liczba współpracowników biblioteki w GitHub lub wyniki wyszukiwania biblioteki w StackOverflow.

9. Profesjonalne wsparcie

Czy jest dostępne profesjonalne wsparcie w celu uzyskania pomocy z biblioteką? Czy wsparcie zapewnia twórcy biblioteki lub zewnętrzni freelancerzy i konsultanci?

W przypadkach, gdy biblioteki innych firm nie są oprogramowaniem typu open source, generalnie trudniej jest uzyskać informacje za pośrednictwem zasobów online, takich jak GitHub i StackOverflow. W związku z tym szukamy, jakie są dostępne opcje uzyskania wsparcia podczas pracy z biblioteką, jakie profesjonalne usługi są świadczone i jakie są związane z tym koszty.

10. Licencja

Na jakiej licencji biblioteka jest publikowana i dystrybuowana? Jakie są związane z tym wymagania?

Biblioteki open source są dostarczane z licencjami, które ogólnie pozwalają na swobodne używanie, modyfikowanie i udostępnianie oprogramowania, a biblioteki premium bardzo często zawierają dokładną listę ścisłych wymagań. W zależności od licencji biblioteka innej firmy może być mniej lub bardziej odpowiednia dla określonej firmy, aplikacji lub funkcji. Dlatego oceniamy aspekt licencji przed przyjęciem konkretnej biblioteki, aby upewnić się, że rozumiemy odpowiednie obowiązki i uniknąć potencjalnych problemów prawnych w przyszłości.

11. Wydajność

Jaka jest wydajność biblioteki? Czy oczekiwana wydajność jest zgodna z wymaganiami technicznymi i wymaganiami użytkownika?

Ocena wydajności biblioteki innej firmy przed zintegrowaniem jej z istniejącą bazą kodu jest prawdopodobnie jednym z najtrudniejszych zadań. Co najmniej staramy się znaleźć informacje i dane, badając online, w dokumentacji biblioteki lub, co jeszcze lepsze, dzięki doświadczeniu innych programistów. Z naszej perspektywy wydajność biblioteki powinna przynajmniej spełniać wymagania techniczne i wymagania użytkownika dotyczące proponowanego rozwiązania

12. Zgodność przeglądarki

Jakie przeglądarki są obsługiwane przez bibliotekę? Czy brakuje jakiejś krytycznej przeglądarki?

Kompatybilność z różnymi przeglądarkami często stanowi problem dla programistów front-end, tym bardziej, gdy korzysta się z bibliotek firm trzecich. Z naszego doświadczenia wynika, że ​​wyszukiwanie informacji o przeglądarkach obsługiwanych przez daną bibliotekę powinno być dość proste i na pewno warto.

13. Kompatybilność urządzenia

Jakie urządzenia są obsługiwane przez bibliotekę? Jakie są obsługiwane tryby interakcji?

Oprócz kompatybilności z różnymi przeglądarkami, biblioteki front-endowe innych firm często wymagają oceny pod kątem obsługiwanych typów urządzeń. Na przykład w zależności od budowanego konkretnego rozwiązania może być wymagane wybranie biblioteki, która w pełni integruje funkcje dotykowe dla konkretnego mobilnego systemu operacyjnego. Nawet jeśli nie jest to wyraźnie wymagane, uważamy, że dobrym pomysłem jest wypisanie kompatybilnych urządzeń podczas przeglądania krótkiej listy bibliotek, jeśli nie ma nic innego, aby ocenić ich potencjał na przyszłość.

14. Format danych

Jakie są wymagania dotyczące formatu danych biblioteki? Czy biblioteka jest zgodna ze znormalizowaną strukturą danych?

Podczas gdy wszystkie biblioteki innych firm przetwarzają dane na podstawie danych wejściowych i wyjściowych, niektóre z nich mogą mieć surowe wymagania dotyczące oczekiwanych formatów lub struktur. Dla nas ich lista i ocena ułatwia zrozumienie, czy bibliotekę można łatwo zintegrować z istniejącą bazą kodu z perspektywy danych.

15. Look & Feel

Czy biblioteka ma charakterystyczny wygląd? Jak można go dostosować? Czy można to dostosować do istniejącej aplikacji?

Ilekroć biblioteka innej firmy zawiera dane wizualne, uważamy, że jej wygląd nie powinien być zbyt odległy od wyglądu istniejącej aplikacji. Z tego powodu uważamy, że dobrym pomysłem jest zbadanie, jak można dostosować wygląd i styl biblioteki, jaka technologia jest oparta na stylu, a także jaki byłby czas potrzebny na wdrożenie pożądanego wyglądu.

16. Rozszerzalność

Czy można rozszerzyć funkcjonalność biblioteki? Czy jest to zalecane? Czy jakieś wtyczki lub rozszerzenia innych firm są już dostępne?

W zależności od budowanej funkcji i funkcjonalności zapewnianej przez bibliotekę od razu po wyjęciu z pudełka może być konieczne rozszerzenie lub optymalizacja głównych składników biblioteki. Nie wszystkie biblioteki stron trzecich na to pozwalają, ponieważ tak naprawdę sprowadza się to do licencji, na podstawie której są rozpowszechniane. Dla nas, biorąc pod uwagę długoterminowe skutki przyjęcia konkretnej biblioteki, kluczowe znaczenie ma zrozumienie prawnych i technicznych ograniczeń związanych z jej rozszerzalnością.

17. Kierunek przyszłości

Jaka jest wizja biblioteki? Czy dostępna jest mapa drogowa? Czy jest zgodny z istniejącą aplikacją?

Oceniając biblioteki stron trzecich, należy zawsze brać pod uwagę informacje o przyszłych planach biblioteki. Uważamy, że zapewnia to nie tylko przegląd nadchodzących funkcji, ulepszeń i poprawek błędów, ale także uniemożliwia przyjęcie jakiejkolwiek biblioteki, która może wkrótce przestać otrzymywać wsparcie lub nawet zostać całkowicie zdyskontowana.

Jak już wspomniano, identyfikowanie i uzgadnianie zestawu kryteriów oceny bibliotek stron trzecich może służyć wielu celom, od dostarczania wskazówek dotyczących badania informacji do służenia jako wspólna podstawa do dyskusji i podejmowania decyzji. Oczywiście, aby w pełni zrealizować te cele, sama lista powinna odzwierciedlać zarówno charakter ocenianych bibliotek, jak i wymagania biznesowe i techniczne, które zostały określone dla proponowanej funkcji. Kryteria mogą się zatem zmieniać w zależności od tego, czy ewaluacja obraca się wokół bibliotek frontonu czy bibliotek back-end, od istniejących ograniczeń czasowych i, oczywiście, od wniosków wyciągniętych z poprzednich procesów oceny.

Mimo że jest to prosty zestaw obszarów do zbadania, w Panaseer wykorzystanie takich ram już okazało się bardzo cenne dla przyjęcia nowych bibliotek front-end. Nie tylko jako zespół stale oceniamy, poszerzamy i optymalizujemy naszą listę kryteriów. W końcu najlepszą częścią tych ram jest to, że można je łatwo dostosować do każdego celu i kontekstu badań.

Jak o tobie? Czy masz ustalone ramy oceny bibliotek stron trzecich? Czy uważasz, że brakuje nam odpowiednich kryteriów? Daj nam znać!