Wybierz i skonfiguruj narzędzia do kompilacji na podstawie sprawdzonych metod.
Dziś web.dev rozpoczyna nową inicjatywę o nazwie tooling.report. To witryna, która zawiera przegląd funkcji dostępnych w wybranych popularnych narzędziach do tworzenia stron internetowych. Stworzyliśmy tę witrynę, aby pomóc Ci w wyborze odpowiedniego narzędzia do tworzenia kolejnego projektu, określeniu, czy warto przeprowadzić migrację z jednego narzędzia do drugiego, lub wymyśleniu, jak włączyć sprawdzone metody w konfigurację narzędzi i bazę kodu. Narzędzia dotyczą różnych obszarów, na których się skupiają, i odpowiadają różnym potrzebom, co oznacza, że wybór i konfiguracja narzędzi wiąże się z różnicami. Narzędzie Tooling.report pozwala wyjaśnić te kompromisy i udokumentować, jak stosować sprawdzone metody w przypadku każdego narzędzia do tworzenia kompilacji.
Brzmi ekscytująco? Wejdź na stronę Tooling.report, aby poznać nowe możliwości, lub zapoznaj się z dalszymi informacjami, aby dowiedzieć się, dlaczego i jak stworzyliśmy tę witrynę.
Narzędzia do tworzenia często przeszkadzają
W GoogleChromeLabs stworzyliśmy aplikacje internetowe takie jak Squoosh i Proxx, a także witryny podobne do tych na Chrome Dev Summit 2019. Tak jak w przypadku każdego projektu internetowego, zaczynamy od omówienia infrastruktury projektu, np. środowiska hostingu, ram i narzędzi do tworzenia. Infrastruktura jest aktualizowana w miarę postępów projektu: dodajemy nowe wtyczki, aby dostosować nasze platformy lub techniki, lub zmienia się sposób, w jaki piszemy kod, dzięki czemu nasze narzędzia do tworzenia aplikacji lepiej rozumieją, co chcemy osiągnąć. W trakcie tego procesu często okazywało się, że wybrane przez nas narzędzia nam przeszkodzą.
Nasz zespół stara się zapewniać użytkownikom jak najlepsze wrażenia w internecie, co często prowadzi do dostosowania sposobu tworzenia i dostarczania naszych zasobów frontendowych. Na przykład, jeśli skrypt wątku głównego i skrypt web worker mają wspólne zależności, wolimy pobrać zależności jeden raz, zamiast łączyć je w pakiet 2 razy dla każdego skryptu. Niektóre narzędzia od razu obsługują tę funkcję, inne wymagają znacznego nakładu pracy, aby zmienić domyślne zachowania, a w innych jest to całkowicie niemożliwe.
Doświadczenie pozwoliło nam sprawdzić, jakie możliwości dają różne narzędzia do tworzenia, a jakie nie. Chcieliśmy utworzyć listę kontrolną funkcji, tak aby przy kolejnym tworzeniu projektu można było ocenić i wybrać narzędzie odpowiednie do tego projektu.
Nasze metody
Jak można oceniać i porównywać różne narzędzia do tworzenia w jednym miejscu? Zaczęliśmy od opisania przykładów testów.
Nasz zespół omówił i zaprojektował kryteria testowe, które naszym zdaniem reprezentują sprawdzone metody projektowania stron internetowych. Skupiliśmy się na tym, jak zapewniać użytkownikom szybkie, responsywne i bezproblemowe działanie, celowo wykluczając testy związane z wrażeniami programistów, aby uniknąć pomiarów 2 nieporównywalnych wyników.
Po utworzeniu listy testów napisaliśmy skrypt kompilacji dla każdego narzędzia, który sprawdzał, czy spełnia ono kryteria powodzenia testu. Na początek postanowiliśmy sprawdzić pakiet internetowy w wersji 4, z pakietami Rollup v2 oraz Parcel v2. Przetestowaliśmy też Browserify + Gulp, ponieważ ta konfiguracja jest wciąż używana w dużej liczbie projektów. Aby test został zaliczony, można używać tylko udokumentowanych publicznie funkcji narzędzia lub wtyczki do narzędzia. Po napisaniu wstępnego zestawu testów współpracowaliśmy z autorami narzędzi do tworzenia, by mieć pewność, że prawidłowo używamy ich narzędzi i przedstawiamy je w prawidłowy sposób.
Używamy tylko narzędzia ${tool_name}, czy to nadal powinno mnie zainteresować?
W wielu zespołach pracują ludzie zajmujący się utrzymaniem infrastruktury kompilacji, a pozostali członkowie mogą nigdy nie dokonać wyboru w zakresie tworzenia narzędzi. Mamy nadzieję, że będzie ona nadal przydatna dla Ciebie, ponieważ pozwoli Ci określić oczekiwania związane z używanymi narzędziami. W przypadku każdego testu dodajemy wyjaśnienie, dlaczego jest on ważny, a także dodatkowe materiały. A jeśli chcesz stosować sprawdzone metody za pomocą wybranego przez siebie narzędzia, konfiguracja testu w naszym repozytorium zawiera niezbędne pliki konfiguracji.
Czy mogę wesprzeć witrynę?
Jeśli uważasz, że należy przetestować konkretną funkcję, której obecnie brakuje, zasugeruj ją w problemie z GitHubem, aby rozpocząć dyskusję. Naszym celem jest przedstawienie rzeczywistych przypadków użycia, dlatego mile widziane są wszelkie dodatkowe testy, które pozwolą lepiej ocenić te wyniki.
Jeśli chcesz napisać testy narzędzi, których nie było w zestawie początkowym, też chętnie to zrobimy. Więcej informacji znajdziesz na stronie CONTRIBUTING.md.