набор тестов не имеет доступа к приватным функциям, спрятанным в замыкания, а значит и не может их протестировать
я всегда думал, что приватное состояние как раз не нужно использовать в тестах. Иначе придётся переписывать тесты каждый раз когда мы меняем внутреннюю реализацию тестируемого объекта. Разве нет?
Прогонять перед людьми со стороны очень важно, согласен. И чем раньше вы их подключите, тем лучше. Если есть возможность на втором прогоне уже рассказать кому-то, лучше так и сделать.
Мы собираем докладчиков перед митапом. Они рассказывают презентации друг другу, потом все обсуждают, дают советы. Улучшения после таких сессий очень заметны.
Монитор с текущим слайдом помогает, вы правы. Хотя ещё одна распространённая ошибка — постоянно смотреть на слайды (в монитор или проецируемые). Я вот до сих пор иногда этим страдаю.
Всё субъективно, конечно. У меня например, если знаю тему, нет проблемы сказать слишком мало. Скорее наоборот, я легко могу забыться и уйти в дебри.
Тут помогает таймер и конспект. Первый нужен, чтобы понять в какой части вы начали говорить слишком мало/слишком много. А второй покажет, что именно вы поменяли в речи.
distribution — это процесс распределения содержимого хоста между insetion points. Распределение происходит с помощью атрибута select тега <content>. Как в этом примере (для просмотра нужен Chrome Canary со включенными флагами).
importNode() клонирует и «выполняет» разметку (начинает загружать картинки итд). cloneNode() только клонирует, «выполнение» происходит при вставке клона в документ.
Когда что использовать зависит от ситуации. При прочих равных, я считаю, importNode() использовать логичнее.
Новый стандарт возможно изменит подходы к написанию web-приложений на клиенте. Это основная мысль статьи, отсюда заголовок.
Переиспользовать вёрстку полноценно не можем. Нет механизмов инкапсуляции, ни стилей, ни фрагментов вёрстки.
Шаблоны, в том виде в котором они есть, это хак. Представьте, что в JS вы вместо того, чтобы использовать функции, вставляете их содержимое везде, где должны быть вызовы функций. Это примерно то что происходит сейчас с HTML и CSS.
Я не говорил, что без кода логики. Логика на JS, с использованием DOM. Не нужно эскейпить, потому что setAttribute(), textContent и им подобные сделают это за вас.
DOM API это и есть JS… Это интерфейсы вроде HTMLElement, методы вроде appendChild() и cloneNode(), атрибуты вроде innerHTML. Вы что-то другое имеете ввиду под DOM API?
Что вы имеете ввиду, говоря о «репозитории для web components»? Polymer разрабатывает элементы на основе web components. Та же команда, занимается написанием полифилов, которые имитируют части стандарта: custom elements, shadow dom и т.д.
(Ссылка не распозналась из мобильного приложения)
Все материалы и ссылки к докладу можно найти здесь: http://andreysalomatin.me/kak-pieriestat'-otlazhivat'-asinkhronnyie-vyzovy-i-nachat'-zhit'/
я всегда думал, что приватное состояние как раз не нужно использовать в тестах. Иначе придётся переписывать тесты каждый раз когда мы меняем внутреннюю реализацию тестируемого объекта. Разве нет?
Мы собираем докладчиков перед митапом. Они рассказывают презентации друг другу, потом все обсуждают, дают советы. Улучшения после таких сессий очень заметны.
Монитор с текущим слайдом помогает, вы правы. Хотя ещё одна распространённая ошибка — постоянно смотреть на слайды (в монитор или проецируемые). Я вот до сих пор иногда этим страдаю.
Спасибо за совет!
Тут помогает таймер и конспект. Первый нужен, чтобы понять в какой части вы начали говорить слишком мало/слишком много. А второй покажет, что именно вы поменяли в речи.
Запись будет доступна через какое-то время после митапа.
select
тега<content>
. Как в этом примере (для просмотра нужен Chrome Canary со включенными флагами).Допустим хост выглядит так:
Тогда мы можем проецировать не весь контент, а его части, в разные insertion points, например:
importNode()
клонирует и «выполняет» разметку (начинает загружать картинки итд).cloneNode()
только клонирует, «выполнение» происходит при вставке клона в документ.Когда что использовать зависит от ситуации. При прочих равных, я считаю,
importNode()
использовать логичнее.Тег
<content>
создаёт insertion point, куда проецируется содержимое хоста.Кое-где в W3C драфте также есть упоминания.
<menu>
буду знать, спасибо. Хотя он кажется не особо используется.Переиспользовать вёрстку полноценно не можем. Нет механизмов инкапсуляции, ни стилей, ни фрагментов вёрстки.
Шаблоны, в том виде в котором они есть, это хак. Представьте, что в JS вы вместо того, чтобы использовать функции, вставляете их содержимое везде, где должны быть вызовы функций. Это примерно то что происходит сейчас с HTML и CSS.