Почему вы должны дать еще один шанс замыканию

Автор: admin от 6-04-2018, 10:25, посмотрело: 18

Привет, Хабр! Представляю вашему вниманию перевод статьи «Why you should give the Closure function another chance» автора Cristi Salcescu.

В javascript функции могут быть вложены внутри других функций.

Замыкание это когда внутренняя функция имеет доступ к переменным родительской функции, даже после того как родительская фунция выполнена.

Как вы видите, это становиться интерестным, когда внутренняя функция продолжает существовать в вызове родительской функции. Это произойдет при следующих ситуациях:


  • внутренняя функция используется как вызов для асинхронной задачи, такой как таймер, событие или AJAX.

  • родительская функция возвращает внутреннюю функцию или объект, хранящий внутреннюю функцию.

Категория: Операционные системы » Linux

 

Нативная валидация как фреймворк. Лекция в Яндексе

Автор: admin от 1-04-2018, 21:05, посмотрело: 40

Разработка форм — один из самых ответственных и сложных этапов создания веб-интерфейсов. Проект должен получить пользовательские данные, проверить их и дать пользователю обратную связь. Современные браузеры предоставляют разработчику встроенный API, позволяющий поэтапно реализовать валидацию данных методом progressive enhancement — от HTML/CSS к JS. Можно ли уже сегодня отказаться от тяжеловесных библиотек для валидации? Какие преимущества обеспечивает нативная валидация и насколько тернист путь её использования? В своём докладе на конференции FrontTalks технический директор LOVATA Павел Ловцевич рассмотрел основные аспекты работы с HTML5 Constraint Validation API.





— Всем привет, меня зовут Павел, я приехал из Минска. Я расскажу про валидацию веб-форм на основе нативных, встроенных в браузер, технологий.

Категория: Операционные системы » Android

 

Введение в модули Angular — корневой модуль (Root Module)

Автор: admin от 20-03-2018, 08:55, посмотрело: 37

Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. документации.



Вступление



@NgModule — декоратор, добавленный в Angular 2. Из официальной документации следует, что @NgModule определяет класс, как модуль Angular. Модули Angular помогают разбивать приложение на части (модули), которые взаимодействуют между собой и представляют в конечном итоге целостное приложение. Иными словами, модуль — это упаковка или инкапсуляция части функционала приложения. Модули можно проектировать с учетом многократного использования, т.е. не зависящие от конкретной реализации приложения.

Категория: Программирование

 

Как мы делаем AB-DOC

Автор: admin от 15-03-2018, 15:35, посмотрело: 34

В этой статье я хочу рассказать о нас и о том, как мы делаем AB-DOC — бессерверное веб-приложение, предоставляющее интерфейс к хранилищу Amazon S3. Подробнее про AB-DOC можно почитать в нашей предыдущей статье. Сейчас речь пойдет о технологических решениях, которые лежат в основе AB-DOC. Расскажу, как мы построили процесс разработки и развертывания.



Как мы делаем AB-DOC


На фото я за рабочим столом у себя дома, где я работаю 90% времени.

Категория: Программирование » Game Development

 

5 ошибок при разработке WebRTC звонков из браузера

Автор: admin от 15-03-2018, 15:35, посмотрело: 45

5 ошибок при разработке WebRTC звонков из браузера


WebRTC — не самая простая штука. Только недавно API стали поддерживать все основные браузеры, но с оговорками и «нюансами». Добавим к этому темное наследие VoIP телефонии в виде торчащего наружу SIP, борьбу между Ёжиком и SIP с применением oRTC, падающие при неудачном сочетании звезд браузеры — и получаем штуку, которую не в любом коворкинге за вечер запилишь. Цахи, бессменный автор bloggeek.me и старый телеком-разработчик, продолжает писать как все это правильно готовить. А мы в Voximplant адаптируем перевод для Хабра, основываясь на собственном многолетнем опыте голосовых и видеозвонков с участием браузеров.

Категория: Программирование » Game Development

 

Ох уж эти модальные окна или почему я полюбил render-функции в VueJs

Автор: admin от 2-03-2018, 16:10, посмотрело: 74

Привет всем!

Моя первая публикация прошла с неприятным осадком. Я обещал исправить это недоразумение и на ваш суд представляю свою первую статью-урок по VueJs. Надеюсь, она окажется полезной. Мыслей много, опыта тоже немало. Всю жизнь учусь по чужим статьям, урокам. Пришло время тоже делиться знаниями.

А будем мы творить модальные окна. Да опять они. Но не такие простые, как описаны в первой моей (не моей) публикации.



Много уже их создано для Vue. Пользовался всякими. И видимо, когда достигаешь какого-то определенного уровня владения инструментом (в данном случае Vue), сразу хочется сделать велосипед, но конечно со своими прибамбасами, типа, чтобы круче всех и т.д. И я не стал исключением из правил.



Из всех доступных модальных компонентов, использовал в основном этот — Vuedals.

Но решил я его проапгрейдить. В принципе от основы остался только EventBus и взаимодействие событий связанных с открытием-закрытием окон. Основной компонент переписан и стал оберткой-контейнером и добавлен новый компонент — само модальное окно.

Но обо всем по порядку. И статья получится очень немаленькая, кто осилит, тот красавчик :)

Категория: Программирование » Веб-разработка

 

Минимизируем код React Redux приложения

Автор: admin от 28-02-2018, 14:15, посмотрело: 49

Мне хотелось поделиться собственными размышлениями и способом построения структуры приложения с использованием react-redux. Так как я относительно недавно стал писать код на JS и поэтому не претендую на истину и на действительно верный способ разработки. Надеюсь эта статья поможет начинающим разработчикам писать меньше костылей которые я усердно плодил в своем проекте. Продвинутым гуру в JS я думаю не скажу ничего нового, но пишите в комментариях все что думаете по этому поводу.



Основные принципы и советы по JS




  • Не считаю что чем больше кода, тем лучше. Более короткий код, на мой взгляд, легче читается и выглядит более изящным. Если что то можно написать короче, при условии что оно работает таким же образом, то я делаю это.

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



Пример:



checkImg(user) {
 if (!user) return;
	...
 var src = user && user.profileImageURL;
	...
 return(
	...)
}

Категория: Программирование

 

Создание модального компонента с помощью Vue.js

Автор: admin от 16-02-2018, 22:00, посмотрело: 72

В этой статье вы узнаете, как создать многоразовый модальный компонент с использованием переходов и слотов.



Определение структуры шаблона



Начнем с определения нашего шаблона. Нам понадобится div для тени заднего плана, div, чтобы действовать как модальный блок и некоторые элементы, чтобы определить его структуру:



<template>
  <div class="modal-backdrop">
    <div class="modal">
      <slot name="header">
      </slot>

      <slot name="body">
      </slot>

      <slot name="footer">
      </slot>
    </div>
  </div>
</template>


Обратите внимание на использование слотов? Мы могли бы использовать реквизиты для создания заголовка, тела и нижнего колонтитула, но использование слотов позволит обеспечить большую гибкость.



Использование слотов позволяет нам легко использовать один и тот же модальный вид с различными типами содержимого тела. Мы можем использовать модальный, чтобы показать простой текст, но мы можем захотеть повторно использовать тот же модальный форма, чтобы отправить запрос. Хотя реквизита обычно достаточно для создания компонента, предоставление HTML через опору потребует от нас использовать его v-htmlдля рендеринга — что может привести к атакам XSS.



Здесь мы используем именованные слоты, чтобы мы могли использовать более одного слота в одном компоненте.

Категория: Операционные системы » Android

 

Мышление в стиле Ramda: первые шаги

Автор: admin от 13-02-2018, 08:35, посмотрело: 58

Недавно я познакомился с замечательной серией статей "Thinking in Ramda", которые проясняют на простых и ясных примерах способы написания кода в функциональном стиле с использованием библиотеки Ramda. Эти статьи показались мне настолько прекрасными, что я не смог удержаться от того, чтобы не перевести их на русский язык. Надеюсь, что в этом будет польза для многих людей :) Давайте начнём перевод с первой вступительной статьи.



1. Первые шаги

2. Сочетаем функции

3. Частичное применение (каррирование)

4. Декларативное программирование

5. Бесточечная нотация

6. Неизменяемость и объекты

7. Неизменяемость и массивы

8. Линзы

9. Заключение



Данный пост — это начало серии статей «Мышление в стиле Ramda» о функциональном программировании.



Я буду использовать библиотеку Ramda в этих статьях, хотя многие из обсуждаемых идей применимы также к множеству других библиотек, таких как Underscore и Lodash, а также к другим языкам программирования.



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

Категория: Операционные системы » Linux

 

Сделаем это по-быстрому: бот на Dialogflow и Voximplant

Автор: admin от 12-02-2018, 10:25, посмотрело: 131

Голосовые боты были и остаются полезной фичей для общения с клиентами. Потому что если что-то возможно автоматизировать, то надо срочно это делать. Подтверждение заказов и информация о них, запись обратной связи от клиентов, распознавание голоса и действия согласно тому, что распозналось и т.д. Кстати, о последнем – сделать бота с распознаванием в 2018 году стало еще проще: Voximplant отлично умеет распознавать и транскрибировать речь, а инструмент Dialogflow от “корпорации добра” хорошо анализирует текст. Ниже я покажу, как можно быстро собрать демо-бота, который расскажет о погоде в названном городе.



Сделаем это по-быстрому: бот на Dialogflow и Voximplant

Категория: Операционные системы » Android

 
Назад Вперед