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

Здесь можно обсудить сайт PlugRinG и предложить идеи по его дальнейшему развитию.
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 »

Latest post of the previous page:

--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 вещь вполне реальная.

И еще по исходникам - если дизайн будет меняться, то стоит задействовать шаблонизатор, пока еще кода немного.
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:Чтобы сломать сайт, сделать дефейс и показывать это друзьям школьникам.
Ну так я Вам уже ответил - сайт _не_сломался_. Вы получили _корректное_ сообщение об ошибке (первый раз). Вот сделаете дефейс - тогда и поговорим.

Впрочем, по поводу того что кавычки попадают в SQL запрос - согласен это бага. Поправлю.
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

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

Post by Demiurg »

Подставляйте параметры в запрос через плейсхолдеры, и не будет таких проблем.
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:Подставляйте параметры в запрос через плейсхолдеры, и не будет таких проблем.
Примерчик бы на PHP. Я рыл в inet, но там даже блобы рекомендуется записывать прямым присвоением...
Demiurg
Posts: 22
Joined: Wed 05 May, 2010 07:39
Location: Химки
Contact:

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

Post by Demiurg »

В том-то и фикус, что на PHP я не пишу (хотя читаю).
На Perl пример дам легко.
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 »

Да вообщем и так проблем нет. Нужно только не забывать маскировать строки. Где то забыл видимо. Посмотрю.
Post Reply

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