LINUX.ORG.RU

новый веб-фреймверк


0

2

Здравствуйте, мы с моим коллегой разрабатываем новый веб-фреймверк. Он не будет зависеть от языка или сервера. Вот вам пример

<html><head><title>Заголовок</title></head>
<body>
<?python
import somemodule
result = somemodule.do()
print result
?>
<div>текст</div>
<?python
print 123
?>
</body></html>

Фреймверк не ограничен каким-то конкретным языком, вполне допустимы и такие конструкции:

<?perl
print "<table>",(map{("<tr><td>",$_,"</td><td>",$ENV{$_},"</td></tr>")}keys %ENV),"</table>";
?>

Фреймворк поддерживает не только интерпретируемые, но и компилируемые языки:

<?c

char str[]="Hello world";

char *upcase=malloc(sizeof(str));
int i=0;
for(;i<sizeof(str);i++){
upcase[i]=str[i]>='a' && str[i]<='z'?str[i]-'a'+'A':str[i];
}
puts(upcase);
free(upcase);

?>

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

http://plasmon.rghost.ru/47517081/image.png -> http://rghost.ru/47517085/image.png

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

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

причем тут php? О нем тут ни слова не сказано. Понимаете, писать на php - это очень долго, разработка небольшого раздела для сайта занимает очень много времени, никакой поддержки устройств, проверка форм должна быть реализована несколько раз, сначала на клиенте, потом на сервере, потом иногда еще в логике. А проблемы с базами данных? Я лично не знаю как с этим бороться. Надо что-то делать, что поможет создавать сайты быстро и легко. Я мечтаю, что мы сможем сделать такой фреймворк, который бы позволил нам написать всю логику, все шаблоны, все модели, все нужное в одном и НЕБОЛЬШОМ файле, после чего загрузить его на сайт и все бы работало, причем везде и качественно.

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

Ваше поделие позволяет смешивать html и логику. Большинство фреймворков, начиная от битрикс и заканчивая симфони, стараются от этого уйти хотя бы на организационном уровне. Есть даже те, которые пытаются сделать это на уровне архитектуры, типа MODx.

Этого уже достаточно чтобы закопать. Про остальное даже писать лень.

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

писать на php - это очень долго

пятница в разгаре. Так и хочется поололокать.

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

Понимаете, писать на php - это очень долго, разработка небольшого раздела для сайта занимает очень много времени

Так-бы и сказал, что не осилил.

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

Вы знаете, я бы с вами охотно согласился. Только сделал бы это лет 10 назад. Тогда я тоже стремился разделять все и вся, вот тут у меня 500 файлов-кусков шаблона по 20 байт, тут у меня пачка модулей из одного цикла, тут у меня портянка с геттерами-сеттерами. Все организованно, все красиво и... Совершенно неподдерживаемо. Другим людям тоже надоело нарезать шаблоны на тысячи мелких файлов, потому и умер в свое время SSI, а вместо него появились шаблонизаторы, где можно насоздавать кучу секций и дергать их из логики. Потому что проще править 1 файл, а не 500 мелких. И вот захотелось в шаблоне добавить лишнее поле, к примеру, аватарку вывести - это надо лезть в логику, надо лезть в базу за новым полем, надо-надо-надо кучу всего, и только потом мы можем поправить шаблон. Разве это нормально? Почему бы прямо здесь, не отходя от кассы, не выполнить запрос на аватарки, ведь они нужны именно в этом самом VIEW? Но нас заставляют размазывать этот код по множеству файлов. Не спорю, может быть в больших проектах, когда за каждый файл отвечает отдельный человек, это суровая необходимость, но когда одному тебе надо сделать простые аватарки - это явный переизбыток, проще все поправить в одном месте, нажать F5, убедиться что все нормально и закрыть задачу.

nogaemz
() автор топика
Ответ на: комментарий от Suntechnic

начиная от битрикс и заканчивая симфони

xy*венький разброс. Однако, по-существу - всё ок.

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

Хорошо, давайте поставим с вами мысленный эксперимент. Нужно реализовать простейший блог (вы ведь понимаете, что модель блога подходит как для интернет-магазина, так и для истории болезни?). Все просто, календарь с записями блога, выборки по тегам и облаку тегов, сами записи. Сколько у вас это займет кода? Сколько вы потратите на это времени? И как долго вы это будете допиливать, когда вдруг комментарии захотите разбить на страницы, подгрузку новых постов надо будет реализовать через AJAX по мере скроллинга, а в календарь надо будет вывести подсказку по популярным записям за эти дни? Я уже не говорю, что php - это сугубо серверная технология, которая в принципе не предназначена для клиента (проекты вроде php-gtk в расчет не берем), т.е. одну логику, к примеру валидации, надо будет сначала писать на клиенте, а потом и на сервере, а дублирование кода - это путь к ошибкам и трудноотлавливаемым багам. Если же мы еще захотим поддерживать пару-тройку версий сайта для андроида, айпада и телефона Siemens, то работа с сайтом превратится в ад, поэтому такие вещи могут себе позволить только крупные корпорации. В результате написание такого блога может длится годами, и так ничего хорошего написано и не будет.

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

Понимаете, писать на php - это очень долго, разработка небольшого раздела для сайта занимает очень много времени, никакой поддержки устройств.

4.2

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

Обзаведись нужными классами (функциями), шаблонами файлов сайта.

А проблемы с базами данных?

Какие проблемы? SQLite проще простого. А третий итого проще, при полной функциональности.

все нужное в одном файле

Ты так говоришь, будто это что-то хорошее.

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

Классы чего? Классы на php? Или классы на JS (которых нет, но есть всякие кофескрипты)? Или классы чего-то абстрактного, что скомпиляется в обе платформы? SQL - это сложно само по себе. А редактировать мелкие вещи проще в одном месте, а не размазывая их по всему проекту

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

подгрузку новых постов надо будет реализовать через AJAX

Не нужно.

по мере скроллинга

Тем более.

логику валидации надо будет сначала писать на клиенте

Зачем?

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

А как от этого избавляет фреймворк?

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

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

На PHP. И объясни необходимость проверки чего-то там на стороне клиента.
JS вообще нужен только для фич вроде выбрать/снять все галочки - чисто дополнительные удобства. Остальное только мешает.

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

Если вы никогда не сталкивались с многократным вводом пароля из-за малейших ошибок в формах, то явно не вам следует рассуждать о нужности или ненужности тех или иных функций. Если форма отправляется на сервер, а потом говорит что я что-то не так ввел, а теперь должен ее с нуля заполнять опять - это признак очень плохого сайта. Часто значения заполняют уже на сервере - это еще хуже. Поэтому проверять форму надо еще на клиенте. Про ненужность AJAX вообще промолчу, оставайтесь в 1993 году и дальше.

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

Если форма отправляется на сервер, а потом говорит что я что-то не так ввел, а теперь должен ее с нуля заполнять опять - это признак очень плохого сайта.

Естественно. Сайт должен содержание формы запомнить.
Много ли ты видишь JS/AJAX вот здесь вот, на этом форуме? А если еще переключишься на нормальную тему (black)?

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

Вот прямо здесь: хочешь формочку открыть - JS, хочешь отправить пост без текста - JS пишет «введите сообщение»

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

хочешь формочку открыть - JS

Можно и без этого, по ссылке пройти. Дополнительная фича для удобства.

хочешь отправить пост без текста - JS пишет «введите сообщение»

Это не много.

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

Это «не много» - только одна формочка, когда их будет под сотню, будет уже много. Но главное, каждый такой обработчик можно просто забыть - это источник ошибки. Если тут можно совершить ошибку, т.е. система тебе это позволяет, то ошибка будет совершена рано или поздно

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

Потому что проще править 1 файл, а не 500 мелких.

хм. Пойду-ка я спать. А то лошади зелёные в глазах, а на ЛОРе так вообще что-то непонятное.

Надеюсь, как проснусь, тему снесут.

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

Какой ошибки? Нормальный движок должен содержание формы запомнить. И если он ее не принимает, вывести форму с тем же содержанием. И делается это просто.
JS — только для дополнительных удобств.

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

Мы уже поняли, что тебе жс не нужен, как и удобства, а вот всем остальным, в том числе заказчикаи сайтов, удобства нужны и порой именно от них зависит лояльность аудитории

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