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
A czym jest komponent, jeśli nie modułem, który powinien być odizolowany od reszty

Tu masz rację, zapędziłem się w tym postrzeganiu modułu jedynie jako poziomu organizacji na poziomie pliku (CommonJS itp.), że znikła mi szersza perspektywa tego, że koncepcyjnie wszystko może być modułem, choćby pojedyncza funkcja.

Czyli mamy moduł jako sposób na organizację samego kodu (po to, żeby człowiek się połapał w programie) oraz moduł w sensie koncepcyjnym.

Czasem to jest to samo, czasem nie. Można zrobić aplikację choćby na modułach CommonJS, ale nie zachowując żadnych dobrych praktyk i zrobić np. 10 plików, który każdy jest zależny od 5 innych.
Czyli moduły w sensie organizacji kodu, ale już nie koncepcyjnie.

Z drugiej strony można zrobić aplikację w jednym pliku, który będzie miał np. 2000 linijek kodu, ale porobić tę aplikację jak najbardziej ładnie i modułowo.

Cytat
wystawiać eventowe API?

Hmmm... Rozumiem o czym piszesz, bo niby owszem, eventy to dobra metoda na uniezależnienie modułów, ale z drugiej strony:
- eventowe API może istnieć bez modułów (praca w jQuery na przykład, też opiera się na eventach, a jednak ludzie piszą spaghetti code w jQuery i nie robią w nim żadnych modułów)

- Poza tym można stworzyć modularną aplikację połączoną na niezależne od siebie części, bez użycia zdarzeń (wszystko co jest niemutowalne i bezstanowe - w sumie eventy są potrzebne tylko do tego, żeby zmienić stan obiektu/aplikacji. Jeśli nie zmieniasz stanu, nie potrzebujesz eventów)

Jeszcze jest taka sprawa taka, że rozwiązania bazujące na eventach często oznaczają to, że moduły uzależniają się albo od globalnego obiektu odpowiadającego za rozprowadzanie eventów, albo od konkretnego interfejsu obiektów np. mogą zakładać, że moduły będą zawierać metodę "emit" (albo "notify" jak było na tych slajdach), a co oznacza, że nie zawsze da się wyjąć moduł z aplikacji A i wsadzić do aplikacji B.

Chociaż oczywiście można napisać tak apkę, żeby się dało (np. korzystając w modułach jedynie z callbacków które wchodzą na wejściu, a nie zakładać nic o dispatcherze czy o interfejsie obiektów - za to będzie odpowiadał już specjalnie przygotowany callback).

Cytat
I to mnie dziwi, bo moduły z Angulara są bardzo podobne do AMD i nie powinno być aż tak wielkich trudności z przepisaniem Angulara na AMD.

No dobra. Jak się ma czas i ochotę, to pewnie i na CommonJS można "przepisać".
Tym niemniej nikt nie będzie przepisywał ręcznie dziesiątek czy setek modułów Angulara (chyba, że od początku aplikacja by była tak pisana).
A jeśli aplikacja jest oparta na hipsterskich modułach angularowych (tudzież innych "bytach" - w sumie kontrolery, serwisy czy dyrektywy to też pewnego rodzaju moduły) to nie da się jej zanalizować istniejącymi narzędziami. Tzn. nie musi być w ogóle oparta o jakieś wymyślne moduły. Nawet jakby zrobili ją na zwykłych obiektach JS czy klasach ES6 też byłoby okej (taki ma być Angular 2, ale jeszcze go nie ma). Wtedy można robić np. takie rzeczy:
http://hughsk.io/colony/ (IMG:style_emoticons/default/wink.gif)

Cytat
No właśnie teoretycznie nie wink.gif node.js stosuje syntax nie do końca zgodny ze specyfikacją.

to znaczy? Możesz "poelaborować" trochę więcej (IMG:style_emoticons/default/wink.gif) ?


Cytat("d4ng")
PrinceOfPersia czytając Twoje wpisy rozlewa mi się mózg na klawiaturę i zdaje sobie sprawę jak małym robaczkiem jestem w tym ogródku... ale na pewno się nie zniechęcam i powoli będę parsować temat

Dzięki. W sumie właśnie się zastanawiam, że może powinienem więcej pisać na swoim blogu o programowaniu, skoro to ludzi ciekawi.

Ten post edytował PrinceOfPersia 30.10.2015, 18:40:23
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: 10.10.2025 - 22:49