Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JavaScript - wzorce projektowe a frameworki?
d4ng
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

Ostrzeżenie: (0%)
-----


Witajcie mam mętlik w głowie i wydaje mi się że im więcej szukam i czytam tym mniej wiem.... Chciałbym powoli odejść od samego jQuery i skupić się bardziej na czystym, zorientowany "obiektowo" javascripcie. Wiem że są różne wzorce projektowe jednak nie mam takiej wiedzy i doświadczenia, żeby móc stwierdzić który jest lepszy (dysponowanie pamięcią, wydajność, łatwość nauki), a co najważniejsze który pozwoli mi miękko wejść w takie frameworki jak angular czy backbone? Podoba mi się Module Pattern ale widzę że dużą popularność ma Prototypal Pattern. Bardzo proszę o rozjaśnienie sytuacji, może przedstawienie obecnych trendów itp Każdy wpis będzie cenny. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PrinceOfPersia
post
Post #2





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


Cytat
Po pierwsze... zostaniesz moim mistrzem?exclamation.gif! biggrin.gif jestem w szoku Twojej wypowiedzi! za którą bardzo bardzo dziękuje.

haha, spoko (IMG:style_emoticons/default/smile.gif)

Cytat("d4ng")
wydajność

Co do wydajności to we frontendzie jest podstawowa zasada, która w 90% przypadków się sprawdza:
- JavaScript jest szybki, jeśli coś wolno działa to zapewne jest to DOM
To przeglądarka zamula. Ustawianie styli na elementach DOM, wstawianie czegoś do DOM, usuwanie, scrollowanie okna przeglądarki, wyświetlanie elementów w przeglądarce itp.
To czy zrobisz sobie moduły w JS, to gra minimalną rolę. Ponieważ JS jest szybki. Przeglądarki są wolne.

Na tym bazuje zresztą React, że odświeża tylko te elementy DOM, które się zmieniły i dlatego jest szybciej (chociaż również w React można zrobić wolno działającą aplikację, jeśli się niewłaściwie go użyje)


Cytat
rynek pracy)?

ze względu na rynek pracy: warto poznać Module Pattern taki, jak tam opisany, bo będziesz go używał nieraz pewnie, chociaż niekoniecznie... przy tworzeniu modułów. W zasadzie nazwa modułu jest myląca, bo może posłużyć do tworzenia modułu, ale równie dobrze do tworzenia zwykłych obiektów, ew. do izolowania zwykłych obiektów, czyli może posłużyć do kreacji i enkapsulacji czegokolwiek. Może lepiej byłoby to określać inaczej, np. "Encapsulation with IIFE" (IIFE to właśnie samowywołująca się funkcja). Ale cóż, przyjęło się że jest to Module Pattern (IMG:style_emoticons/default/wink.gif)

do samego robienia modułów zwykle używa się jakiegoś systemu modułów. Najpopularniejsze obecnie to chyba
- CommonJS (czyli `require('nazwamodułu')` itp.)
teoretycznie to są moduły z NodeJS, ale przy użyciu choćby Browserify można je "kompilować" i odpalać potem w przeglądarce.

- moduły z ES6
żeby ich użyć też używa się specjalnego "kompilatora" (czy raczej transpilatora), np. Babel, który transpiluje kod z ES6 (standard nie wspierany w całości przez przeglądarki) do ES5 (powszechny standard).

- moduły z Angulara
Ale one nie są kompatybilne z niczym, więc będziesz ich mógł używać tylko w Angularze, ponieważ twórcy Angulara postanowili, że będą hipsterami i wymyślą własny system modułów, zamiast użyć jakiegoś istniejącego. Nie dziwne, że teraz muszą przepisywać całego Angulara (IMG:style_emoticons/default/wink.gif) Takie i podobne rzeczy po prostu są słabe na dłuższą metę.

Cytat("Comandeer")
True. Teraz środowisko JS odkrywa magię Unixa: jest moda na tworzenie super lekkich, modularnych rozwiązań, gdzie jeden moduł wykonuje jedną, konkretną rzecz. I wszystko w oparciu o moduły: http://addyosmani.com/writing-modular-js/

ten link jest przykry, bo pokazuje patologię programowania w JS - że do wszystkiego jest ileś konkurencyjnych rozwiązań. Na szczęście powoli wchodzą moduły z ES6 (po 20 latach istnienia języka dorobili do niego moduły!), więc pewnie niedługo wszyscy będą robić na tych modułach, ew. wspierając się np. CommonJS, które jest bardziej dynamiczne i pozwala na większą dowolność w ładowaniu modułów (co jest jednak wadą pod pewnymi względami), niż pozwala na to instrukcja `import` z ES6.


Cytat
A jeśli już mówimy o React: warto od razu poczytać sobie o Web Components i eventowej architekturze aplikacji (http://www.slideshare.net/nzakas/scalable-javascript-application-architecture)

to warto nie tylko w odniesieniu do Reacta, ale ogólnie do dobrych praktyk programowania. BTW chyba miałeś na myśli "modułowej" bo w tym linku z Slideshare bardziej o modułach i decouplingu jest.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 13:04