Proszę mi powiedzieć, jeśli:
- Node.js sprawi, że nasza strona będzie szybsza!
- Node.js zużywa mniej zasobów serwera, możemy zaoszczędzić pieniądze!
- Node.js zwiększy naszą wydajność!
- Node.js oznacza, że możemy udostępniać kod JavaScript po stronie klienta i serwera.
Aby to wyjaśnić, przepisujemy serwer frontonu, który będzie rozmawiać z naszą istniejącą aplikacją Ruby on Rails jako API. W międzyczasie zmienimy naszą aplikację Ruby on Rails na usługi.
Więcej szczegółów na temat istniejącej architektury:
- Zapisane w pamięci podręcznej dla buforowania częściowych HTML
- Redis do sesji i niektóre strukturalne buforowanie danych
- MySQL pojedynczy master, wiele slave
- Jest jeden duży stół, który akceptuje wiele zapisów (wyobraź sobie ankietę)
- W przeciwnym razie głównie czyta.
- MongoDB dla niektórych metadanych
- Ruby on Rails 3.0
- nginx i Unicorn
architecture
ruby-on-rails
node.js
rewrite
użytkownik88487
źródło
źródło
Odpowiedzi:
Na większość zadawanych pytań nie można odpowiedzieć bez kontekstu i są one mniej więcej sporne, biorąc pod uwagę, że kierownictwo dokonało już wyboru dla ciebie ... chyba że pytasz: „czy powinienem rzucić palenie i znaleźć nową pracę w obliczu tej zmiany? ?
Jeśli zamierzasz to rozwiązać, polecam przeczytanie tego postu na ten temat: Jak przetrwać od podstaw, przepisz bez utraty zdrowia psychicznego .
Niedawno zacząłem od przepisywania trochę logiki serwera w node.js. Głównym powodem było to, że obecnie jest napisany w .NET i chcemy migrować z dala od środowisk MS.
Moje dotychczasowe doświadczenia były pozytywne, będziesz mieć wstępną krzywą uczenia się z całym jej nieblokowaniem, ale kiedy przejdziesz, w rzeczywistości jest całkiem fajnie pisać. Wiem, ZABAWA!
Ma to jednak ciemną stronę: każdy mężczyzna i jego pies, którzy dokonali pewnych prac programistycznych w JavaScript - i mam nadzieję, że byłby to każdy programista - jest trochę podekscytowany, gdy wspominasz, że node.js to javascript po stronie serwera „nie oznacza to jednak, że programiści będą mieli doświadczenie wymagane do pisania dobrych aplikacji po stronie serwera.
Z jednej strony należy wziąć pod uwagę, że błąd krytyczny obniży całą aplikację ze względu na jej nie wątkową naturę, więc stawki są nieco wyższe i musisz jawnie sprawdzić i złapać wszystko.
Dla tych, którzy zrobili zarówno front, jak i back - i cieszą się obiema - brak konieczności przełączania kontekstów mentalnych z języków front-end na back-end jest prawdziwym bonusem, który moim zdaniem ostatecznie zwiększy produktywność w naszym zespole.
źródło
Cóż, nie sądzę, że przepisywanie aplikacji było dobrym pomysłem, chyba że działało słabo. Aby odpowiedzieć na pytania:
Node.js nie jest magią. Twoja aplikacja ma ogromną liczbę użytkowników, więc nie ma pewności, że przyspieszy.
Cóż, tak, Node.js w rzeczywistości zużywa mniej zasobów serwera. Dzięki temu możesz nie tylko zaoszczędzić pieniądze na zasobach, ale możesz także zrobić więcej z istniejącymi. Wynika to głównie z jednowątkowego charakteru Node.js. Nie ma narzutu dodatkowych wątków.
Ponownie Node.js nie jest magią. Powiedziawszy to, może być w tym trochę prawdy. Node.js ma bardzo aktywną społeczność, która stworzyła setki modułów dla każdego możliwego zadania. Jest więc całkiem prawdopodobne, że większość pracy została wykonana dla Ciebie. Musisz tylko dopasować elementy do siebie.
Teoretycznie tak. Ponieważ Node.js to JavaScript, możesz współdzielić kod między klientem a serwerem. Ale nie wiem dokładnie, co zostanie udostępnione. Nie napisałem żadnego kodu, który mógłby zostać ponownie użyty na kliencie. Rzeczy, które robimy na serwerze, zwykle nie mają nic wspólnego z klientem. Ważniejszy jest dla mnie brak przełącznika kontekstu. Łatwiej jest mi napisać kod na kliencie i serwerze w jednym języku.
Ponieważ Node.js jest jednowątkowy, chyba że jest to wyraźnie skonfigurowane , nie może korzystać z wielu procesorów .
Spójrz również na komentarze. Zapewniają dobry wgląd w działanie Node.js.
źródło