ArbNet

ArbNet
Рейтинг
148
Регистрация
27.10.2019
Программист самоучка
Stek:
дай хоть сайт что ли заценить

Варю :) cыроват ещё

Так и у меня загружаются сжатые только один раз.

Компоненты могут добавляться, удалятся, какие в них пропишут стили разработчики компонентов не известно. Движок всё собирает на лету, браузер по контрольной сумме определяет устарели стили, значит обновляет, нет, использует те что в кэше.

ivan-lev:
Зачем? Для описанного случая выгоднее кэшировать один минифицированный файл (не думаю, что у Вас для разных страниц настолько много кастомных стилей..)

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

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

Sly32:
А можно пример синтаксиса вашего языка?

тестовый код


// заголовок для браузера
^ request(HTTPv)+" 200 OK"+>>;
^ "Content-Type: text/html"+>>;
^ "Charset: utf-8"+>>;
^ >>+>>;
// класс для форматирования страницы
* MC+;
@ LBL{String:result=lbl_[v1];};
@ GDT{include(v1+".gdt");};
@ WRD{String:result=$db.Value(v1,key.str,wrd.str);};
@ LNC{
? nvg=v1{String:result="class=active";[<];};
String:result="href=?nvg="+v1;
};
% lbd+List;% db+DatB;$db.List(lbd);
$lbd.Add("LBL site\words");
$lbd.Add("SLC site words");
$db.Request;
* *;
? var(nvg)="unk" {String:nvg="main";};
MC.String:nvg=nvg;
MC.String:lbl_HOST=request(Host);
MC.String:lbl_TITLE="ARBITRIUM";
MC.String:lbl_DATETIME=datetimestr(,dd.mm.yy hh:nn:ss);
% page+List;% reg+ReEx;
loading(page,"html\site.tpl");
$reg.Input($page.Text);
loading(page,"html\"+nvg+".tpl");
$reg.Expression("CONTENT");$reg.Replace($lbd.Text); //$page.Text
$reg.Expression("(LBL|GDT)\{([^\}]+)\}");$reg.ReplaceEx(MC);
$reg.Expression("(WRD|LNC)\{([^\}]+)\}");$reg.ReplaceEx(MC);
$reg.Expression("(lbl|gdt|wrd)_\w+");$reg.Replace("");
^ $reg.Input;

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

Например:

^ такой знак означает вывод как echo в PHP, >> это перевод строки \r\n

* MC+; это работа в классе, а это * *; выход из класса в основную программу

? условный оператор ? var(nvg)="unk" {String:nvg="main";}; если переменная nvg="unk" {значит выполнить этот код}

Тоже уже забывать стал :(

Sly32:
У меня впечатление уже что это не один человек.

На PHP с 2008 г. ничего не делал, сейчас приходится вспоминать и нововведения изучать.

Sly32:
Интересно, как же вы собираетесь с этим бороться? Насколько ваша поделка будет компактнее и быстрее, к примеру?

Я разработал свой подход для стилей компонентов, цвета в переменных(при изменении цвета переменной, цвет в компоненте также изменится), дизайн в скинах с описанием тегов. Как и говорил движок смотрит структуру xml формирует страницу и подключает только нужные стили, один файл для всего сайта с основной структурой и небольшой к каждой конкретной странице если пользователь её запросит.

Sly32:
Почему вы с таким еще не CEO како-нибудь крутого стартапа? Я вот вторые сутки изучаю детально Processes, Threads and isyncio - ничего не понимаю, даже свой Pool написать не могу... А тут свой сервер да и еще со своим языком... Тут весь наш департамент Python and Go в голос зарыдал - не выжить нам с такой конкуренцией...

Нет специального образования, корочек программиста. Раньше пытался устроится, без корочек бесполезно. Потом интереснее делать то, что хочется, а не под заказ. Начинается с какой нибудь бредовой идеи(типа этой:)) а потом постепенно создаётся что-то большое.

С моим сервером получилась следующая история. По началу хотел просто приложение для удобства сделать, конструкторам, мастерам, по номенклатуре изделия, размеры, материал и тд. чтобы открыл посмотрел чертёж, без наворотов простенькую, ничего же сложного. Для сети нужен обмен данными межу компами, сделал простенький сервер. Потом подумал, а не сделать ли чтобы сайты мог выдавать, а для генерации страниц надо язык, ну и базу бы. Так и слепил.

Сайт вот сделаю на своём фреймворке :), потом может какой проект на своём этом ПО потестирую...

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

Я вот по большей части наверно разрушитель, нежели созидатель. Участвовал в изготовлении гироскопов для приборов наведения ракет земля-воздух, делал карданы для БТРов, приборы безопасности башенных и др. кранов. Наружная реклама: объёмные буквы, световые короба и др.

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

ivan-lev:
Так Вы за простоту (скорость разработки?) или за скорость работы?..

За всё сразу.

ivan-lev:
Команда Jetbrains вздрогнула... содрогнулась..

Что вы ими(и другими известными компаниями и продуктами) тычите? Если бы они что-то своё не делали, то ничего и не добились. Вы на себя посмотрите лучше, что вы сделали, делаете?

Никакой это не xslt.

Это просто xml, например:


<html frame="site">
<menu Menu="horizontal"/>
</html>

Тут будет шаблон каркаса сайта в котором будет горизонтальное меню(навигация по сайту, настраиваться будет в админке)

silicoid:
может мне кто-нибудь объяснит, зачем нужен в данном случае XML?
только потеря машинного времени на перегонку данных тудой-сюдой.

ведь сами по себе xml парсеры мягко говоря производительностью не отличаются

1) В xml не будет никаких данных, это просто разметка(не как html, а указание на компоненты) того что пользователь хочет видеть на странице, поэтому такая структура будет не большой и время на её парсинг не значительное

2) xml выбран по двум причинам: в нём легко ориентироваться и теги с атрибутами не стандартизированы(можно придумывать свои)

3) Всю информацию о странице можно легко получить из одного файла такой структуры. Движок по этой структуре формирует страницу, и нужные стили, скрипты к этой странице.

ivan-lev:
А он сам место нужное найдёт? А если два одинаковых "апплета" (блока) нужны?..

Легко. Раньше же в MVC представлениях(нативных шаблонах) просто где нужен апплет делаешь его вызов, можно и с разными данными. Сейчас будет так же но в структуре xml.

ivan-lev:
Так посыл вроде был, что Вы не для себя пишете..

Да, составить структуру в xml сможет любой(подготовлю инструкцию как это делать и админка для этого будет). А компоненты я и может другие захотят делать, кто знает php, html, css, js (инструкция как делать компоненты тоже будет).

Sly32:
А на чем же вы тогда пишете? По итогу вижу изобретение какого-то конструктора именно под узко заточенные задачи, никак не фреймворка, но все равно,

PHP.

Заточено как раз под широкие задачи. Это будет своего рода IDE для создания сайтов. Вот вы говорите зачем придумывать велосипед если есть PHP практически шаблонизатор, куча фремворков и тд.

Приведу такое сравнение: Зачем тогда придумали языки высокого уровня C(C++), Pascal... и др. можно же на ассемблере писать, а ещё даже в ноликах и единицах. Эти языки упрощают написание программ, в них есть компоненты(уже готовые программы для той или иной задачи), которые просто добавляете и используете.

Так же и у меня, я упрощаю создание сайта до составления его структуры(своего рода язык высокого уровня), за разметку, данные отвечают компоненты, которые надо настроить или передать в них нужные параметры.

Взять ещё например bootstrap: это всего лишь файлы css и js. Вы хотите у себя на сайте красивую панель или меню, и вам надо с собой таскать ненужный хлам стилей и js которые не используются. Сейчас интернет стал более скоростным и дешёвым поэтому на это никто не обращает внимание, а это засорение дискового пространства пользователей. С другими фремворками, cms дела ещё хуже, не буду тут расписывать свои доводы, а то начнёте изрыгать из себя как я не прав.

Всего: 2316