Aplikacja na serwerze i zdalna edycja

Witam wszystkich. Zaczynam przygodę z RoR i pomijając fakt iż zupełnie nie pojmuję działania tej magii to mam problem techniczny. Mianowicie chciałbym aby cała aplikacja wraz z serwerem(soft) znajdowała się na serwerze(hard), a ja w domku bym sobie zdalnie edytował kod, instalował gemy etc, tak jak jest w przypadku PHP, że na serwerze(hard) jest interpreter PHP i jakiś demon www. Jako iż na co dzień kodze sobie w Netbeansie więc zabawę zacząłem od niego. Zainstalowałem plugin i wszystko fajnie oprócz tego, że na komputerze potrzebuje też serwer do RoR’a oraz wszystkie inne programiki. Chciałbym tego uniknąć. Czy jest jakieś IDE, które pobiera pliki z serwera przez FTP i można je sobie edytować, a później podesłać spowrotem na serwer? Może też ktoś wie jak coś takiego uczynić w Netbeansie?

Pozdrawiam

A nie łatwiej zainstalować na swoim komputerze ruby/rails i odpalić komendę ‘rails s’ do uruchomienia servera ? Szybciej i przyjemniej.

Ewentualnie możesz porzucić kobyłe (netbeans) i przejsć na jakiś edytor konsolowy np. emacs(!) lub vim(ble) i działać bezpośrednio na serverze przez ssh :wink:

[quote=mayesto]Witam wszystkich. Zaczynam przygodę z RoR i pomijając fakt iż zupełnie nie pojmuję działania tej magii to mam problem techniczny. Mianowicie chciałbym aby cała aplikacja wraz z serwerem(soft) znajdowała się na serwerze(hard), a ja w domku bym sobie zdalnie edytował kod, instalował gemy etc, tak jak jest w przypadku PHP, że na serwerze(hard) jest interpreter PHP i jakiś demon www. Jako iż na co dzień kodze sobie w Netbeansie więc zabawę zacząłem od niego. Zainstalowałem plugin i wszystko fajnie oprócz tego, że na komputerze potrzebuje też serwer do RoR’a oraz wszystkie inne programiki. Chciałbym tego uniknąć. Czy jest jakieś IDE, które pobiera pliki z serwera przez FTP i można je sobie edytować, a później podesłać spowrotem na serwer? Może też ktoś wie jak coś takiego uczynić w Netbeansie?

Pozdrawiam[/quote]
a właściwie dlaczego chcesz tak robić? :stuck_out_tongue:

Takich rzeczy się nie robi. Nawet w świecie PHP to zły sposób pracy. Nie próbuj iść na skróty bo za tym tylko ból, cierpienie i śmiech wszystkich, którzy znają się na rzeczy :slight_smile:

Dobra zamiast jeździć po Koledze to może napiszecie, że istnieje coś takiego jak SCM-y, np. Git.

Otóż chcę uzyskać takie rozwiązanie z powodu iż nad projektem będzie pracowało kilka osób. Z php robię tak od kilku lat i nie narzekam, także z tym też chciałbym tak zrobić. Co do Gita to myślałem nad tym i miałem w planach wprowadzenie tego ale najpierw też muszę pojąć to coś. Praca przez konsolę i ssh oczywiście jest możliwa, ale uciążliwa.

Jeśli ma pracować parę osób to poświęć te pare dni na ogarnięcie gita - podstaw można się nauczyć naprawde szybko a profit będzie ogromny.
na początek: https://www.youtube.com/watch?feature=player_embedded&v=ZDR433b0HJY#!

Do poczytania
http://git-scm.com/book/pl

Git do podstawowej pracy na prawdę nie jest trudny do ogarnięcia, a do pracy w zespole jest bardzo wygodny. Tutaj można sprawdzić totalne podstawy: http://try.github.com/levels/1/challenges/1

Praca przez konsole i ssh tylko na początku wydaje się uciążliwa ale potem okazuje się, że wiele rzeczy można zrobić dużo szybciej i łatwiej. Wydaje mi się, że im wcześniej oswoisz się z tym narzędziem tym lepiej ;).

Co do Gita, to powoli zaczynam ogarniać, a jeśli chodzi o ssh i pracę przez konsole to jako informatyk tego się nie boje i zdaje sobie sprawę z wygody i oszczędności czasu przy niektórych czynnościach

Jako informatyk to powinieneś wiedzieć po co i dlaczego powstały systemy kontroli wersji. I wstydzić się w ogóle traktowania serio takich rozwiązań jak “zdalna edycja kodu na produkcji”.

Śmiesznie się robi jak dwie osoby otworzą ten sam plik, a następuje to szybciej niż byś się spodziewał. Naprawdę nie bez powodu Ci tu wszyscy wybijają z głowy to rozwiązanie.

No przecież napisał, że informatyk, nie programista, to i nie dziwne, że gita nie zna :wink:

Mayesto, nie wiem jakim cudem przepracowałeś tak kilka lat, ale nawet w przestarzałych programach studiów wsadzają naukę systemów kontroli wersji. Absolutnie każda firma jaką znam oczekuje podstawowej znajomości gita / svna (a to naprawdę kilka godzin nauki / eksperymentów), bo tak to się robi w roku 2013 zarówno ze względu na wygodę jak i zdrowy rozsądek. Jeśli chcesz to robić jak w latach 80tych (strzelam, nie wiem kiedy dokładnie była konfiguracja - serwer + terminale ;)), to nie wiem czy my Ci w czymś pomożemy ;).

Dodatkowo jeśli masz projekt w git i nie masz skomplikowanych zależności od bibliotek systemowych, to możesz kilkoma komendami umieścić apkę w sieci na heroku.com, które na początek jest bardzo fajne do hostowania aplikacji.

To dzisiaj trzeci raz kiedy umieszczam linka do Rails Tutorial: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book – jest rozdział o tym jak używać gita i kolejny jak wdrażać na serwer Heroku. Jeśli chcesz własny serwer, to przydatne okaże się np. Capistrano (chociaż tu krąży po siecie kupa nieaktualnej dokuentacji więc ostrożnie z tym jak starą znajdziesz).

Inna sprawa, o której chyba nikt nie wspomniał. Rails w przeciwieństwie do frameworków PHP (o ile nie ma zainstalowanych rozszerzeń w stylu APC) ładuje raz wszystkie pliki i trzyma je w pamięci (w trybie production). Dlatego zdalna edycja plików rails na serwerze tym bardziej nie ma żadnego sensu.
…no i jeszcze jak robić TDD pracując na zdalnym serwerze? :slight_smile: