[Procek@Blog /]$ Programowanie Pliki INI czy rejestr?

Recenzje

PHP Module

lol
Pliki INI czy rejestr?
rejestr

Systemy z rodziny Windows wyposażone są w centralną bazę danych systemu, którą nazywamy rejestrem. Według założeń ma on przyspieszać pracę systemu, a także dawać programistom możliwość przechowywania ustawień programów. Bazy danych są lepszym sposobem przechowywania informacji (szybki dostęp, jedno miejsce) niż pliki i to przemawia za użyciem rejestru. Zapis i odczyt danych będzie szybszy, ale rozwiązanie to posiada szereg wad o których później...

Jak to wygląda u konkurencji

W każdym innym systemie (Linux, Symbian) ustawienia programów przechowywane są w plikach konfiguracyjnych co mimo swojej teoretycznej "powolności" jest bardzo uniwersalne i nie ingeruje bezpośrednio w system. Sama konfiguracja Linuksa opiera się na ukrytych plikach. Dzięki temu mamy bardziej konfigurowalny system oraz (co nie wydaje się oczywiste) pingwin jest bezpieczniejszy. Owe bezpieczeństwo i niezawodność polega na tym iż pliki konfiguracyjne to tak naprawdę normalne pliki tekstowe, które są od siebie niezależne.

Wady rejestru

Wady rejestru są odczuwalne przez programistów, ale też przez zwykłych użytkowników systemu. Stopień skomplikowania tego drzewka jest nie do przełknięcia. Przez to właśnie skomplikowanie trudno jest wyczyścić rejestr, a także pisać tak aplikacje, aby nie robiły zamieszania. Jakby tego było mało, to każdy kolejny system Windows ma inną strukturę tej plątaniny ustawień. Reprezentacja danych jest stosunkowo prosta: mamy coś w rodzaju położenia danego argumentu, sam argument i w końcu wartość jaką on przyjmuje. Tylko programistom z Redmond wydawało się słuszne, aby dawać możliwość zapisu danych w kilku typach. Jeden jedyny string wystarczyłby, ale trzeba było utrudnić wszystkim życie. Błędów rejestru samych w sobie mógłbym wymienić jeszcze kilka, ale żeby nie przynudzać przejdźmy do konsekwencji tych błędów.

I cannot understand registry...

Podział systemu na obszary: "dla wszystkich" i "konto" nie jest trafny w przypadku Windowsów, co gorsza, rejestr dzieli się również na takie obszary. Problem polega na tym, że w programach nie ma jednego stylu postępowania i połowa z nich zapisuje dane tylko dla danego konta, a połowa dla wszystkich. Rodzi to wiele problemów, a najprostszy z nich to niesamowity bałagan. Przenośność danego programu pomiędzy komputerami z zachowaniem ustawień jest niemożliwa, dzieje się to również przez to, że programiści z uporem chcą, aby ich DLLe trafiały do folderu Windows/system32 zamiast przechowywać je w folderze z aplikacją. Użycie rejestru dyskwalifikuje program w kategorii przenośnych. Niefrasobliwość koderów również nie ma granic i dzięki temu pojawiają się martwe wpisy w rejestrze. Napisanie kilkunastu linii kodu w deinstalatorze, które wyczyszczą rejestr z tego co zostało w nim zapisane przez dany program jest chyba za trudne dla większości firm. I tu pozwolę sobie zmieszać z błotem takie koncerny jak Adobe czy Electronic Arts... Zrobienie dodatkowej opcji "also delete registry keys" jest stanowczo za trudne. Ze mnie taki wielki programista jak z Gosi Andrzejewicz piosenkarka, ale zarabiając miliony na swoich produktach pomyślałbym nad szacunkiem do userów.

Pliki INI w akcji

W Windowsie też można pracować na plikach INI i moim zdaniem warto wybrać tą metodę, a nie śmiecić w rejestrze. Zapisanie danej w pliku i jej odczyt jest dużo prostsze niż robienie czegokolwiek z rejestrem bez względu na język programowania i konkretne przeznaczenie programu. Kolejny aspekt to wieloplatformowość. Jeżeli damy linuksiarzowi kod gdzie mamy dużo odwołań do rejestru i każemy mu przetłumaczyć ten program na swoją platformę to nie będzie on specjalnie zadowolony. Naturalnie programowanie pod konsolę jest stosunkowo podobne do siebie pod Linuksem czy Windowsem, ale już elementy programowania wizualnego nie są zbyt jednolite. Przedstawienie danych w rejestrze a w plikach INI nie jest podobne i dlatego należy być rozważnym w stosowaniu tego pierwszego.

Polecam użycie plików INI, bo dzięki nim program staje się "portable", rejestr jest względnie czysty, a koledzy linuksiarze zadowoleni.

Procek

 

Komentarze zostały czasowo wyłączone...