Муторная работа над багами и невозможность достижения идеала
Сегодняшний день, пожалуй, преподал мне урок смирения. Я понял, что невозможно или практически невозможно достичь в чем-то идеала. К этому идеалу можно стремится, можно приближаться, но достичь его, как ни печально, не получится. Таков уж наш несовершенный мир. Не может быть всё идеально. Ну вот у меня не получается сделать всё до конца идеально. После долгих попыток довести всё до лоска, приходится признавать, что что-то не получиться, как ни бейся головой об стену, и оставлять некоторые "косяки" после многочасовых потуг, потому что никак не получается их поправить.
Вот сегодня половину дня или даже больше и потратил снова на исправление багов и недоработок, которые, как говориться, пёрли как из рога изобилия. Один баг за другим, я не знал, за что хвататься.
Ну, пожалуй, начнём с тех багов, которые я вчера ещё планировал исправить. Это запись состояния базы данных и восстановление этого состояния. Назовём это рекординг. Сегодня целых четыре битых часа я занимался тем, чтобы наладить эту функцию. Очень долго пришлось искать алгоритм, который позволит корректно устанавливать активность и неактивность команд для отката и перезаписи состояния базы данных после её изменения. Очень долго пришлось возиться с правильной настройкой индекса для восстановления состояния базы данных. Но в итоге, когда я пришёл к правильному алгоритму, то было ясно, что сделать его идеальным не получиться. Или для этого нужно будет потратить ещё один день работы. Вот так. Рекординг работает, но с небольшим огрехом на количество производимых откатов и возвратов изменений.
Ну а потом начались баги уже незапланированные, или "сюрпризные". Там было много всего, и не упомнишь. Но примечателен был баг в контроле-спойлере. Спойлеры эти вы можете видеть на сетке свойств. Я до сих пор и не пробовал сворачивать и разворачивать эти спойлеры. Только сегодня шестое чувство подсказало мне это сделать. Вообще, у меня возникло какое-то шестое чувство, которое мне подсказывает, где может быть баг в программе, что и где нужно проверить. Ну вот я и проверял и то и дело наскакивал на баг. Ну, конечно, я эти баги поправил. Но кто его знает, сколько ещё в программе пропущено багов.
Вот, например, этот нелепый баг со спойлером. Он сворачивался, но не разворачивался! Как я мог это упустить, когда работал над этим контролом? Не понимаю. Ведь тогда же это наверняка работало, а теперь вдруг перестало. Как же так? Как же я это не люблю! Когда что-то раньше работало и вдруг по каким-то непонятным причинам перестаёт работать! Это самые злостные сюрпризы!
Ну ещё сегодня я сделал один, как я полагаю, нужный контрол, который должен в дальнейшем немного упростить мне работу. Это контрол со списками таблиц и столбцов выбранной таблице. Такие пары я часто использовал в диалоговых окнах создания объектов базы данных. Там приходилось для этого много чего "городить", но этот контрол должен будет упростить вёрстку диалогов для создания объектов БД. Но над ним тоже пришлось очень попотеть! Очень долго у меня с ним не получалось. Но потом более-менее сделал как хотел. Ну за исключением одной маленькой детали. Но это пустяк. Главное, в целом он работает.
Ну да ладно. Понедельник. Он был по-настоящему тяжёлым. Очень пришлось попотеть. Но время не стоит на месте и день уже заканчивается. Так что буду закругляться на сегодня. Завтра я начинаю новое дело - создание таблиц базы данных. Так что до новых постов и до новых свершений.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.