Flat |
Отправлено: 8 июля 2018 — 11:18 • Тема: Доработки и исправления в ExBB • Форум: Обсуждаем |
Ответов: 79 Просмотров: 3
|
Добавлю. Это я сделаю сам, тут делов на пол часа.
Сейчас курю тему "Перспективы дальнейшего развития". Там yura3d сказал такую фразу: "Перспективы файловой версии - раз и навсегда кануть в лету. Это случится рано или поздно, более того, это уже сейчас происходит. "
Он там усиленно продавливал тему изменения базы данных с файлов последовательного доступа к файлам прямого доступа, как в СУБД. И говорил, что это раз в 50 ускоряет работу форума.
Я согласен с ним, что ускоряет, тем более, что сам написал и тестировал функцию бинарного поиска по файловой базе прямого доступа, и скорость оказалась просто КОСМИЧЕСКОЙ)). А ведь можно сделать и прямую выборку.. Но всё это сильно усложнит двиг форума.
Но я не согласен, с yura3d в том, что исчерпан потенциал данного движка.
Не исчерпан. Просто не там искали..
Например: зачем качать всю тему целиком, если мы выводим всего например два десятка сообщений? Это имеет смысл делать если мы осуществляем поиск по теме. А в обычном случае этого не требуется. И если тема разрастётся, то скорость форума упадёт. Хотя, я тестил: 4 мегабайтная тема грузится у меня за 0,2 сек.
Например: мы можем делить тему на несколько отдельных файлов, тогда загрузка страниц будет линейной константой..
Можно упростить форум сделав его с постоянным числом сообщений на страницу, зато скорость будет приличной.
Конечно можно оставить и в этом случае выбор за пользователем, хотя логика работы форума несколько усложнится.
Малое количество сообщений на страницу тоже плохо, так как пользователь всё равно просматривает предыдущие страницы если тема имеет большой процент новых сообщений. Тогда можно сделать 50 сообщений на страницу либо константой либо оставить выбор пользователям. Или сделать например по 100 сообщений на файл, тогда, к тому же, нагрузка на сервер уменьшится и количество файлов будет приемлемым.
Как считаете? Для меня важно мнение простых и не простых пользователей. |
Flat |
Отправлено: 8 июля 2018 — 10:03 • Тема: Доработки и исправления в ExBB • Форум: Обсуждаем |
Ответов: 79 Просмотров: 3
|
На мой взгляд, самое главное, что надо сделать в первую очередь, это изменить способ сохранения массивов в файл. В движке это делается путём обнуления существующего файла, а затем записи в него новой информации. Это потенциально опасная операция, ибо если на сервере произойдёт сбой, например по причине отключения электроэнергии, то пропадёт ВСЯ тема с сообщениями. Мы же качаем её всю в ОЗУ. Выручит только существующий бэкап форума если таковой имеется у админа.
Правильней сделать примерно так: создаём временный файл; сохраняем туда наш массив; проверяем произошла ли запись правильно и не является ли файл пустым; если всё в порядке удаляем старый файл и переименовываем временный файл в старый. |
Flat |
Отправлено: 7 июля 2018 — 11:33 • Тема: Чего не хватает в ExBB? • Форум: Обсуждаем |
Ответов: 48 Просмотров: 2
|
WebMaster пишет:Когда-то существовала идея создать в ядре движка отдельный уровень, который будет отвечать за работу с базой данных, и вместо прямой работы с файлами использовать его.
С использованием синтаксиса SQL? На гитхабе лежит несколько библиотек, которые используют базу данных на файлах, а доступ к ней осуществляется через язык запросов SQL. То есть основной код общается с базой через отдельный язык. Однако использование подобной прослойки приводит к потенциальным проблемам, которым подвержены все движки использующие этот язык, а именно к SQL иньекциям. Чисто файловая база не нуждается в особом универсальном языке, а только в специализированных функциях, которые отделяют пользовательский код от прикладного.
WebMaster пишет:Такой подход позволил бы при необходимости довольно легко поменять формат базы данных на другой, не меняя при этом больших объёмов кода.
Вообще так должно быть. Каждый отдельный модуль отвечает конкретно за что-то одно. Модуль базы данных за работу с базой. Только не нужно использовать SQL синтаксис. Пусть хотя бы один форум не будет иметь потенциальных уязвимостей подобного рода. Пусть с этим мучаются другие движки. Мы должны идти своим особым путём не оглядываясь на других. Язык запросов должен быть чисто специализированным и заточенным на конкретную базу данных. То есть только наша база должна его понимать. Тогда это будет безопасно.
WebMaster пишет:Было бы очень здорово, если бы Вы присоединились к разработке.
Я уже присоединился. Пока копаю код, и буду копать пока не пойму полностью его работу в целом. Иначе никак.
WebMaster пишет:Однако, как показала практика, это направление оказалось невостребованным.
Конечно. Ведь существует стопитцот движков с такими базами. Зачем создавать ещё один стопитцотпервый, если exbb имеет свою особую нишу, которую не должен терять.
Файловых движков - раз два и обчёлся. Я знаю несколько: за рубежом медленный YABB и то на Perl, у нас ужасно глючный WR, ну и exbb. Есть много других движков тоже файловых, но это только детские поделки и недоделки, форумами их назвать трудно, типа RonForum и другие.
А хороший файловый движок иметь хочется многим. Причём он должен быть простым в использовании и обслуживании прежде всего для админов. Поэтому никаких наворотов, никакой показухи типа какой я крутой программер вот посмотрите. Всё должно быть просто и надёжно. |
Flat |
Отправлено: 6 июля 2018 — 09:52 • Тема: Чего не хватает в ExBB? • Форум: Обсуждаем |
Ответов: 48 Просмотров: 2
|
Yamaliya пишет:Частично документация есть.
Спасибо большое, Yamaliya! Уже что-то! Я новичок, так что не знаком с тем, что происходило раньше. Там практически описана вся база, так что в документации теперь мало смысла. Желательно собрать те сообщения все вместе и выложить одним текстовым файлом в текущий дистрибутив, для общей, так сказать, пользы.
Хотел писать свой форумный движок, и уж приступил к этому занятию, однако понял, что мне одному писать придётся не один год, поэтому оставил эту затею, хотя идей куча, и интересных. Но время, время и смысл терять это время, когда есть готовый форум, который, к тому же не плохо работает, что доказано несколькими проектами на нём.
Решил переделать этот движок, естественно с сохранением копирайта, ссылок на данный ресурс и своим собственным вкладом, естественно. База будет сделана более читабельной, как и некоторые другие доработки и наработки.. |
Flat |
Отправлено: 5 июля 2018 — 17:32 • Тема: Чего не хватает в ExBB? • Форум: Обсуждаем |
Ответов: 48 Просмотров: 2
|
WebMaster пишет:Сериализация - встроенный в PHP, довольно удобный механизм, который позволяет быстро сохранять и загружать различные структуры данных.
Я понимаю. Она позволяет довольно быстро превратить в массив строковый файл и обратно. Однако минус в том, что в файле базы приходится держать много лишнего мусора, который, кстати, повторяется. То есть улетает в песок много дискового пространства и это факт. Ещё минус в нечитаемости подобной базы. Я то "наблатыкался" и могу читать всё что угодно, но как другим быть, просто не представляю..
WebMaster пишет:Можно было бы придумать какой-то собственный формат базы данных и механизм для работы с ним, но особой необходимости в этом не было, так как править данные в файлах вручную приходится редко.
Понятно."Так уж повелось", а потом и осталось. Но иногда всё же необходимо заглядывать в базу и ремонтировать или править вручную..
WebMaster пишет:Если будет вестись какая-то доработка, то такая информация появится. Можете даже подключиться к составлению документации.
Мне форум нравится, если честно, иначе бы меня здесь не было, а ставил я много чего и тестировал тоже. Сейчас усиленно вьезжаю в код, мне всё понятно там. Ещё не дочитал до конца. Есть некоторые шероховатости, но не принципиально. Лично мне нужен форум именно такого толка, хочу сделать под себя. Если получится мод выложу в общий доступ. Документацию что где лежит попробую писать по ходу ознакомления с кодом. Форум должен развиваться далее, но не отклоняясь от своей главной линии: быть файловым.
WebMaster пишет:В какой ситуации появилась необходимость разбираться с форматом хранения данных?
Выше всё написал. Ну не нравится мне вот эта сериализация и всё тут. |
Flat |
Отправлено: 5 июля 2018 — 13:57 • Тема: Чего не хватает в ExBB? • Форум: Обсуждаем |
Ответов: 48 Просмотров: 2
|
Не хватает, на мой взгляд, простой и человечески-читаемой базы данных. Та что имеется построена на сериализации-десериализации строк. Однако до сих пор не понятно зачем это было нужно?
Также не хватает подробной документации на тему: что в каком файле базы данных и на каком месте лежит. Одним словом, какие поля на что указывают. Это зело помогло бы пользователям, которые хотят быстро войти в суть дела. А то приходится долго копать код и терять время. |
|