Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Snakeskin (https://javascript.ru/forum/project/35057-snakeskin.html)

moron 05.03.2015 02:41

Слушай, а как ты справляешься с мыслями о том, что твой продукт может не взлететь? Вот сделаешь ты, напишешь пару постов на хабр, а среди разработчиков он не взыскает популярности...стараний вложено-то не мало.
Неужели просто для себя?
Я не хочу никого обидеть.

kobezzza 05.03.2015 09:00

Цитата:

Сообщение от moron (Сообщение 359660)
Слушай, а как ты справляешься с мыслями о том, что твой продукт может не взлететь? Вот сделаешь ты, напишешь пару постов на хабр, а среди разработчиков он не взыскает популярности...стараний вложено-то не мало.
Неужели просто для себя?
Я не хочу никого обидеть.

Меня на самом деле это мало волнует, т.е. я конечно хотел бы, что бы о моих разработках узнали, но не более того.

Я пишу свои библиотеки для себя и под реальные задачи, а ещё потому что я программист и люблю это делать, да и в конце концов, был ли я тем кем являюсь без всего этого? Думаю нет. Более того, это отличное портфолио.

Что касается документации, перевода на английски и т.д. Тут тоже всё просто:

1) Доку пишу, потому что этого требует мой перфекционизм;
2) На английский перевожу, т.к. учу английский.

Safort 08.03.2015 23:01

kobezzza,
кстати, думаю, им можно прислать пуллреквест с бенчмарками SS. Подойдёт для начальной раскрутки)
https://github.com/Deathspike/template-benchmark

kobezzza 09.03.2015 11:12

Цитата:

Сообщение от Safort (Сообщение 360178)
kobezzza,
кстати, думаю, им можно прислать пуллреквест с бенчмарками SS. Подойдёт для начальной раскрутки)
https://github.com/Deathspike/template-benchmark

Нормальные бенчмарки трудно сделать, т.к. возможности у шаблонок разные и ни одна (из списка по ссылке) не умеет всего, что умеет SS. Да и самое главное, что большинство шаблонок умеют делать предварительную транслцию.

Gozar 14.03.2015 11:55

Цитата:

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

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

Хороший инструмент, простой в освоении :). Сделал и забыл, нужно доделать, вернулся 1 секунду повтыкал, доделал.

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

kobezzza 14.03.2015 13:45

Цитата:

Сообщение от Gozar (Сообщение 361187)
Для меня он уже взлетел, ума не приложу чтобы я без него делал, скорее всего крутил бы костыли. Если рассматривать верстку шаблонов под nodejs, то лучшего продукта я пожалуй не видел.

Хороший инструмент, простой в освоении :). Сделал и забыл, нужно доделать, вернулся 1 секунду повтыкал, доделал.

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

Спасибо за теплые слова, прям мотивирует развивать проект с новыми силами :)

Кстати о развитии: со след недели у меняя снова появляется время на проект, т.к. ухожу на пол ставки на работе, поэтому выход SS7 думаю произойдёт в начале след месяца. А ещё я таки проникся WebPack (ууууу какой крутой инструмент :dance: ) поэтому в зоопарке плагинов к SS появится лоадер для WebPack. Также после выхода SS7 проект переедет в свою сосбтвенную группу на Github: https://github.com/SnakeskinTpl где также будут лежать все плагины (gulp, grunt, express, webpack и т.д.).

kobezzza 14.03.2015 15:48

Придумал ещё пару полезных фич для SS7:

Новый модификатор контекста: @: и директива env. По имени директивы уже можно догадаться, что данные вещи будут упрощать работу с переменными окружения:

{env DEBUG = 'true'}


или

{void @:DEBUG = 'true'}


Использование в других директивах:

{if @:DEBUG == 'true'}
    ...
{/}

{switch @:NODE_ENV}
    {case 'dev'}
        ...
    {/}

    {case  'prod'}
        ...
    {/}
{/}


***

Также появится новый параметр компиляциии: engine, этот параметр будет задавать используемое окружение скомпиленного шаблона, например: default (он же nodejs, думаю для io пока нет смысла делать, ибо там все совпадает пока), nashorn (это встроенный в Java8 JS движок, чтобы использовать шаблоны из Java).

В зависимости от этого параматра полученный код шаблона может немного отличаться, например, получение переменной окружения в node это process.env, а в nashorn как то иначе и т.д.

kobezzza 14.03.2015 16:00

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

{proto myTpl->foo() @final}
   ...
{/}


Но это пока только мысли вслух :)

kobezzza 26.03.2015 19:55

trikadin придумал новую систему code-reuse для SS, в добавление к наследованию и примесям, встречайте (барабанная дробь), враперы!

- template wrapper(data1, data2)
  < span style = color: red;
    {data1}
    
  < span style = color: blue;
    {data2}
    
- template main()
  - wrap call wrapper
    Мой текст
  - and
    Мой текст 2


Думаю результат всем понятен :)

trikadin 26.03.2015 20:40

Допишу ещё, а то из примера неочевидно, что враппером может быть кто угодно: темплейт, прототип, блок -- главное ключевое слово wrap не забыть :)


Часовой пояс GMT +3, время: 20:30.