Programiści tworzą skrypty, które pomagają w ich pracy. Na przykład, aby uruchomić Maven z określonymi parametrami, zabić niepotrzebne zadania w tle, które pojawiają się w fazie rozwoju lub połączyć się z określonym serwerem. Skrypty nie są skryptami kompilacji rdzenia ani nie są używane na naszym serwerze Continuous Integration.
Jaki jest najlepszy sposób na zarządzanie nimi? Umieścić je w katalogu (być może /scripts
) i sprawdzić w Git? Aby zachować je osobno na niektórych serwerach plików?
Argument za traktowaniem ich jako kodu źródłowego polega na tym, że są one źródłowe i mogą ulec zmianie. Argumentem za tym, aby tego nie robić, jest to, że są to tylko narzędzia pomocnicze i że nie wszyscy programiści potrzebują danego skryptu (np. Skrypty specyficzne dla systemu Linux, w których niektórzy programiści pracują w systemie Windows).
źródło
Odpowiedzi:
Skrypty deweloperów przechodzą także do kontroli wersji, ponieważ zwykle skrypty te zależą również od elementów kontroli wersji, np. Ścieżek plików.
Jeśli te skrypty są wersjonowane, powinny również działać dla wszystkich programistów, aby uniknąć sytuacji, w której każdy programista pisze swój własny zestaw skryptów, co staje się piekłem konserwacyjnym.
Ponadto poprawki lub ulepszenia tych skryptów są automatycznie wdrażane dla każdego programisty poprzez kontrolę wersji.
źródło
Oprócz odpowiedzi @ simon.
Nie wszystko w inżynierii oprogramowania dotyczy programowania, projektowania lub modelowania. Istnieje niezliczona ilość zadań, które wykonujemy nieprzerwanie w ciągu dnia roboczego. Wspomniałeś już o jednym - budowaniu projektu poza IDE - ale jest wiele innych.
Doświadczeni / proaktywni programiści zwykle automatyzują te zadania. Niektóre nawet budują narzędzia, gdy zadania te stają się częścią SDLC i są nużące - i podatne na błędy - wykonywane ręcznie. Programy są dobre w wykonywaniu powtarzalnych prac, bez względu na to, jak są nużące. My - ludzie - nie jesteśmy tacy dobrzy.
Te narzędzia / skrypty mają inne pozytywne skutki uboczne
Tak, tak, skrypty powinny znajdować się w SCM i powinny być jeszcze jednym narzędziem w przyborniku programisty.
Jeśli chodzi o folder
/scripts
, powiedziałbym, że to nie ma znaczenia. Dla uproszczenia zostawiam je w katalogu głównym projektu, aby wszystkie trasy zadeklarowane w skryptach były względne względem folderu projektu. Jeśli potrzebuję dostępu do zewnętrznych folderów lub plików, tworzę miękkie linki .Rzeczy do rozważenia przed sprawdzeniem skryptów w SCM.
Dla bezpieczeństwa upewnij się, że skrypty nie mają zakodowanych na stałe danych uwierzytelniających - najlepiej skrypty powinny być dobrze sparametryzowane -
Upewnij się, że skrypty nie robią dziwnych rzeczy w systemie, na przykład do wykonywania poleceń, których nie można cofnąć (najbardziej typowe
rm -rf
).Ponieważ stały się one częścią źródła projektu, dokumentacja jest bardzo ceniona.
Skrypty nie są nauką rakietową. Spraw, by skrypty były zwięzłe. Zamiast jednego rządzić nimi wszystkimi ... iw ciemności związać ich , uczynić więcej, mniejszymi i zwięzłymi. Jak gdybyś stosował SRP.
źródło
Mam zamiar zaoferować nieco bardziej negatywną opinię. Z jednej strony skrypty programistów, które są ogólne, skuteczne i przydatne, powinny oczywiście być udostępniane innym programistom, a najlepszym sposobem na to jest umieszczenie ich z kodem w tym samym repozytorium.
Ustawiłbym jednak wysoki próg wejścia do zatwierdzania skryptów. Skrypty są kodem, podobnie jak samo oprogramowanie. Oznacza to, że muszą być traktowane podobnie jak inne fragmenty kodu:
Istnieje wiele innych kwestii, które dotyczą bardziej skryptów niż samego oprogramowania:
Podsumowując, skrypty mogą być bardzo pomocne dla poszczególnych programistów, ale udostępnianie ich jako część samej bazy kodu może być znacznie trudniejszym zadaniem i może potencjalnie powodować więcej problemów niż rozwiązanych.
źródło