Cześć. Aktualnie projekt, w którym pracuję, rozrósł się na tyle, że odpalanie go trwa dobre 4~ minuty na szybkim komputerze/laptopie. Konieczne jest uruchomienie Cosmos Db Emulator, następnie Blob Storage emulator, w dalszej kolejności API i dwie aplikacje UI, które z tego API korzystają. W praktyce wygląda to tak: odpalony jest 2x Visual Studio Code (Angular 6), do tego Visual Studio (C# 7.0/.NET Core 2.0) ze zbudowaną i uruchomioną aplikacją (plus wspomniane emulatory, do tego SQL Server, który już uruchamia się automatycznie).
Już sama tak znaczna ilość odpalonych programów pożera ogromną ilość zasobów, a co dopiero, jak w grę zaczyna wchodzić w Chrome i ciągły podgląd efektów programowania. Mam następujące pytania:
-
Jak w najlepszy/najprostszy sposób uprościć uruchamianie wszystkich tych aplikacji? Myślałem o Dockerze, ewentualnie napisanie skryptu .bat, który po kolei uruchamia wszystko z konsoli windowsowej. Nie mam tutaj doświadczenia, więc tak sobie 'gdybam'. Prosiłbym o konkrety.
-
Czy wykorzystanie rozwiązania przedstawionego wyżej umożliwiałoby skuteczne przełączanie branchy, implementację na poziomie UI z wykorzystaniem HMR? Póki co, mimo masy odpalonych programów, sprawa z gitem jest bardzo przejrzysta - zmiana brancha powoduje ponowną kompilację dwóch aplikacji UI, następnie ponownie odpalam API.
W idealnym przypadku odpalałbym sobie ten projekt, w którym aktualnie chcę wykonywać zmiany - czy to API, czy któryś z UI, a wszystkie pozostałe byłyby cały czas dostępne na porcie. Już to bardzo ograniczałoby wykorzystanie zasobów (np. brak konieczności odpalonego code'a). Następnie po zapisaniu zmian mój skrypt/program automatycznie wykrywałby je i budował aplikację na nowo. Wówczas pozostałoby odpalić Chrome i sprawdzić efekty. Odpadałaby też kolejna uciążliwa rzecz - konieczność trzymania ciągle otwartej karty z Chrome z API, której zamknięcie powoduje przerwanie jej działania (trzeba go włączać w VS na nowo). Bardzo prosiłbym o nakierowanie na jakieś konkretne rozwiązanie.