Альтернативный плагринг

Здесь можно обсудить сайт PlugRinG и предложить идеи по его дальнейшему развитию.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Новый плагринг

Post by John Doe »

Latest post of the previous page:

Вы просто не в теме.
Система на коленке - это не так плохо. Намного лучше чем отсутствие системы.
https://t.me/FarManager — Telegram чат
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Demiurg wrote:С таким подходом это количество расти и не будет.
Каким?
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

Система на коленке - это не так плохо. Намного лучше чем отсутствие системы.
С этим не спорю. Но когда есть прекрасный образец, почему его не использовать?
Каким?
Поясню. Вот Вы запускаете сайт - сразу появляется нагрузка (Вам еще предстоит узнать что нагрузку дают не только пользователи, но и живых людей будет не мало). Наличие репозитария популярность Far приподнимет - нагрузка вырастет еще. Далее сайт начнет притормаживать - удобство использования снижается - пользователи уходят.
Это когда у Вас 2 десятка плагинов загружено всё хорошо шевелится, а что будет когда их станет 1000, 10000, 100000 (с учетом историй версий и деления на ветви такое кол-во легко достижимо)? Опять системой станет невозможно пользоваться. И только потому, что "сделать" у Вас имеет больший приоритет чем "сделать хорошо".

И еще - я не стремлюсь с Вами воевать, не надо мои слова воспринимать враждебно (это я на всякий случай). Я Вам предлагаю помощь.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Demiurg wrote:И еще - я не стремлюсь с Вами воевать, не надо мои слова воспринимать враждебно (это я на всякий случай). Я Вам предлагаю помощь.
1. Если речь идет о моем plagring'e (а других вроде не видно) - то его исходники открыты. Хотите помочь - возьмите их, посмотрите, дайте советы по оптимизации, если будут.
2. 1000 и более плагинов - это из области фантастики. Вся база плагинов для FAR1 насчитывает чуть больше 500. Дай бог, когда нибудь, количество плагинов для FAR2 достигнет сотни.
3. _Даже_ если плагинов станет _очень_ много (>1000) - для MySQL это что чихнуть. Конечно, будет постраничный вывод (пока нет, я в курсе). Но, повторю, еще очень долго это будет неактуально.
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

1. Исходники я посмотрел. Хотя я на PHP и не пишу, но грабли у начинающих одни и те же )
Так что с оптимизации и начнем - Вы при запросе страницы плагина лезете в базу (функция db_read_plugin_by_id) потом генерируете блок с описанием для страницы. Однако как часто меняется эта информация? Есть ли нужда её постоянно брать из базы? Конечно нет. Достаточно один раз сгенерировать этот блок и сохранить в кэш (самое простое - на диск). Далее этот блок генерировать только при отсутствии его в кэше, и при обновлении информации о плагине в БД очищать кеш.
Такая схема применима для большинства блоков на сайте.
Еще Вы тут жаловались на хостинг - могу предоставить доступ к своему серверу, для разработки.
И еще, посмотрите на это: /plugins?category=%FD&name=&author=&tag=&tag=&tag=&updated=&sortby=1
2. 500 плагинов автоматом дают 1000 файлов (x86 и x64)
3. Я про MySQL знаю достаточно, и то что можно положить базу на таблице в 1000 строк - совсем не фантастика
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

--in progress--
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Новый плагринг

Post by Andrey Budko »

Очередной аналитик?
Max Rusov wrote:--in progress--
Поздно. Закомпостировано :)
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

Для иронизирующих: hh[dot]ru/resume/print[dot]do?id=50a532bb00506a78
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Убежало, раньше чем дописал. :)
Demiurg wrote:1. Исходники я посмотрел. Хотя я на PHP и не пишу, но грабли у начинающих одни и те же )
Ну, положим, начинающий я только в PHP. С базами я работаю уже лет 20.
Demiurg wrote: Так что с оптимизации и начнем - Вы при запросе страницы плагина лезете в базу (функция db_read_plugin_by_id) потом генерируете блок с описанием для страницы. Однако как часто меняется эта информация? Есть ли нужда её постоянно брать из базы? Конечно нет. Достаточно один раз сгенерировать этот блок и сохранить в кэш (самое простое - на диск). Далее этот блок генерировать только при отсутствии его в кэше, и при обновлении информации о плагине в БД очищать кеш.
И? Вы полагаете это будет быстрее чем выбрать запись из базы по первичному ключу? Нафига бы тогда человечество вообще придумало DBMS?
Demiurg wrote:Еще Вы тут жаловались на хостинг - могу предоставить доступ к своему серверу, для разработки.
Для разработки мне достаточно локального компьютера. Я не собираюсь хостить альтернативный плугринг. Либо он станет официальным, либо умрет.
Demiurg wrote:И еще, посмотрите на это: /plugins?category=%FD&name=&author=&tag=&tag=&tag=&updated=&sortby=1
Смотрю. И что? Если вы посоветуете, как _легко_ сделать так, чтобы форма с GET не формировала пустых параметров, я поправлю. Но вряд ли это повлияет на быстродействие.
Demiurg wrote:2. 500 плагинов автоматом дают 1000 файлов (x86 и x64)
3. Я про MySQL знаю достаточно, и то что можно положить базу на таблице в 1000 строк - совсем не фантастика
Возможно. У меня нет опыта общения с монстроузными CMS.
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

И? Вы полагаете это будет быстрее чем выбрать запись из базы по первичному ключу?
Разумеется. Статика всегда отдается быстрее чем динамика и требует меньше ресурсов.
Нафига бы тогда человечество вообще придумало DBMS?
А Вы подумайте - почему во всех веб-проектах обращения к БД стараются заменить на обращения к кешу (например к memcached)?
Именно из-за недостаточной скорострельности БД.
Смотрю. И что?
Входные параметры нужно проверять
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Demiurg wrote:
И? Вы полагаете это будет быстрее чем выбрать запись из базы по первичному ключу?
Разумеется. Статика всегда отдается быстрее чем динамика и требует меньше ресурсов.
Да при чем здесь статика/динамика? Вопрос в эффективности доступа к данным. Для БД хранить сотни тысяч/миллионы записей - вообще не проблема. Как у вас будет работать кэш с 100K файлов?
Demiurg wrote:
Нафига бы тогда человечество вообще придумало DBMS?
А Вы подумайте - почему во всех веб-проектах обращения к БД стараются заменить на обращения к кешу (например к memcached)?
У меня есть гипотезы по этому поводу, но я их, пожалуй, озвучивать не буду. А вот Вы подумайте - почему во всех _не_ WEB проектах DBMS как то справляются с нагрузкой, а в WEB вдруг такая проблема. В чем же такая специфика WEB проектов?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Demiurg wrote:Входные параметры нужно проверять
Так они и проверяются. Сайт не сломался, вы получили собщение об ошибке, что Вам еще надо?
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Новый плагринг

Post by Andrey Budko »

Max Rusov wrote:Да при чем здесь статика/динамика? Вопрос в эффективности доступа к данным. Для БД хранить сотни тысяч/миллионы записей - вообще не проблема. Как у вас будет работать кэш с 100K файлов?
У меня тупорылый безиндексный поиск "по всем полям по всем (200+) таблицам" с динамическим построением запроса к каждой таблице на полгигабайте данных на пеньке 3! лолшто, который, ко всему прочему, обслуживает еще несколько моих не менее тупорылых SMPP и HTTP сервисов и раздает интернет/почту на офис - выполняется мгновенно. Городить огород с кешированием, индексацией по частым запросам итд там, где и так все работает молнеиносно - это ж чистой воды онанизм, не? Возникнут проблемы - появится и решение.
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

Как у вас будет работать кэш с 100K файлов?
Прекрасно будет работать. Как работает хэш-таблица? Вот именно так и будет работать. К тому же это могут быть и не файлы, а memcached.
В чем же такая специфика WEB проектов?
Интересный вопрос. Я даже призадумался. То, что БД в WEB узкое место у меня сомнения не вызывает, как и у многих других WEB-разработчиков. Но вот ПОЧЕМУ?
Как мне кажется, тут всё дело в цене. Т.е. можно сделать достаточно быструю СУБД (с кластеризацией и т.п.), но вот какова будет цена такого решения? Чую, намного дешевле поставить быстрый кеш на memcached и запрашивать данные из относительно медленной БД только один раз.
Еще тут в голову пришло - в ВЭБ очень жесткие требования по времени реакции на действия пользователя, тогда как в прочих системах пользователь может и подождать (хотя приятного в этом, конечно, мало).
Сайт не сломался, вы получили собщение об ошибке, что Вам еще надо?
А зачем пользователю это сообщение?
И вот такой вариант: /plugins?category=&name='&author=&tag=&tag=&tag=&updated=&sortby=1
доказывает что данные не проверяются, т.е. есть SQL-инъекция
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Новый плагринг

Post by Max Rusov »

Demiurg wrote:Интересный вопрос. Я даже призадумался. То, что БД в WEB узкое место у меня сомнения не вызывает, как и у многих других WEB-разработчиков. Но вот ПОЧЕМУ?
Как мне кажется, тут всё дело в цене. Т.е. можно сделать достаточно быструю СУБД (с кластеризацией и т.п.), но вот какова будет цена такого решения? Чую, намного дешевле поставить быстрый кеш на memcached и запрашивать данные из относительно медленной БД только один раз.
А дисковое пространство - оно бесплатное? Не жирно ли удваивать/утраивать объем базы данных? Еще раз повторю - БД _не_медленная_. Если кто-то не умеет писать эффективные SQL запросы - не стоит делать из этого далекоидущие выводы. А вообще - разговор какой-то академический. К плугрингу то это все каким боком? Вон старый Plugring - вообще на FoxPro. Как то выжил.
Demiurg wrote:А зачем пользователю это сообщение?
А зачем пользователь полез ручками править URL запроса? Ну, полюбуйся на это:

http://forum.farmanager.com/search.php?keywords=%FD

Так лучше?
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

Re: Новый плагринг

Post by Demiurg »

К плугрингу то это все каким боком? Вон старый Plugring - вообще на FoxPro. Как то выжил.
Ладно, это отложим.
Хотя память сейчас намного дешевле чем была еще совсем недавно, поэтому лучше иметь дубли информации и не ждать.
А зачем пользователь полез ручками править URL запроса?
Чтобы сломать сайт, сделать дефейс и показывать это друзьям школьникам.
Проверка всех данных поступающих извне - это аксиома ВЭБ-программирования, т.к. SQL-инъекции сегодня умеют делать даже школьники, да и XSS вещь вполне реальная.

И еще по исходникам - если дизайн будет меняться, то стоит задействовать шаблонизатор, пока еще кода немного.
Post Reply

Return to “Обсуждение PlugRinG”