Mam dość długi staż w programowaniu i uważam się za przynajmniej średniozaawansowanego programistę.
Niestety jestem typowym samoukiem, a studia, które skończyłem, nie miały zbyt dużo wspólnego z typowym programowaniem (uczelnia ekonomiczna).
Nie pracowałem nigdy w typowej firmie programistycznej, ani nie miałem praktyk tak więc nie miałem skąd nabrać dobrych zwyczajów projektowych.
Obecnie aplikacje piszę np. w CI korzystając z IDE PhpStorm. Zawsze projekt jest na docelowym serwerze, automatycznie uploaduje zmiany via FTP, które widzę ja i klient. Nie korzystam z systemów wersjonowania (PhpStorm ma funkcję historii zmian pliku), nie pracuje lokalnie, nie korzystam z konsoli, nie robię testów jednostkowych. To się sprawdza, raczej nie powoduje to, że pisze kiepskie aplikacje, ale mam wrażenie, że jestem troszkę jakby jedną epokę wstecz.
Niedługo czeka mnie duży projekt, który chciałbym aby był takim przełomem w mojej pracy jako programista. Po pierwsze chciałbym przerzucić się na lepszy FW jakim byłby Laravel.
I tu już mam problem bo to FW, którego nie pobiera się na dysk i wrzuca na FTP.
1) W jaki sposób powinna odbywać się tak naprawdę praca nad dużym projektem przyjmując, że jest jeden programista i jedna osoba odpowiedzialna za frontend (/views).
2) Czy praca na localu jest normą w świecie programistów?
3) Jeżeli tak - to w jaki sposób pogodzić pracę kilku osób i w jaki sposób synchronizować ją? Czy PhpStorm pozwoli mi to jakoś zautomatyzować, czy muszę się uczyć komend systemu SVC?
4) Czym jest tak naprawdę konsola w FW? Wiem do czego służy ale pytam od środka? Skąd te komendy (instrukcje) się biorą? To program instalowany na Linux czy w plikach FW są jakieś skrypty bash czy inne?
5) Jakieś inne sugestie jak zorganizować pracę przy projekcie?