Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poprawne praktyki przy programowaniu serwisu, git, npm, gulp, composer itp
nyfko
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.07.2014

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


Witam. Od jakiegoś czasu piszę mniejsze i większe stronki główne hobbystycznie zarówno front-end (html/css/js) jak i back-end (php). Do tej pory działałem bardzo chałupniczo, tzn całe kodowanie odbywało się bezpośrednio na FTP na zwykłym hostingu www. Gdy potrzebne były jakieś bilblioteki np. bootstrap czy coś z PHP to po prostu to pobierałem, wgrywałem na serwer i dołączałem do projektu - tyle. Uczę się teraz lepszych praktyk bo wiem że to złe.

Tak więc przez ostatnie dni zmieniłem to:
1. Przeniosłem się z pracy na serwerze na lokalny (xampp).
2. Wprowadziłem narzędzie npm i od teraz nim instaluję pakiety potrzebne przy frontendzie (bootstrap, jquery itp) zamiast ręcznie. W katalogu projektu mam teraz folder node_modules i package.json z używanymi pakietami.
3. Do npm wprowadziłem gulp który od teraz łączy mi wszystkie pliki js i css w pojedyncze wraz z tymi z node_modules, minifikuje itp, na stronie mam załadowane tylko te wynikowe. Do projektu dołączył plik gulp.js.
4. Wprowadziłem composer który instaluje mi zewnętrzne bilblioteki PHP. Do projektu dołączył folder vendor i composer.json


Pytanie co dalej?

Moim kolejnym krokiem powinno być chyba GIT. Gdy o nim czytam to wszędzie mówi się o nim w kontekście pracy zespołowej. Ja jednak obecnie piszę dane rzeczy w pojedynkę, i nie jako publiczne projekty tylko własne stronki.
Chcę go jednak wykorzystać jako jedyne poprawne rozwiązanie na sposób pracy nad serwisem - nie wiem czy słusznie. Chodzi o to by nie edytować wszystkiego przez FTP, tylko by to szło jakoś przez GIT - pytanie jak?

Czy dobrze rozumiem że to powinno wyglądać tak:
1. Piszę sobie jakąś stronę w PHP i testuję jej działanie na lokalnym serwerze.
2. To co zrobiłem działa i chcę by znalazło się na serwerze WWW.
3. Robię więc commita do jakiegoś prywatnego repozytorium np. na github mojego kodu, ale z pominięciem plików wygenerowanych przez gulp, bez pakietów npm i composera.
4. Na serwerze www przez zainstalowane na nim wszystkie narzędzie najpierw pobieram całą obecną zawartość z gita, potem instaluje zależności pakietów npm i composera a na koniec odpalam gulpa by wykonał wszystkie operacje na plikach js i css. I strona działa.
5. Dodając w przyszłości jakąś nową funkcjonalność znowu wgrywam wszystko z komputera na githuba, z githuba na serwer i odpalam npm, composera by sprawdził czy nie doszły jakieś nowe pakiety wymagane i odpalam gulpa.


1. Czy tak to powinno wyglądać? Czy jeszcze jakiegoś podstawowego narzędzia brakuje?
2. Czy powinienem te wszystkie operacje z npm, composerem itp wykonać na serwerze, czy na gita wgrać jednak już komplet plików razem z tymi skompresowanymi przez gulp?
3. Co jeżeli ja mam zwykły hosting www? Da się to wszystko jakoś ogarnąć, czy git i inne narzędzia wtedy tracą sens? Czy do każdego serwisu wtedy potrzebuję vps by to mogło działać?



Ogólnie proszę o podzielenie się tym jak to wygląda u Was, jak ta praca (głównie w pojedynkę jeśli tak też zdarza Wam się pracować) jest zorganizowana by to miało ręce i nogi?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gitbejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

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


1. bardzo dobrze że nie pracujesz już tylko przez ftp bo to bez sensu
2. za npm i gulpa bardzo duży +, tak się teraz pracuje i sam widzisz jak to ułatwia temat
4. composer to samo

do php'a naucz się dowolnego frameworka - to nic strasznego, a wręcz przeciwnie. Skoro nie bałeś się npm'a to szybko się przekonasz że frameworki php to bardzo duży strzał jakości i szybkości Twojej pracy. Jaki na początek ? Bardzo dużo osób zaczyna chociażby od Codeignitera - w tym również ja, bo jest mega łatwy do ogarnięcia i ma bardzo dobrą dokumentacje w tym również po Polsku. Może też być dowolnie inny, zacznij od czegokolwiek a odkryjesz zupełnie nową jakość pisania kodu.

Co dalej:

1. Tak, zawsze
2. Na serwer produkcyjny wrzucasz ZAWSZE TYLKO działającą wersje programu
3. Nie musisz aktualizować serwera poprzez repozytorium, chociaż też jest to rozwiązanie. Ja zawsze wersje produkcyjną wrzucam zwyczajnie przez ftp - przecież nie robi się tego codziennie. Można to zautomatyzować na wiele sposobów, najprościej i najbezpieczniej jednak wg mnie jest to robić ręcznie.
4. Po co masz kompilować pliki na serwerze ? Przecież od tego masz serwer lokalny. Tak jak w pkt 1. na serwer produkcyjny wrzucasz już tylko gotowe pliki. Folder npm_modules ma działać tylko na serwerze lokalnym, nie wrzucaj go na produkcje i też wyklucz ten folder z z GIT'a poprzez plik .gitignores.
5. tak jak wyżej. Na serwerze produkcyjnym pod żadnym pozorem nie kompilujesz bibliotek , nie robisz aktualizacji compozera oraz npm'a (IMG:style_emoticons/default/exclamation.gif) ! Co jak po aktualizacji strona przestanie działać prawidłowo ? Od tego masz serwer lokalny.

Co do GIT'a. Z początku konsola odpycha, do tej pory nie lubię z niej korzystać ale nie ma biedy bo jest już wiele fajnych GUI. Polecam Ci program "sourceTree". Zarejestruj konto na bitbucket. Na githubie prywatne repozytoria są płatne, na bitbucket masz za darmo do pewnej ilości - chyba do 10 repozytoriów. Ja pracuje głównie w pojedynkę i bez gita nie wyobrażam sobie pracy. Nie zadawaj sobie pytania po co mi to, tylko uwierz że skoro każdy szanujący się programista tego używa to coś w tym musi być. Korzystanie z systemu kontroli wersji niesie z sobą tylko same plusy i nie ma co się tutaj nad tym rozwodzić, po prostu zacznij stosować a się przekonasz. Zapoznaj się też z terminem "gitflow", program sourceTree ma fajne wsparcie dla tego modelu.

Ten post edytował gitbejbe 27.10.2017, 04:58:09
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: 28.12.2025 - 11:17