Сайты для сбора информации
База там была написана на Interbase (расширения FDB, GDB), а клиент – CGI из Borland C++. Про то, почему такая комбинация ниже.
База работает медленно. Очень медленно. Допускаю, что скорость зависит от объема. А объемы достаточно большие. Так вот, на таких объемах она работает раз в 10 медленнее чем SQL- server. А может и ещё медленнее. Пользователь задаёт естественный вопрос «а как сделать это быстрее?»
Программист по некоторым причинам не хочет менять инструмент. Он находит решение. Вместо добавления строк он прямо из программы добавляет колонки в таблицы.
Ни скажу, чтобы меня такое решение напугало. Скорее вызвало сомнения. Раньше основным хранилищем информации был файл с расширением DBF. Это – обычный текстовый файл, в который строка за строкой записаны строки таблицы. Если надо добавить колонку, специальная программа создаёт новый файл и копирует уже в него строку за строкой с учетом новой колонки. А как иначе? Потом старый файл удаляется, а только что созданный переименовывается. Естественно, никому бы и в голову не пришло добавлять колонки прямо из программы. Это, вообще-то, потенциально опасная операция.
Когда стандартом работы с базами стали SQL строки ощущение опасности, наверное, притупилось. Всё в базе делается SQL-командами. Так какая разница, что добавлять? Я бы так делать не стала, потому что привычно пытаюсь представить, как это всё внутри работает. А он сделал.
На этом начали работать. Базы начали рассыпаться до невосстановимого состояния. База это ведь тоже файл с каким-то форматом. Если там что-то некорректно записалось при каких-то неблагоприятных условиях, нарушается структура и пропадает возможность прочитать информацию. Это, видимо, и начало происходить.
Общая картина. Есть автор программы. А есть я – человек, который входит в процесс, когда всё уже сделано и всякую мелочёвку дорисовывает. И вот этот продукт начинает ломаться. Этак ведь и крайним стать можно в этой ситуации. Там ведь деньги наверное, заплачены за этот продукт. Я спешно катапультируюсь)).
Теперь про то почему такая комбинация. Программист это человек, который этим ремеслом зарабатывает деньги. Он, казалось бы, должен ориентироваться на клиента. Но есть люди, который ориентируются и на некие программистские моды. Автор – мой ровесник. Так что дело тут, скорее всего, было не в малом опыте. Дело в том, что сидит он в этой гнусной конторе и постоянно думает о том, куда бы из неё уйти. А подманивают его возможным трудоустройством при определенном наборе знаний. Именно поэтому он говорит про кроссплатформенность и навязывает уже пользователям определённый инструментарий. Про реальность перспектив трудоустройства не знаю, но реклама стабильно работает.
И парень этот крутится между этими воздействиями. С одной стороны пользователю что-то сказали про технологию AJAX, при которой страницы не перерисовываются полностью (меньше нагрузка на глаза). Он продолжает использовать Borland C++ но на главной странице пишет «AJAX powered». У него база не справляется с этим объемом, но он продолжает использовать её, исхитрившись с добавлением колонок (что в результате и приводит к такому финалу)
Упало всё из-за недопустимого технического решения, но проблема-то глубже. Проблема – навязываемый инструментарий и люди, который это делают по неким причинам.
Я вижу проблему и быстренько рисую альтернативный вариант. Отправляю его в Москву. Ни то чтобы я такой уж честный жулик. И ни то чтобы я надеюсь что-то изменить. Просто мне показалось интересным дать людям шанс. И в этой ситуации можно было вырулиться. Эта штука мне не очень понравилась))). Но пользователь ещё не такое пользует и считает нормальным. В любом случае это работало. Этим можно было заменить. И посадить в одну базу можно было все префектуры округа. SQL-евская база такое запросто выдерживает. Мне было интересно начальники там столь же принципиальные в выборе инструмента или нет (хотя итог был очевиден).
А если совсем просто то тут та самая «близость к телу»))). Мне было понятно, что у тех кто в Москве постоянно с убедительностью в любом случае будет лучше чем у меня. Но вот захотелось оформить переписку чтобы желающие изучить содержимое почтового ящика всё сами прочитали))).. Вот такая смешная история..
Что касается сайтов и новой технологии. Во-первых, технология годная, по моим ощущениям. Во-вторых, она требует более грамотного написания баз. «Грамотного», может, не то слово. Менее расхлябанного, что ли. Например в стандарте нет левых соединений (LEFT JOIN) таблиц, т.е нельзя прицепить к одной таблице все строки другой (не исключая строки, а которых не заполнено поле связи). Довольно часто поле действительно остаётся не заполненным (если по нему нет информации). Но ведь можно завести строку «не заполнено» и записывать в таблицу её значение. Тогда заполнено будет всё и можно будет использовать стандартный INNER JOIN. Такие шероховатости базы там обходить тоже можно, а вот это уже немного трудоёмко. В-третьих, никакой эксплуатации ещё не было, потому то. что пишу – знакомство с происходящим на локальной машине. В-четвёртых, там есть специальный отдельный инструментарий, позволяющий менять структуру базы. Менять структуру при работе в обычном режиме (т.е добавлять те же колонки) либо нельзя либо как-то сложно. Такое ощущение, что попытались заблокировать эту возможность. Такая штука наводит на мысль, что наблюдаемое изменение структуры из программы было не индивидуальным помешательством, а тоже своеобразной модой в какой-то программистской среде. А поскольку структуру иногда надо менять, сделали для этого отдельную штуку.
Теперь про опасный Интернет. Я уже писала, что я бы отключила машину c Интернетом от общей сети, т.е вообще, два раза в день делала бы резервное копирование и завела в базе фиксирование изменений информации. Тогда это можно использовать не опасаясь подхватить заразу, имея возможность всё быстро восстановить и отловить мелких пакостников если они заведутся (убрав результаты их активности). Копировать себе информацию с такой отдельной машины раз в день не сложно. Обычно такой актуальности вполне достаточно.
Добавлю, что я – не администратор. Они могут знать какие-то другие решения. Парень тут упомянул контору, в которой нет антивирусников, а просто все изменения по «белым спискам». Могу переврать термин, имеется в виду, что никакая программа ничего в настройках менять не может. Всё закрыто. Я просто в этом не слабо разбираюсь.
|