LINUX.ORG.RU

Хорошо спроектированное веб-приложение с исходным кодом


0

1

Подскажите сабж.
Языки: python, php, perl.
Обязательное условие: MySQL и(ли) Postgres.

Я понимаю, что есть такие монстры как Wordpress, PHPBB, * на Django, но они все генерируют over 9500 запросов к БД для одной простой странички. А мне хочется чего-нибудь минималистичного, но при этом хорошо спроектированного.

[самопиар]
Могу дать пример плохо спроектированного (там еще есть и другие плохо спроектированные веб-приложения, зато с исходным кодом :) ). [/самопиар]

Eddy_Em ☆☆☆☆☆
()

Могу на java хорошо спроектированное подкинуть. На питоне есть пример, но он закрытый, так что сырцы выслать не могу :(

dizza ★★★★★
()
Ответ на: комментарий от dizza

Нечитаемое дерьмо в виде <?php if (blabla)?>sdfklsjdflksjdfsdlkfj<?php blabla ?>

Для шаблонизаторов уже давно в пыхе придумали синтаксис

<?php for () : ?>
<html>
</html>
<?php endfor ?>

И читаемо и таки отделяет пых от хтмла. Но это же документацию надо читать и головой думать, да.

GateKeeper ★★
()
Ответ на: комментарий от dizza

>Могу на java хорошо спроектированное подкинуть.

Если не сложно выкинь куда-нибудь, очень сильно пригодилось бы, особенно если там есть комментарии.

mopsene ★★★
()
Ответ на: комментарий от GateKeeper

>Документация полное г--но

Но в топикстарте про документацию не говорилось :)

А так — если будут вопросы, то я всегда и на ЛОРе доступен, и в Jabber, и на своём форуме.

Ну и мускл, что намекает...

Как бэ, бэкенд там любой. Просто mysql — самый популярный и отработанный. На практике часто используется ещё Oracle и plain-text (разные варианты, в т.ч. xml). Ну и совсем изредка — sqlite и mongo.

KRoN73 ★★★★★
()
Ответ на: комментарий от GateKeeper

мускул быстр, когда нужны феерические скоростя вставки во всяких говнораклах приходится накатывать данные из бекапа или сносить индексы. в мускуле все проще 8)

_________

//wfrr

Dimez привет!

anonymous
()
Ответ на: комментарий от anonymous

Не на иннодб ли этот ваш мускл феерически быстр? Иннодб течь перестала уже? Если МаЙСясАМ, там индексы уже научились делать?

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

>так там PDO или таки mysql_* ?

Это даже двумя уровнями пофиг. В том смысле, что ORM оперирует отдельной сущностью хранилища данных. Дефолтовое хранилище bors_storage_mysql использует драйвер driver_mysq, работающий напрямую с mysql_* функциями, но ничто не мешает в любой момент поменять на PDO или mysqli_*, если понадобится. Просто пока работает — зачем трогать? Тем более, вводя тормозной PDO.

Через PDO (уже от лени) работает, напримет, sqlite-бэкенд.

KRoN73 ★★★★★
()
Ответ на: комментарий от GateKeeper

>Иннодб течь перестала уже?

А что, такое когда-то было?

Если МаЙСясАМ, там индексы уже научились делать?

А что, в MyISAM когда-то не было индексов? Лет 13 назад, когда я впервые с этим engine столкнулся, индексы там уже были.

Вы с какого года в криокамере?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Иннодб течь перестала уже?

А что, такое когда-то было?

Ну, раз ты не знаешь, то, видимо и по сей день течет: отсутствует механизм, аналогичный VACUUM, что, как минимум в дефолтных конфигах (мы же дефолтный мускль с дефолтными посгресами/скулайтами/ораклями с анонимусом сравнивали?) приводит к необоснованному разрастанию ibdata*

Если МаЙСясАМ, там индексы уже научились делать?

А что, в MyISAM когда-то не было индексов? Лет 13 назад, когда я впервые с этим engine столкнулся, индексы там уже были.

Внимательно прочитай вопрос и свой ответ. Вопрос был не «есть ли» а «научились ли». Составные индексы, например, не далее как год назад более то ли 3 то ли 4 колонок не хавали, и то, зависело сильно от storage каждой колонки, т.е. десяток int, может, и схавало бы в одном индексе, но 3, максимум 4 колонки с хотя бы одним text/varchar - хренушки.

Теперь чини libastral, libparse и пробуй еще раз.

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

>Ну, раз ты не знаешь, то, видимо и по сей день течет

Ну, остаётся только удивиться беспроблемной работе годами многомиллионных записей с сотнями обновлений в секунду :) А больше мне пока и не надо

Составные индексы, например, не далее как год назад более то ли 3 то ли 4 колонок не хавали

Сказки ты какие-то рассказываешь.

Теперь чини libastral, libparse и пробуй еще раз.

Возвращаю совет.

KRoN73 ★★★★★
()
Ответ на: комментарий от GateKeeper

> отсутствует механизм, аналогичный VACUUM

ALTER TABLE table_name ENGINE=InnoDB

или

OPTIMIZE TABLE table

на выбор. Это обновит статистику индексов и освободит неиспользуемое место в кластерном индексе.

А вообще MySQL vacuum не нужен — MVCC в MySQL и PostegreSQL устроен абсолютно по-разному.

к необоснованному разрастанию

Читаем про rollback segment

но 3, максимум 4 колонки с хотя бы одним text/varchar - хренушки

Это было до MySQL 4.1.2 (ограничение на суммарную длину индекса составляло 255 байт). Это то ли 2004 год, то ли 2005, но никак не год назад.

sjinks ★★★
()
Ответ на: комментарий от sjinks

$ mysql --version mysql Ver 14.12 Distrib 5.0.67, for suse-linux-gnu (x86_64) using readline 5.2

SLES11SP1. Лютейший тырпрайз. Индексы не работают. По этой причине переползли на посгрес (благо там в DBI и надо было всего лишь поменять конфиг у тулзы) и довольны.

GateKeeper ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.