9 lipca 20263 min czytaniaTomasz, Front-end Developer

Refaktoryzacja ChatArea: Lżejszy interfejs i szybsze działanie

#Optymalizacja#Next.js#React#Wydajność

Wraz z rozwojem StarChat, nasz główny komponent obszaru rozmowy – ChatArea.tsx – stał się prawdziwym monolitem. Osiągając rozmiar ponad 75 KB i zawierając w sobie logikę odtwarzaczy audio/wideo, podglądów OpenGraph i renderowania markdown, zaczął negatywnie wpływać na czas renderowania oraz komfort pracy programistów.

Modularność przede wszystkim

Podjęliśmy decyzję o gruntownej refaktoryzacji. Zgodnie z najlepszymi praktykami czystego kodu wydzieliliśmy trzy kluczowe, niezależne komponenty pomocnicze:

  1. LinkPreview: Obsługuje asynchroniczne pobieranie metadanych OpenGraph i renderowanie estetycznych kart podglądu linków zewnętrznych.
  2. AudioAttachment: Niestandardowy odtwarzacz plików dźwiękowych z czytelnym paskiem postępu i czasie trwania.
  3. VideoAttachment: Samodzielny, wysoce interaktywny odtwarzacz wideo z trybem pełnoekranowym i autorskim paskiem nawigacji.

Rezultaty

Rozmiar pliku ChatArea.tsx spadł z 75 KB do zaledwie 57 KB (redukcja o ponad 400 linii skomplikowanego kodu inline). Przeniesienie stanów lokalnych odtwarzaczy do osobnych komponentów zminimalizowało liczbę niepotrzebnych ponownych renderowań (re-renders) całego okna rozmowy przy odtwarzaniu multimediów. Interfejs jest teraz bardziej responsywny i gotowy na łatwiejszą rozbudowę w przyszłości.

Bądź zawsze poinformowany

Zapisz się do newslettera StarChat, aby raz w miesiącu otrzymywać zestawienie nowości, aktualizacji technicznych oraz porad dotyczących bezpieczeństwa.