ExBB Community » Разное » О жизни » Размышлизмы о движке

Страниц (5): « 1 2 3 4 [5]
 

61. Sigurni - 12 декабря 2018 — 10:40 - перейти к сообщению
Flat пишет:
Не нужно.

Нужно. Если вы читаете файл и намереваетесь внести в него изменения на основе прочитанных данных, вам нужно быть уверенным, что другие процессы в этот момент не прочитают устаревшие данные. В этот момент вы должны читать именно с исключительной блокировкой, что и сделано в ExBB. Обратите внимание, что сейчас в ядре форума присутствуют 2 метода чтения: _Read() и _Read2Write(), и какая блокировка используется в каждом из них.

Flat пишет:

Вот вы утверждаете, что:

Flat пишет:
из детских штанишек уже вырос

но при этом кидаете ссылки на сайты в стиле "файловый архив студентов" вместо официального мануала. Что-то, по итогу, в утверждение о детских штанишках слабо верится...

Flat пишет:
Дык я об этом с самого начала писал: http://exbb.info/community/topic...13312#1531213312
Вопрос только в том, зачем это надо было делать?

Отвечу вам вашей же фразой:

Flat пишет:
Это уж не вам решать.


Flat пишет:
Флаг в руки: переходите на дб. Таких движков куча. Что же вы делаете здесь на форуме, который посвящён исключительно файловой версии? Многим, очень многим работа с дб просто не нужная головная боль, поэтому и применяют простые файловые движки, неужели не понятно?

А с чего вы это взяли? Работать с базами данных в чём-то даже удобнее, чем с файлами. Возьмите тот же phpMyAdmin. Работать с его графическим интерфейсом (где уже встроены инструменты для фильтрации и сортировки данных, где данные отображаются в виде наглядных таблиц, где создание резервных копий и восстановление из них доведены да автоматизма) будет уж точно лучше, чем колупаться в ваших файлах в текстовом редакторе, отыскивая разделители полей (ваши палочки - |) и подсчитывая по индексу, что означает то или иное поле. Другое дело БД, где все поля подписаны.

Flat пишет:
Сюда однако заходят не 4 человека, а десятки посетителей за день, посмотрите статистику. И многие форумы на этом движке до сих пор живут и здравствуют.

4 человека, залётные гости и поисковые боты. Большинство форумов ExBB в Интернете заброшены и, либо ещё сами кое-как поддерживаются силами пользователей, либо уже сконвертировались на другие движки. Я знаю от силы штук 10 форумов на ExBB, которые состоялись (собрали более 10к сообщений), остались на ExBB и при этом на которых продолжают общаться люди. Остальное - полумёртвые и мёртвые висяки типа http://tvoyweb.ru/forums и т.п.

Flat пишет:
И мне лично движок с базой не нужен, хотя я как программист-любитель и понимаю язык запросов и мне не сложно будет например перевести с одного хостинга на другой, чай, из детских штанишек уже вырос. Но вот как другим быть, которые не знают язык mysql? А таких много, а я знаю случаи, когда даже опытные в этом деле товарищи, которые держат свои форумы на mysql теряли половину своих данных из-за элементарных ошибок при конвертации и т.п вещей.. Мне такой геморр не нужен. А если вам нужен повторяю: флаг в руки переходите на phpbb или другой подобный движок.

Если бы вам нужен был форум, вы бы давно уже поставили его. Но вам нужен гемор видимо на самом деле, а не форум. И когда вообще для переноса базы данных нужно было знать язык SQL? Да на том же YouTube достаточно мануалов по переносу базы через phpMyAdmin за 4 клика!
Про потерю данных: не знаю ни одного случая, когда именно MySQL становился причиной потери. Относительно новое журналируемое хранилище InnoDB обеспечивает сохранность не хуже, чем те же файлы. Ну а если проблема будет в потере питания или повреждении накопителя, тот тут уж вам ничто не поможет, кроме резервных копий.
Но даже тут у MySQL преимущество. Если какая-то запись в момент пропадания питания не до конца допишется в файл, MySQL сможет автоматически либо восстановить запись из журнала, либо (если в журнале запись не сохранилась) откатить изменения. При этом база приводится в целостное рабочее состояние. С вашими же файлами, если питание пропадёт аккурат на работе fwrite (например), то файл окажется битым, и пока пользователь вручную не исправит его, нормальная работы с ним будет невозможна.

Flat пишет:
Во первых, для работы с sqlite нужно работать через ООП-обёртки, так как sqlite-3 не поддерживается в процедурном стиле. Или через PDO драйвер, что тоже самое по сути. Но это так, инфо к размышлению. Просто дискриминировали процедурщиков.

Дискриминировали устаревших динозавров. PHP разрабатывают сотни человек, целое сообщество не самых глупых людей. В отличие от... И наверное есть причина, почему так сделали.

Flat пишет:
Во-вторых, опять же в таком случае нужно создавать новый движок с нуля. Вопрос времени. В одиночку это сделать нужно минимум 2 года. У меня их нет.

Вы уже полгода, с мая месяца, тут мусолите сообщения, а на выходе у вас получается не лучше, чем уже было здесь 10 лет назад в ExBB. Может с вашей точки зрения названия у функций в вашем варианте красивее, и данные по файлам тоже лежат красивее, но людям всё равно. Открою вам секрет: обычные пользователи в файлы вообще не заглядывают. Они смотрят на функционал и оформление конечного продукта.

Flat пишет:
Если делать свою реализацию, файлы с дб будут ещё нечитаемей чем нынешнии сериализированные, причём малейшее изменение файла может угробить всю базу. Поэтому файловая система намного надёжнее.
Даже в платных навороченных движках базы начинают сыпаться при определённом числе записей. Возможно что это баги в самом mysql, очём много писано. Даже в вобле форумы глючат не по детски. И зачем мне это нужно?

На вобле говорите? Бедный http://imho.ws, работает уже 15 лет и не парится, а вы тут страхи рассказываете...

Flat пишет:
Я сейчас беру последнюю безоопную версию, и начинаю править код под то представление о нём, которое есть у меня. Старая ветка будет продолжена!
Ждите новую версию движка!

Эй, все слышали? Налетай-торопись! И как мы раньше жили без версии 10-летней с правками в представлении от Flat! Переименуем функции, слегка изменим файлы и тогда-то уж точно заживём! Ха-ха
62. Flat - 12 декабря 2018 — 11:33 - перейти к сообщению
Sigurni пишет:
В этот момент вы должны читать именно с исключительной блокировкой, что и сделано в ExBB.

Неверно сделано. _Read более менее нормально сделали, а с _Read2Write так не получилось. Из старой версии рожки растут.
Sigurni пишет:
файловый архив студентов

Прекрасная лаба. там всё верно.
Sigurni пишет:
ваши палочки - |) и подсчитывая по индексу, что означает то или иное поле.

Так и я могу сделать отображение в приемлемом виде в админке. Не вопрос.
Только и так всё понятно, и кж понятней чем сериализированные данные.
Sigurni пишет:
Если бы вам нужен был форум, вы бы давно уже поставили его.

Да я что только не ставил..
Sigurni пишет:
С вашими же файлами, если питание пропадёт аккурат на работе fwrite (например), то файл окажется битым, и пока пользователь вручную исправит его, нормальная работы с ним будет невозможна.

Давайте про mysql не будем, меня это вообще не интересует, честно.
Ошибаетесь. Предложенная реализация подразумевает запись на старое место, и в коде движка будут предприняты все меры для того, чтобы размер файла при перезаписи сохранялся, исключением те файлы в которых записи редактируются. При добавлении потери не будет в принципе, так как старый файл сохраняется на своём старом месте. При перезаписи к примеру нескольких полей, таких как время последнего посещения можно сохранять длину записи и писать поверх старых данных. В этом случае, даже если сервер грохнется то весь файл останется цел, за исключением возможно повреждённой этой записи, и то не факт.
Что касается редактирования, то тут, конечно риск есть, но тут можно вернутся к темп файлу конкретно для данного случая. Редактируются файлы прямо скажем не часто.
Sigurni пишет:
Дискриминировали устаревших динозавров.

Не надо разводить священные войны. Это вопрос религии.
Я достаточно знаю, чтобы судить что такое ООП на самом деле.
Sigurni пишет:
Открою вам секрет: обычные пользователи в файлы вообще не заглядывают. Они смотрят на функционал и оформление.

С этим будет получше. Один только вывод сообщений чего стоит: со времён дос наверно.
Обычные пользователи сидят на других движках. А на подобных этому сидят в основном те, кто хочет покопаться своими ручками. Жигули и мерседес: в одном сами копаются, а другой отдают в сервис-центр. Каждому своё. Мне нравится всё держать под собственным контролем.
Sigurni пишет:
Бедный http://imho.ws, работает уже 15 лет

Он ещё не набрал критическую массу..
Sigurni пишет:
Эй, все слышали? Налетай-торопись! И как мы раньше жили без версии 10-летней с правками в представлении от Flat! Переименуем функции, слегка изменим файлы и тогда-то уж точно заживём!

Во-первых, повторяю: делаю исключительно для себя, так как нужно лично мне. А другие могут использовать то, что я наваял если захотят.
Во-вторых, я считаю, что код старой версии был испорчен, и испорчен был сознательно. О причинах умолчим..
Да, некоторые вещи исправили, но заложили много подводных камней.
Я уже говорил, что эволюцию старого движка надо было продолжить в том же ключе, исправив мелкие недочёты, может быть кое что изменив. Однако этого не произошло. А те, кто продолжал заниматься старой версией даже не удосужились исправить тот основной баг с обнуление файлов, которые были практически у каждого кто пользовался тем движком. А движок то был хороший, простой и понятный.
63. Sigurni - 16 декабря 2018 — 21:19 - перейти к сообщению
Flat пишет:
Неверно сделано. _Read более менее нормально сделали, а с _Read2Write так не получилось. Из старой версии рожки растут.

Примеры, что конкретно неправильно? И почему же этот форум столько лет прекрасно работает, а у вас эпитеты "более менее нормально" и "не получилось".

Flat пишет:
Так и я могу сделать отображение в приемлемом виде в админке. Не вопрос.

Ага, т.е. вам мало написать своё некое подобие СУБД, вы собираетесь к ней ещё и некое подобие phpMyAdmin делать? И сколько лет это займёт?

Flat пишет:
Ошибаетесь. Предложенная реализация подразумевает запись на старое место, и в коде движка будут предприняты все меры для того, чтобы размер файла при перезаписи сохранялся, исключением те файлы в которых записи редактируются. При добавлении потери не будет в принципе, так как старый файл сохраняется на своём старом месте. При перезаписи к примеру нескольких полей, таких как время последнего посещения можно сохранять длину записи и писать поверх старых данных. В этом случае, даже если сервер грохнется то весь файл останется цел, за исключением возможно повреждённой этой записи, и то не факт.
Что касается редактирования, то тут, конечно риск есть, но тут можно вернутся к темп файлу конкретно для данного случая. Редактируются файлы прямо скажем не часто.

Файлы редактируются чаще, чем вы думаете. Возьмите и добавьте запись в начало файла. Вы получите полную перезапись. Байки про "запись на старое место" даже не знаю, откуда вы берёте. Такая запись возможна, если вы работаете с файловой системой напрямую, на уровне её драйвера или ядра ОС. В остальных случаях вы вообще никак не можете быть уверены, каким образом файл будет физически сохранён на накопителе. Более того, системные утилиты ФС, та же defrag, могут изменять это хранение, и вы на это никак не повлияете.

Ваше решение с tmp-файлами годится разве что для создания бекапов файлов, но никак ни для рядовой работы с ними, т.к. при перемещении/переименовании файлов сразу слетит установленная ранее блокировка, и вам нужно будет использовать другой механизм синхронизации процессов для предотвращения повреждения данных.

Flat пишет:
Sigurni пишет:
Бедный http://imho.ws, работает уже 15 лет

Он ещё не набрал критическую массу..

Судя по вашему коду, он старше минимум на 14 лет вашего опыта работы с PHP. И ещё спокойно столько же лет прекрасно проработает.

Flat пишет:
Во-первых, повторяю: делаю исключительно для себя, так как нужно лично мне. А другие могут использовать то, что я наваял если захотят.
Во-вторых, я считаю, что код старой версии был испорчен, и испорчен был сознательно. О причинах умолчим..
Да, некоторые вещи исправили, но заложили много подводных камней.
Я уже говорил, что эволюцию старого движка надо было продолжить в том же ключе, исправив мелкие недочёты, может быть кое что изменив. Однако этого не произошло. А те, кто продолжал заниматься старой версией даже не удосужились исправить тот основной баг с обнуление файлов, которые были практически у каждого кто пользовался тем движком. А движок то был хороший, простой и понятный.

Ну наконец-то я слышу "хороший, простой и понятный". Что и требовалось доказать. Свою полемику я начал именно с того, что вы довольно часто в своих сообщениях не очень лестно отзываетесь о том, что было сделано до вас. При этом своего толкового (и главное рабочего) вы так до сих пор ничего и не предложили. Я считаю, что стоит с пониманием и уважением относиться к чужому труду, тем более что ваша работа всё равно так или иначе на нём основывается.
64. Flat - 17 декабря 2018 — 09:13 - перейти к сообщению
Sigurni пишет:
Примеры, что конкретно неправильно?

1. Не нужно было размазывать по разным функциям открытие-закрытие файла. Да ещё делать массив для хендлов файлов. Бред отборный. Элементарно можно забыть закрыть файл через тонну кода. Правильней делать это всего-лишь в одной функции.
2. Функция _Read2Write читает файл с исключительной блокировкой. Это не правильно, ещё раз повторю для непонятливых.
Оно вроде как работает, но в один прекрасный момент...
Sigurni пишет:
Ага, т.е. вам мало написать своё некое подобие СУБД, вы собираетесь к ней ещё и некое подобие phpMyAdmin делать? И сколько лет это займёт?

Я писал, что могу это сделать при необходимости. однако в планах на конкретный движок у меня этого нет. Я делаю упрощённый вариант. Кстати, я тут недавно написал, что беру старую версию и т.п. Не верьте мне. Более вникнул в код старой, там куча мала того что мне не нравится. Сейчас я продолжаю работать над совершенно самостоятельной версией. Т.е. там будет только мой нативный код. Иногда будет проскальзывать общая структура некоторых файлов из существующих версий, однако в целом код полностью переписан с нуля. Много добавлено и много убрано. Мне лично нравится. Вчера делал например обработку формы регистрации. Сегодня делаю обработку формы активации по ключу. Короче говоря занимаюсь регистрацией. В существующем движке регистрация сделана несколько кривовато. Проскальзывают ошибки и баги. Например нашёл такой баг по ходу изучения кода: в exbb не обрабатываются символы Ё и ё вобработчике формы регистрации, по крайней мере в кодировке 1251. Я у себя исправил этот баг. Ну и далее по мелочи много чего.
Sigurni пишет:
Возьмите и добавьте запись в начало файла. Вы получите полную перезапись. Байки про "запись на старое место" даже не знаю, откуда вы берёте. Такая запись возможна, если вы работаете с файловой системой напрямую, на уровне её драйвера или ядра ОС.

Почему же? Если открывать файл со спецификатором w то перезапись может быть где угодно, а если с r+ то будет писаться на старое. Я проводил эксперименты по перезаписи, это не фантазии. Можете проверить сами.
Sigurni пишет:
Ваше решение с tmp-файлами годится разве что для создания бекапов файлов, но никак ни для рядовой работы с ними, т.к. при перемещении/переименовании файлов сразу слетит установленная ранее блокировка, и вам нужно будет использовать другой механизм синхронизации процессов для предотвращения повреждения данных.

Вот это меня тоже насторожило. Поэтому я и отказался от этого переделав функцию. Но как пишут в реальности всё работает..
Sigurni пишет:
Судя по вашему коду

Мой код прекрасен(для меня) Более того: я его люблю. А во на оопнутый код смотреть не могу. Для меня он быдлокод.
Sigurni пишет:
При этом своего толкового (и главное рабочего) вы так до сих пор ничего и не предложили. Я считаю, что стоит с пониманием и уважением относиться к чужому труду, тем более что ваша работа всё равно так или иначе на нём основывается.

Проблема в том, что я раскидываюсь по сторонам. Сейчас начал более времени посвящать этому, так что возможно скоро будет рабочая вещица..
Sigurni пишет:
А с вашими функциями, где фигурируют числовые ключи, работать будет крайне неудобно, вы сами это поймёте, когда перейдёте от ядра к функционалу.

Ещё добавлю, почему это нужно. В файлы подобного формата информацию можно добавлять со спецификатором a или a+. Это позволяет не беспокоится за основное тело файла, ибо оно не перезаписывается, как это происходит когда приходится сохранять целый сериализированный массив. Поэтому для меня это веское соображение в пользу таких файлов, на чём я и остановился.
65. M-A-X - 24 июля 2021 — 16:17 - перейти к сообщению
1. Если не знать свой id и не видеть последние свои сообщения, то хз как найти ссылку на свой профиль
2. Новая Опера определяется движком как Хром

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0266]     [ ]