Skrypt jednorazowy a narzędzie stałe

Płonąca zapałka na czarnym tle

Większość kłopotów bierze się stąd, że skrypt napisany na jeden raz zostaje na lata i nikt nie dopisuje mu tego, czego brakuje.

Skrypt jednorazowy

Może mieć wpisane na sztywno ścieżki i wartości, może nie obsługiwać błędów. Jest uruchamiany raz, pod nadzorem autora, na znanych danych.

To nie jest zaniedbanie, tylko świadomy wybór. Autor patrzy na wynik, widzi komunikat i reaguje od razu. Nadzór człowieka zastępuje wszystko, czego w kodzie nie ma. Problem zaczyna się w chwili, gdy nadzór znika, a skrypt zostaje.

Narzędzie stałe

Uruchamiane bez człowieka, na danych, których nikt wcześniej nie widział. Wymaga obsługi błędów, dziennika, konfiguracji i opisu.

Zmienia się też pytanie, na które musi odpowiadać. Skrypt jednorazowy ma zrobić zadanie. Narzędzie stałe ma dodatkowo powiedzieć, czy je zrobiło — i zatrzymać się, gdy dane wyglądają inaczej niż zwykle, zamiast wykonać połowę pracy.

Inaczej wygląda też otoczenie. Narzędzie stałe trafia na plik, którego jeszcze nie ma, na bazę w trakcie kopii, na zajęty zasób sieciowy. Każda z tych sytuacji jest normalna i musi być przewidziana, bo nikt nie siedzi obok, żeby uruchomić rzecz ponownie.

Moment przejścia

Zwykle drugie uruchomienie. Jeśli skrypt jest potrzebny po raz drugi, będzie potrzebny po raz dziesiąty — i wtedy warto go dokończyć.

Sygnałów jest więcej: uruchamia go ktoś inny niż autor, wynik trafia do osoby spoza działu, a operacja dotyczy danych produkcyjnych. Każdy z nich osobno wystarcza, żeby uznać narzędzie za stałe, niezależnie od tego, jak było pomyślane.

Co dopisać przy przejściu

  • wartości wyniesione do konfiguracji,
  • obsługa błędów i wyjście z kodem stanu,
  • zapis do dziennika,
  • tryb próbny bez zapisu,
  • krótki opis w nagłówku,
  • blokada uruchomienia równoległego, jeśli skrypt wchodzi do harmonogramu.

Dochodzi jeszcze kwestia dostępów. Kod jednorazowy często ma wpisane hasło, bo miał zniknąć tego samego dnia. Przy narzędziu stałym dane dostępowe muszą wyjść poza kod — reszta zasad jest w tekście o bezpieczeństwie skryptów administracyjnych.

Katalog jednorazowych

Warto trzymać je osobno od narzędzi stałych. Inaczej po roku nikt nie wie, które można usunąć.

Prosta reguła: pliki jednorazowe mają w nazwie datę i są usuwane po zakończeniu sprawy. Jeśli któryś przetrwa kilka miesięcy, to znaczy, że nie był jednorazowy, i trzeba go przenieść do narzędzi stałych razem z całą brakującą obudową.

Rozdzielenie katalogów ma jeszcze jeden skutek. Przy przeglądzie widać od razu, ile narzędzi firma naprawdę utrzymuje, a ile leży jako pozostałość po zamkniętych sprawach.

Skrypt bez autora

Narzędzie działające latami, którego nikt nie rozumie, jest zagrożeniem. Opis w nagłówku pliku kosztuje pięć minut i rozwiązuje ten problem.

Najgorszy wariant to skrypt, który działa poprawnie i o którym wszyscy zapomnieli. Nikt go nie rusza, bo nikt nie wie, co się stanie. Przy zmianie struktury bazy albo formatu pliku takie narzędzie psuje się po cichu. Pełną drogę od pomysłu do stabilnego działania opisuje tekst o wdrożeniu skryptu krok po kroku.