Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #141 (permalink)  
Старый 07.07.2014, 12:52
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сейчас подумал, что можно сделать маску для имени шаблона, будет как раз компромисс.

base.ss
{template %filename%()}
    ...
{/}


profile.ss
{include 'base.ss'}

{template %fileName%() extends base}
    ...
{/}


Т.е. %fileName% будет реплейсится на имя файла.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 07.07.2014 в 14:34.
Ответить с цитированием
  #142 (permalink)  
Старый 09.07.2014, 09:40
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Фак, похоже придётся опять на наделю релиз перенести, завтра уезжаю в Мск, иду на свадьбу гулять, наверн дня на 3-4 выпаду
__________________
kobezzza
code monkey
Ответить с цитированием
  #143 (permalink)  
Старый 09.07.2014, 13:04
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza
Фак, похоже придётся опять на наделю релиз перенести, завтра уезжаю в Мск, иду на свадьбу гулять, наверн дня на 3-4 выпаду
синька - зло, я уже 10 дней потерял из-за неё, не считая сессии)
Ответить с цитированием
  #144 (permalink)  
Старый 09.07.2014, 13:20
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от melky Посмотреть сообщение
синька - зло
эт точно
__________________
kobezzza
code monkey
Ответить с цитированием
  #145 (permalink)  
Старый 11.07.2014, 12:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сейчас продумываю такую концепцию, как вызываемые блоки:

{template foo()}
	{forEach arr => el}
		{block elem(el)}
		    ...
		{/}
	{/}
{/}


Конструкция с block будет отрендерена как

if (!foo.elem) {
    foo.elem = function (el) {
        ...
    };
}

foo.elem(el);


Т.е. создаётся функция, которая сохраняется как свойство функции-шаблона. Это решает проблему, когда нужно создать подшаблон, который должен иметь доступ к переменным замыкания главного шаблона и быть доступен для повторного вызова "вне шаблона", т.е. из JS, но в тоже время будет являться структурной единицей Snakeskin, т.е. можно явно переопределять в дочернем шаблоне и использовать директиву super.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 11.07.2014 в 13:03.
Ответить с цитированием
  #146 (permalink)  
Старый 11.07.2014, 15:23
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Добавил поддержку генераторов.

{template *foo(data)}
    <div class="bar">
        {forEach data => el}
            {apply row(el)}
            {yield}
        {/}
    </div>
{/}


Директива yield будет отрендерена как

yeild __RESULT__;
__RESULT__ = '';


т.е. каждый "тик" (вызов next) будет возвращать кусок отрендеренного шаблона.

Зачем я это добавил: у меня в проекте есть места, где данные из БД возвращаются асинхронными чанками из разных сегментов и сейчас мне приходится ждать пока появятся все данные, затем выполнить шаблон (который вернёт огромную строку, и также может надолго залочить поток, т.к. внутри большой цикл) и уже потом отправлять клиенту.

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

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

ЗЫ: напоминаю, что пока, чтобы юзать генераторы в ноде, то нужно запускать её с флагом --harmony.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 11.07.2014 в 15:26.
Ответить с цитированием
  #147 (permalink)  
Старый 27.07.2014, 14:45
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Чего то ппц затянулся этот релиз

Сегодня заканчиваю активную разработку, завтра финальный review и тесты и начинаю работать над докой.

ЗЫ: самое глобальное обновление за всю историю проекта, количество коммитов почти равно общему количеству коммитов всех предыдущих версий Собственная кодовая база увеличилась на 3к строк кода (8.2к), а с учётом сторонних либ почти 14к (а ведь первая версия была примерно 400 строк ), жесть в общем

Но полученным результатом я очень доволен и наверное даже горжусь, пускай это звучит громко, но Snakeskin 4 будет объективно самым продвинутым "классическим" (т.е. без привязки к определённой технологии или окружению) шаблонным движком из существующих для JS.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.07.2014 в 15:09.
Ответить с цитированием
  #148 (permalink)  
Старый 27.07.2014, 15:18
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от kobezzza
Чего то ппц затянулся этот релиз
та не, у тебя всё нормально
а вот я будто в астрале пребываю)
Ответить с цитированием
  #149 (permalink)  
Старый 28.07.2014, 18:27
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Алилуйя, я закончил фазу активной разработки. Теперь приступаю к обновлению доки и выкатываю релиз
__________________
kobezzza
code monkey
Ответить с цитированием
  #150 (permalink)  
Старый 29.07.2014, 22:38
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Добавлю сюда тоже, релизная версия видео-мана по настройке вотчеров.

Планирую также снять видео по основам и по наследованию, а остальное будет только в текстовом виде в вики, которая уже пилится
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 01.08.2014 в 15:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
express-snakeskin - view через snakeskin для express melky Ваши сайты и скрипты 5 10.06.2014 11:35