szopen <szop@en.szop> napisał(a):
Thx, i mam jasność. Tak czy owak nie powinno być tak, że błąd jakiegoś
dewelopera uwala ćwierć zachodniego świata, coś jest nie tak w tej
układance.
Racja, ale nie ma na to rady. Co prawda można narzucić bardziej
rygorystyczne testowanie*, ale nie zmienia to faktu, że główną przyczyną
jest centralizacja, monopolizacja i reużycie kodu
(https://en.wikipedia.org/wiki/Code_reuse). Centralizacji i monopolizacji
chyba nie trzeba szerzej omawiać. Dodam tylko, że te zjawiska mają swoje
plusy i konkretne powody, przez co nie można ich zwyczajnie zakazać.
Wystarczy spróbować wyobrazić sobie sytuację, w której czy na desktopach czy
w smartfonach konkuruje 20 systemów operacyjnych i mają one mniej więcej
równy udział w rynku. Wtedy dopiero tworzenie aplikacji na 20 systemów
byłoby koszmarem, niemówiąc o testowaniu.
Natomiast co do reużycia kodu, to naturalne jest, że programista nie
wynajduje koła na nowo i korzysta z tego, co już napisano. Np. z językiem
programowania dostajemy zestaw bibliotek lub też cały framework. Mamy też
różne biblioteki dostępne w Internecie. Są także repozytoria pakietów z
bibliotekami. Powoduje to, że z jakiegoś kawałka kodu korzystają tysiące czy
miliony programów. To jeszcze nie jest takie złe, jest to mega oszczędność
czasu i pieniędzy. Natomiast robi się poważniej gdy te biblioteki są
aktualizowane automatycznie przez Internet. Kilka lat temu jeden facet na
skutek pewnej kłótni strzelił focha i skasował z repozytorium swój pakiet
dla aplikacji pisanych w Nodej.js. Pakiet używany przez mnóstwo aplikacji,
które na skutek tego się wysypały. Była z tego niezła afera
https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code
Inny przykład to strefy czasowe. Państw na świecie jest dużo i co jakiś czas
któreś z nich coś majstruje przy swojej strefie czasowej. A to sobie dodadzą
czas letni, a to skasują, a to wprowadzą nową strefę w jakiejś prowincji,
lub też np. zostanie zawarte porozumienie kilku państw, co do ujednolicenia
dat przechodzenia na czas letni/zimowy. Trzeba to wszystko jakoś śledzić
żeby aplikacje miały aktualne dane o strefach i odpowiednio przeliczały
czas. Można by pomyśleć, że twórcy każdego systemu operacyjnego, każdego
języka programowania itd robią to na własną rękę. Okazuje się, że nie. Jest
baza tz database (https://en.wikipedia.org/wiki/Tz_database), którą
utrzymuje od lat jeden facet, a korzystają z niej praktycznie wszyscy. Tutaj
co prawda nie było żadnej wpadki, ale widać skupienie odpowiedzialności na
pojedynczej osobie.
Dlatego jest jak jest, i prędko się to nie zmieni.
*można wymagać od dostawcy oprogramowania nie tylko określonej metody
testowania, ale ogólnie wytwarzania oprogramowania według konkretnych zasad.
Takim przykładem zasad jest norma ISO 9001:2015. Czasem można spotkać, np. w
przetargach, wymóg posiadania przez firmę certyfikatu potwierdzającego, że
ta norma została wprowadzona do procesu wytwarzania oprogramowania.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
|