| 
	| 
	
	| 
		
	| 
			
			 
			
				30.08.2014, 12:02
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| 
	
 
	| Сообщение от kobezzza   |  
	| Это избавило бы разработчики от необходимости следить за изменениями в коде счётчика, |  
	
 Зато заставило следить за этим автора движка.) И скорость реакции на внезапные критические изменения таки будет медленней.
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 12:35
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| 
	
 
	| Сообщение от Aetae   |  
	| Зато заставило следить за этим автора движка.) И скорость реакции на внезапные критические изменения таки будет медленней. |  
	
 Тоже верно, посмотреть есть ли API у сервисов для получения кода счётчика, хотя можно парсить страничку с примером, но это не надёжно, т.к. вёрстку могут также поменять. |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 12:45
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| Вообще для Snakeskin прям напрашивается boilerplate либа, которая реализует, например, макеты на bootstrap и пласт полезных функций, аля 
- proto base->icon(type)
    < span class = fa #{type}
-template base()
    - doctype
    < html
        < head
            < title :: {title = 'Заголовок' ?}
            - block scripts
                < cdn bootstrap
                < cdn fontawesome
        < body
            - block body
- proto classic->menu(list)
    - forEach list => @el
        ...
-template classic() extends base
    - block scripts
        - super
        < cdn jquery-ui
    - block body
        /// Тут идёт вёрстка макета и разбинение на блоки для наследования
И уже при самой разработке можно было бы просто подключать нужный файл и наследовать шаблон от него.
 
Тоже самое и для UI, причём шаблоны удобно делать как метод класса UI контрола,
 
- template Button.prototype.tpl() extends Base.prototype.tpl
    ...
- template SuperButton.prototype.tpl() extends Button.prototype.tpl
    ...
			 Последний раз редактировалось kobezzza, 30.08.2014 в 12:50.
 |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 12:52
			
			
			
		 |  
	| 
		
			
			| sinistral     |  | 
					Регистрация: 28.03.2011 
						Сообщений: 5,418
					 
		
 |  |  
	| 
	
 
	| Сообщение от kobezzza |  
	| Как считаете? |  
	
 имхо, не нужно переизобретать стандарт Web Components (не то чтобы ты этим занимаешься, но эти директивы уже на 99% похожи на кастомный элемент, а это уже другая стизя)
 
есть ли способ дополнить этот стандарт или засахарить его?
 
и ещё .. подсветка кода!!!   |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 12:56
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| имхо, не нужно переизобретать стандарт Web Components (не то чтобы ты этим занимаешься, но эти директивы уже на 99% похожи на кастомный элемент, а это уже другая стизя) |  
	
 Но ведь это не директивы UI, а снипеты подключения, например cdn bootstrap подключит с CDN твиттера сразу и jquery, bootstrap.js, bootstrap.css последней версии, это же оч удобно.
 
	
 
	| Цитата: |  
	| и ещё .. подсветка кода!!! |  
	
 Ну, в WS хужо бедно всё норм: подсветка и автокомплит настраиваются, обработка ошибок на уровне FileWatcher и отладчика SS.
 
В notepad++ подсветку также настроить легко через настройки->добавить язык. А вот в sublime я просто хз, но я не думаю, что там что прям эпик.
 
Вот что действительно нужно добавить, т.к. это флаг --watch для компилятора, чтобы он сам пересобирал необходимые шаблоны, т.к. всякие File Watcher -ры делают это не совсем корректно, например,
 
base.ss
 
...
 
foo.ss
 
- include 'base.ss'
 
Файл foo.ss зависит от base.ss и при изменении base.ss нужно перекомпилить также foo.ss, но простой Watcher это не сделает, т.к. он не в курсе про граф отношений файлов - это знает только SS.
 
И конечно нужно доработать модули, без этого никак.			 Последний раз редактировалось kobezzza, 30.08.2014 в 13:36.
 |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 13:10
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| имхо, не нужно переизобретать стандарт Web Components |  
	
 Стандарта ещё нет толком и не факт, что он будет конфетой.
 
Я в своём проекте использую похожий подход, есть 
 
.styl
 
.b-button {
    @extends i-base;
    ...
}
.ss
 
- template bButton.prototype.tpl() extends iBase.prototype.tpl
   ...
 
.js
 
// ES6 торт :)
class bButton extends iBase {
   ...
}
А подключение того или иного модуля делается через b-button.json, где описаны зависимости и т.д.
 
{
	"block": "b-button",
	"extends": "i-base",
	"use": [
		"logic",
		"style",
		"tpl"
	]
}
Вызов такого блока в другом шаблоне выглядит примерно так:
 
/// директива bem - это часть фреймворка
- bem b-button value: '...', size: 'xxl', style: 'dark'
 
Дополнительная крутость в том, что SS поддерживает БЭМ и локализацию на уровне синтаксиса, а блок может быть полностью отрендерен как на сервере, так и на клиенте без внесения изменений в код. Восхваляемый всеми Jade не умеет и 1/10 от фич SS - это объективный факт.
 
Удобнее такого подхода за 7 лет проганья на JS я пока не видел  			 Последний раз редактировалось kobezzza, 30.08.2014 в 14:15.
 |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 13:23
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| Для меня в WebComponents самое ценное - это Shadow DOM, а остальное странные приблуды (те же кастомные элементы уже 100 лет как можно юзать, и более того их уже давно юзают, см гугло или яндекс карты). В лучшем случае эти модули можно будет использовать как пласт для более абcтрактных фреймворков, а не как конечный API. |  |  
	| 
		
	| 
			
			 
			
				30.08.2014, 16:36
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| Улучшил доку, добавил новые главы. |  |  
	| 
		
	| 
			
			 
			
				05.09.2014, 20:59
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| Одной из новых фич, которые войдут в будующий релиз Snakeskin будет новый вариант трансляции шаблонов - в императивный DOM, т.е. 
< span.foo
    hello world!
Превратится в
 
var _ = document.createElement('span');
_.setAttribute('class', 'foo');
_.appendChild(document.createTextNode('hello world'));
Такое расширение уже поддерживается движком Snakeskin, поэтому фича довольно легко реализуемая.			 Последний раз редактировалось kobezzza, 05.09.2014 в 21:17.
 |  |  
	| 
		
	| 
			
			 
			
				05.09.2014, 21:51
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| Также в SS 4.2 будут серьёзно доработаны модули, т.к. сейчас они сделаны лишь наполовину, например появится такая важная возможность, как 
- include 'foo.ss' as placehoder
- include 'foo.ss' as interface
 
Т.е. все шаблоны в подключаемом файле будут представлены либо как placeholder , либо как interface .
 
Также появится возможность задавать флаги компилятора для каждого файла отдельно, причём работать они будут по принципу наследования-переопределения родительских свойств (т.е. свойств файла родителя). |  |  |  |