Wpis z mikrobloga

Męczy mnie od dłuższego czasu pewne zagadnienie, może głupie, może mądre - nie wiem. Załóżmy, że po stronie serwera leży sobie coś, co odpowiada za obracanie zapytaniami HTTP, express, hapi, koa, cokolwiek. Strona, do której się odnoszą jest niekoniecznie ogromna, ale ma sporo niepowiązanych ze sobą sekcji, których nie można ładnie pogrupować tematycznie. Potrzebuję więc każdy handler sekcji tematycznej podpiąć osobno, na początku importując jakiś plik który powie serwerowi jak podaną ścieżkę tak obsługiwać. Brzmi sensownie i nawet fajnie, ale mam pytanie, jak przy ogromnej liczbie owych sekcji, czy inaczej - rozdzielonych handlerów zachować porządek w kodzie i nie dopisywać do jakiegoś głównego pliku z definicją serwera modułów odpowiedzialnych za jakiś content? Skanowanie konkretnego folderu brzmi sensownie, ale w wypadku kiedy używa się jakichś narzędzi bundlujących traci to chyba sens. Czy jest więc jakieś ładne rozwiązanie na to? Jak z takim czymś radzą sobie firmy z ogromną liczbą tych opisanych przeze mnie sekcji?

#webdev #nodejs #javascript
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@xDrope: raczej nie, chyba, że nie zauważyłem tam jakiegoś drugiego dna.

Po prostu zastanawiam się, czy nie da się tego rozgardiaszu w podpinaniu wielu handlerów jakoś zgrabnie uporządkować, tym w sumie można opisać krótko problem.
  • Odpowiedz
@magic96: No ja bym zrobił żeby każdy "serwis" eksportował swoje routy i jakiś główny serwis który wszystko spina je sobie wczytywał. Nie wiem co jeszcze można tutaj doradzić :P ewentualnie możesz przekazać obiekt serwera do środka każdego modułu i zostawić jemu odpowiednie ustawienia routów.
  • Odpowiedz
@magic96: stawiając warstwę grapqlową jednym zapytaniem dostajesz dowolne dane o które zapytasz - tylko i wyłącznie dane o które zapytasz. Czyli w jednym requeście wszystkie potrzebne dane. O to chodzi?
  • Odpowiedz
@Marmite: no to wiem, ale w obu przypadkach musisz jakoś importować te moduły niezależnie od tego, kto dostaje kontekst do podpięcia handlerów. I to rozwiązanie jest spoko przy stosunkowo małej liczbie różnych tematycznie sekcji albo kilku wspólnych tematycznie sekcji które sekwencyjnie podpinają swoje składowe wewnątrz. Może się trochę zagalopowałem po prostu i na siłę próbuję unikać dopisywania tych modułów, idk... ;_:
@xDrope: no to też wiem, ale chodzi
  • Odpowiedz
@magic96: no ale jeśli dzielisz kod na moduły to przecież i tak musisz gdzieś zaimportować moduł żeby w ogóle kod uruchomić, prawda? :P możesz jak sam wspomniałeś importować całe foldery, ale nadal... musisz wymienić które. No chyba że puścisz dynamicznego importa po jakimś folderze services i zaimportujesz wszystkie pliki index.js z wszystkich podfolderów. A w kontekście bundlerów, to webpack 2 powinien nawet sobie z tym poradzić (obsługuje dynamiczne importy)
  • Odpowiedz
@Marmite: no właśnie myślałem o tym folderze z serwisami, skoro webpack sobie już z tym radzi to super, muszę ogarnąć jak to wygląda.

dzięki mirki! :P
  • Odpowiedz