W tej chwili pracuję nad bardzo dużą i złożoną aplikacją webową i mam do czynienia z ogromną ilością kodu js po stronie klienta, i aby ułatwić sobie życie Próbuję odłączyć ten kod tak bardzo jak mogę.Oddzielenie zbyt skomplikowanych modułów javascript
Byłem bardzo zainspirowany przez Nicholasa Zakasa (http://www.youtube.com/watch?v=vXjVFPosQHw) i Addy Osmani (http://addyosmani.com/largescalejavascript) mówiąc o skalowalnej architekturze js i próbowałem zastosować niektóre z ich pomysłów do mojej pracy.
ja oddzielone wszystkie moje kodu poprzek stwardnienie niezależnych modułów i obsługiwać wszystkie intercommunications z jakimś mediatora. Takie podejście działało świetnie w większości przypadków. Ale są pewne przypadki, w których myślę, że to za mało.
Jeden z modułów, nad którym pracuję, przedstawia dość złożoną strukturę podobną do listy. Oto niektóre uproszczony przykład:
Oprócz pewnej logiki renderowania, moduł odpowiedzialny za ten kawałek strony powinien obsługiwać:
- paginacja
- przełączanie grup
- ruchome elems i grup wokół z dnd
- cięcie/kopiowanie/wklejanie elementów i grup
- orzeźwiający certaing grupy/elems
- niektóre logika wewnątrz elems
- może być więcej rzeczy w najbliższej przyszłości
miałem przeprowadzić cały niepowiązanych logiki, że mogę (na przykład edycji i logiki usuwanie jest przeprowadzana do innego modułu za pośrednictwem zdarzeń), ale rozmiar modułu jest nadal duży (ponad 1K linii kodu) i nie wiem, jak go zmniejszyć. Co więcej, używam wzorca modułów dla moich modułów, więc jeszcze trudniej jest oddzielić logikę między wieloma plikami.
Przyszedłem tu zapytać, czy istnieje sposób na rozłączenie złożonej logiki w ramach jednego modułu?
UPDATE:
chcę coś wyjaśnić. Jestem dość świadomi, jak mogę oddzielić moduły ("moduł" od wzorca modułu) w wielu plikach w moim kodzie.
Ale to, co naprawdę szukają jest nowy logiczne sposób oddzielić obawy obrębie jednego modułu („moduł” z prezentacją NKZ).
Twoje pytanie jest trochę niejasne, ale ogólnie rzecz biorąc, możesz traktować moduł jak program, a wewnątrz ścian modułu możesz tworzyć submoduły, klasy, typy i czyste funkcje, aby zmniejszyć bałagan. moduły samodzielne są zazwyczaj stosunkowo drogie ze względu na ograniczoną wewnętrzną recyrkulację; ex: samodzielny sorter list w porównaniu do wtyczki jQuery. Moduły są lepsze niż bałagan, więc jesteś na dobrej drodze. Opanowanie pojęć Dependency Injection i Inversion of Control jest prawdopodobnie potrzebne do przeniesienia twoich skryptów na wyższy poziom. – dandavis
Osoby zainteresowane tym tematem mogą chcieć sprawdzić [t3] (http://t3js.org/), framework JS niedawno opublikowany przez samego Nicolasa Zakasa i jego zespół w Box, który wywodzi się bezpośrednio z koncepcji przedstawionych w prezentacji połączone w pytanie. [Tutaj jest (https://www.box.com/blog/introducing-t3-enabling-large-scale-javascript-applications/) wpis na blogu od Zakasa, który go przedstawia. – Nobita
Cześć, to trochę za późno, ale może być pomocne jakoś. https://pogsdotnet.blogspot.sg/2017/07/modular-javascript-architecture.html –