| Termin | Definicja |
|---|---|
| niewłaściwa obsługa pól wielowartościowych | Niewłaściwa obsługa pól wielowartościowych to nadpisywanie całej listy zamiast dodania pojedynczej wartości. Na czym polega nadpisanie pola wielowartościowegoNiewłaściwa obsługa pola wielowartościowego występuje wtedy, gdy program przechowuje kilka wartości w jednym atrybucie, ale podczas kolejnej operacji zastępuje całą dotychczasową kolekcję jednym nowym elementem. Przykładem może być lista adresów e-mail, numerów telefonów, tagów, uprawnień albo rozszerzeń pliku przypisanych do jednego rekordu. Jeżeli rekord zawiera wartości „serwis”, „laptop” i „Warszawa”, a formularz dopisuje „diagnostyka” przez zwykłe przypisanie nowej wartości, po zapisie pozostanie wyłącznie „diagnostyka”. Nie jest to dodanie elementu, lecz operacja zastąpienia całego zbioru. W programowaniu różnica wynika z rodzaju wykonywanej operacji. Instrukcja przypisania, taka jak ustawienie zmiennej na nową tablicę lub listę, usuwa dostęp do poprzedniej zawartości. Operacja dodawania elementu, na przykład metoda Objawy błędnego przepływu wartościSkutki nadpisywania pól wielowartościowych są widoczne przede wszystkim po ponownym otwarciu rekordu. Użytkownik zaznacza kilka elementów, zapisuje formularz, a następnie widzi tylko jeden element albo ostatnią wartość z przesłanego żądania. W innych przypadkach lista wygląda poprawnie w interfejsie, ale po odświeżeniu strony, ponownym uruchomieniu programu lub odczycie danych przez inną funkcję brakuje wcześniejszych wpisów. Charakterystyczny jest też zanik danych po kolejnych edycjach: każda aktualizacja zachowuje tylko wartości przekazane w ostatnim żądaniu. Problem może wpływać na wyszukiwanie, filtrowanie, sortowanie i eksport danych. Jeśli aplikacja traktuje listę tagów jako jeden tekst rozdzielony przecinkami, wyszukiwanie konkretnego tagu może zwracać niepełne wyniki, zwłaszcza gdy wartości zawierają spacje lub przecinki. Przy imporcie i eksporcie do formatu JSON pole wielowartościowe powinno zachować typ tablicy, na przykład Poprawny zapis i aktualizacja listyBezpieczna aktualizacja wymaga najpierw jednoznacznego określenia, czy operacja ma zastąpić całą listę, czy dodać pojedynczą wartość. Zastąpienie jest prawidłowe, gdy użytkownik zapisuje kompletny stan pola, na przykład po odznaczeniu części tagów. Dodanie powinno natomiast odczytać istniejącą kolekcję, sprawdzić, czy nowy element już się w niej znajduje, a następnie dopisać go bez usuwania pozostałych wartości. Usunięcie pojedynczego elementu powinno działać odwrotnie: utworzyć nowy stan bez wskazanej wartości, pozostawiając resztę listy bez zmian. Ważne jest zachowanie tego samego modelu danych we wszystkich warstwach programu. Formularz powinien przekazywać wiele zaznaczeń jako kolekcję, logika aplikacji powinna odbierać kolekcję, a warstwa zapisu nie może samoczynnie redukować jej do pojedynczego pola tekstowego. Przed zapisem warto sprawdzić typ danych, liczbę elementów, puste wartości oraz powtórzenia. Jeżeli kolejność ma znaczenie, nie należy używać struktury, która jej nie zachowuje. Jeżeli kolejność nie ma znaczenia, można usuwać duplikaty, ale trzeba robić to świadomie, a nie jako uboczny skutek konwersji do innego typu. Test powinien obejmować co najmniej pustą listę, jeden element, kilka elementów, dodanie do istniejącej listy, usunięcie jednego elementu i dwie równoczesne aktualizacje tego samego rekordu. Sprawdzenie problemu w komputerze użytkownikaPodczas pracy na laptopie lub komputerze PC warto odtworzyć błąd na prostym, testowym rekordzie, aby nie zmieniać przypadkowych danych. Należy zapisać kolejno kilka wartości, zamknąć formularz, uruchomić aplikację ponownie i sprawdzić, czy lista została odczytana w całości. Jeżeli problem pojawia się tylko w jednym programie, trzeba porównać jego wersję, ustawienia formularza oraz sposób importu danych. Pomocne bywa również sprawdzenie, czy klawisz Ctrl albo inne skróty używane przy wielokrotnym wyborze działają prawidłowo, ponieważ interfejs może przekazywać do programu tylko ostatnio wybraną pozycję. Jeśli dane są przechowywane lokalnie, diagnostyka powinna obejmować plik konfiguracyjny, bazę aplikacji lub katalog profilu użytkownika, ale bez ręcznego kasowania plików przed wykonaniem kopii zapasowej. Warto ustalić, czy utrata wartości następuje przed zapisem, podczas zapisu, czy dopiero przy odczycie. Inny objaw występuje, gdy formularz wysyła niepełną tablicę, a inny, gdy program poprawnie otrzymuje wszystkie elementy, lecz zapisuje tylko jeden. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich oprogramowania, więc może sprawdzić działanie aplikacji, poprawność konfiguracji oraz powtarzalność błędu bez pochopnego usuwania danych. |