Обновить
256K+

Веб-разработка *

Делаем веб лучше

472,87
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

ИИ продает пиццу или как Voximplant дружит с Dialogflow

Время на прочтение4 мин
Охват и читатели9.7K
Недавно мы презентовали решение для бизнеса, которое назвали Dialogflow Connector: связка из гугловского Dialogflow и нашего облака Voximplant. Коннектор может работать вместо оператора колл-центра и принимать сложные заказы. Это стало возможным, потому что Dialogflow позволяет уйти от сценария обычного IVR, где клиент вынужден называть слова из заданного набора, на который умеет реагировать интерактивное меню. Гугловская платформа может последовательно получать входные данные от клиента и собирать их воедино – например, чтобы сформировать заказ в интернет-магазине. Вероятно, вы уже слышали модное слово «slot filling», так вот это он и есть. Под катом вас ждут подробности, как мы делали бота для заказа пиццы – по аналогии вы можете запилить нечто похожее и возрадоваться, что времена лифта и «eleven» давно прошли…

Ревью кода: успешный опыт

Время на прочтение13 мин
Охват и читатели9.8K


В Интернете найдется масса информации по ревью кода:

  • как ревью чужого кода влияет на культуру компании
  • о регламентированных проверках безопасности
  • сокращенные руководства
  • длинные списки рекомендаций
  • ревью кода с межличностной точки зрения
  • зачем вообще нужен ревью кода
  • проверенные методы
  • еще про проверенные методы
  • статистика: насколько ревью кода помогает вылавливать баги
  • примеры ошибок, допускаемых при ревью кода

Да, конечно же, есть и книги на эту тему. Словом, в этой статье изложено, как ревью кода организован в компании Palantir. В тех организациях, чья культура не приемлет подобной коллегиальной оценки, возможно, полезно будет сначала ознакомиться с блестящим эссе Карла Уиджерса  (Karl E. Wiegers) «Ревью кода с человеческим лицом», а затем попытаться следовать этому руководству.

Этот текст взят из рекомендаций по повышению качества,  составленным на основе работы с Baseline, нашим инструментом для контроля качества кода на Java. В нем рассмотрены следующие темы:

  •         Зачем, что и когда мы пытаемся достичь при ревью кода
  •         Подготовка кода к ревью
  •         Выполнение ревью кода
  •         Примеры ревью кода

Переведено в Alconost
Читать дальше →

Возможно ли подружить Gitlab CI + Docker + Systemd

Время на прочтение3 мин
Охват и читатели6.3K
Микрозаметка о том, как запустить Docker с Systemd внутри Gitlab CI Runner'a. Возможно кому-то будет полезна, возможно кто-то решал уже подобную задачу другими способами и будет интересно если поделитесь в комментариях.
Читать дальше →

Patch me if you can: как мы отлаживаемся на production. Часть 1

Время на прочтение7 мин
Охват и читатели14K
UPD: готова вторая часть статьи.

Привет, Хабр! Меня зовут Александр Измайлов. В Badoo я возглавляю команду релиз-инженеров. Я знаю, что во многих компаниях можно присылать изменения кода специально обученному человеку, он их смотрит и добавляет куда следует (например, именно так происходит с кодом Git). А я хочу рассказать о том, как мы автоматизировали этот процесс у нас.

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


Изображение: источник
Читать дальше →

Год, проведённый с React: выводы и рекомендации

Время на прочтение8 мин
Охват и читатели18K
Обычно начало работы с новой технологией — это не так уж и просто. Новичок попадает в бескрайнее море учебных руководств и статей. При этом за каждым из подобных материалов стоит личное мнение его автора, а каждый автор заявляет, что именно его устами глаголет истина.

С точки зрения здравого смысла понятно, что далеко не все статьи, опубликованные в интернете, способны принести реальную пользу, поэтому тем, кто пытается освоить что-то новое, приходится оценивать публикации в попытке найти ответ на вопрос о том, стоит ли тратить на них своё время.



Прежде чем уйти с головой в учёбу, программисту необходимо понять основы интересующей его технологии. Затем нужно сформировать своё видение этой технологии, научиться мыслить её категориями. В результате, если некто начинает изучать React, сначала ему нужно научиться «думать на языке React». А уже после того, как он разовьёт в себе это качество, он сможет осмысленно знакомиться с мнениями других людей и, отбирая самое ценное, развиваться в избранном направлении.

Автор статьи, перевод которой мы публикуем сегодня, хочет поделиться со всеми желающими тем, что ему удалось узнать о React в ходе формирования собственного видения этой технологии, в ходе её изучения и накопления опыта в этой области. Здесь он расскажет о том, что ему удалось понять за год, работая React-программистом, занимаясь в свободное время собственными проектами и делясь своими идеями на одной JavaScript-конференции.
Читать дальше →

Как построить платформу для интеграций в SaaS-продукте: опыт облачной кассы Poster

Время на прочтение9 мин
Охват и читатели6.6K
Сыграем в стартап-бинго? Платформа, экосистема, интеграции, маркетплейс, апи, синергия. Бинго!

Тема внутренних маркетплейсов интегрированных решений очень горячая в продуктовом мире. Мы в Poster POS для себя поняли преимущества открытого API и построения экосистемы достаточно давно. Меня особенно впечатлила глава «The Platform» в книге «The Facebook Effect», которая укрепила понимание, что нужно идти в платформы. 3 года назад мы открыли API, 2 года назад запустили Marketplace, год назад запустили технологию, которая дает возможность бесшовно расширять функциональность основного продукта и влиять на его поведение, около 3 месяцев назад перезапустили каталог интеграций и начали активно маркетировать приложения партнеров.

Когда мы начинали, мне не хватало публичных кейсов на эту тему, руководства к действию. В статье я расскажу, как SaaS-сервису без каталога интеграций стать SaaS-сервисом с каталогом интеграций. Моя статья будет полезна продуктам, которые уже прошли стадию product-market fit и готовы начать строить свою экосистему.


Читать дальше →

Перенос веб-приложения с чистого JavaScript на Vue.js

Время на прочтение25 мин
Охват и читатели27K
Vue.js — это фреймворк, предназначенный для разработки веб-приложений. Он имеет систему реактивности, которая позволяет разработчику моделировать состояние приложения и управлять им. В результате, когда данные меняются, это автоматически отражается на пользовательском интерфейсе, при этом разработчику не нужно обращаться к DOM. Если вы создаёте приложения, пользуясь чистым JavaScript или jQuery, это значит, что вам приходится явно обращаться к элементам DOM и обновлять их для того, чтобы отразить в интерфейсе изменения состояния приложения, например, вывести на веб-страницу какие-то данные.


Читать дальше →

Вариативные веб шрифты

Время на прочтение4 мин
Охват и читатели24K


Прошла уже не одна неделя с You Gotta Love Frontend конференции, но еще не поздно пройтись по нескольким поднятым вопросам. Я думаю это будет ряд статеек на интересные мне темы, надеюсь, как и вам. Данный пост это перевод на статьи о вариативных шрифтов, используя которые Lea Verou показывала ряд трюков в цикле своих выступлений "Cекреты CSS". Учитывая, что это был первый раз когда я услышал о вариативных шрифтах, о трюках говорить пока рано :)


Вариативные шрифты это будущее веб типографии которые предлагают ряд возможностей управления отображением текста на экранах (размер, жирность, стиль). И все это при относительно малом размере файла. Пора сказать goodbye бесконечным дебатам на тему, сколько шрифтов вам необходимо подключить и дать возможность вашему контенту жить новой, прекрасной жизнью.

Читать дальше →

Мониторинг JavaScript-ошибок с помощью window.onerror

Время на прочтение7 мин
Охват и читатели26K
Материал, перевод которого мы сегодня публикуем, посвящён обработке JS-ошибок с помощью window.onerror. Это — особое событие браузера, которое вызывается при появлении неперехваченных ошибок. Здесь мы поговорим о том, как перехватывать ошибки с помощью обработчика события onerror, и о том, как отправлять сведения о них на сервер разработчика веб-сайта. Этот обработчик можно использовать в качестве основы собственной системы сбора и анализа информации об ошибках. Кроме того, он является одним из важнейших механизмов, применяемых в библиотеках, ориентированных на работу с ошибками, таких, как raven-js.

image
Читать дальше →

Нечестная игра, или как нас обманывают организаторы розыгрышей

Время на прочтение4 мин
Охват и читатели68K

Однажды, солнечным весенним утром, почитывая городской форум, я наткнулся на ссылку с простенькой игрой от известной торговой сети. Игра (акция), посвящённая чемпионату мира по футболу, представляла собой незамысловатое поле три на три, заполненное футбольными мячами. Кликая по мячу, мы открывали картинку с тем или иным товаром. При открытии трёх одинаковых картинок участнику гарантировалось бесплатное получение данного товара в одном из магазинов сети. Также под одним из мячей имелось изображение красной карточки, открытие которой означало конец игры.
Читать дальше →

Полезные методы массивов и объектов в JavaScript

Время на прочтение7 мин
Охват и читатели138K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что её идею подсказал ему один из выпусков подкаста Syntax FM, в котором давался обзор полезных методов объектов и массивов в JavaScript. Эти методы помогают разработчикам писать чистый и читабельный код. Их применение снижает потребность в сторонних библиотеках наподобие Lodash.

image
Читать дальше →

Объяснение протокола SRTP

Время на прочтение4 мин
Охват и читатели26K

Протокол SRTP (Secure Real-time Transport Protocol) это система безопасности, которая расширяет протокол RTP (Real-time Transport Protocol) набором защитных механизмов.

WebRTC использует DTLS-SRTP для шифрования, аутентификации и целостности сообщений, а также для защиты от атак повторного воспроизведения. Это дает конфиденциальность за счет шифрования RTP-нагрузки и проверки подлинности. SRTP это один из компонентов для безопасности, он очень удобен для разработчиков, которые ищут надежное и безопасное API. Но что такое SRTP и как оно работает?
Читать дальше →

Классовая сериализация на JavaScript с поддержкой циклических ссылок

Время на прочтение14 мин
Охват и читатели18K

Пролог


В настоящее время я занимаюсь разработкой редактора схем на Javascript, и в процессе этой работы столкнулся с проблемой, которой будет посвящена данная статья, а именно: сериализация и десериализация сложных объектов данных.


Не вдаваясь в детали проекта, отмечу, что по моей задумке схема представляет из себя массив элементов (вершин), унаследованных от базового класса. Соответственно, каждый дочерний класс реализует свою логику. Кроме того, вершины содержат ссылки друг на друга (стрелочки), которые также необходимо сохранять. Теоретически, вершины могут ссылаться сами на себя напрямую или через другие вершины. Стандартный JSON.stringify не способен сериализовать такой массив, поэтому мной было принято решение сделать собственный сериализатор, решающий две описанные проблемы:


  1. Возможность сохранять информацию о классе в процессе сериализации и восстанавливать ее при десериализации.
  2. Возможность сохранять и восстанавливать ссылки на объекты, в т.ч. циклические.

Подробнее о постановке задачи и ее решении под катом.

Читать дальше →

Ближайшие события

CSRF-уязвимости все еще актуальны

Время на прочтение14 мин
Охват и читатели101K
CSRF (Сross Site Request Forgery) в переводе на русский — это подделка межсайтовых запросов. Михаил Егоров (0ang3el) в своем докладе на Highload++ 2017 рассказал о CSRF-уязвимостях, о том, какие обычно используются механизмы защиты, а также как их все равно можно обойти. А в конце вывел ряд советов о том, как правильно защищаться от CSRF-атак. Под катом расшифровка этого выступления.


О спикере: Михаил Егоров работает в компании Ingram Micro Cloud и занимается Application security. В свободное время Михаил занимается поиском уязвимостей и Bug hunting и выступает на security-конференциях

Дисклаймер: приведенная информация является сугубо мнением автора, все совпадения случайны.


В том, что CSRF-атаки работают виноват этот Cookie-монстр. Дело в том, что многие веб-приложения используют куки (здесь и далее считаем уместным называть cookies по-русски) для управления сессией пользователя. Браузер устроен так, что, если у него есть куки пользователя для данного домена и пути, он их автоматически отправляет вместе с HTTP-запросом.

Insider Dev Tour: прямая трансляция

Время на прочтение1 мин
Охват и читатели2.1K
Всем привет! Сегодня в 10:00 мы начинаем прямую трансляцию конференции Insider Dev Tour. Для вас выступят наши коллеги из Редмонда и расскажут о самых новых технологиях компании в областях разработки под Windows, веб-разработки, машинного обучения и смешанной реальности. Присоединяйтесь к Live под катом!

Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №317 (28 мая — 3 июня 2018)

Время на прочтение3 мин
Охват и читатели16K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →

DotVVM — Коммуникация между клиентом и сервером

Время на прочтение3 мин
Охват и читатели3.1K
Это вторая статья из серии посвященная DotVVM. Первая статья была скорее ознакомительной. Я старался на простом примере показать как работать в DotVVM на базовом уровне. Статья, по сути, не затрагивала самого важного: как это работает.

Этому вопросу а также оптимизации трафика посвящена эта статья.
Читать дальше →

Видео с Badoo Techleads Meetup #3: о делегировании, онбординге, бизнесе и собеседованиях в IT

Время на прочтение2 мин
Охват и читатели10K


Привет, Хабр!

Публикуем видеоотчет о третьем Badoo Techleads Meetup — встрече тимлидов, руководителей отделов и CTO. Спасибо спикерам, гостям и зрителям трансляции!

Под катом — слайды и записи докладов о построении бизнес-ориентированной разработки (ДомКлик), онбординге и делегировании (Badoo), процессе собеседования (Авито), а также запись панельной дискуссии о собеседовании разработчиков с участием представителей Яндекса, Авито, Badoo и Ins Ecosystem.

C DevTools на Эльбрус: яркие доклады HolyJS 2018 Piter

Время на прочтение7 мин
Охват и читатели7.7K


Отдышавшись после петербургской HolyJS, мы прочитали все зрительские отзывы — и узнали, какие доклады понравились зрителям сильнее всего. А благодаря тому, что во время конференции шла YouTube-трансляция первого зала, часть этих «фаворитов» уже доступна для всех.

Поэтому рассказать вам о прошедшей конференции мы решили так: описать несколько полюбившихся зрителям докладов (приведя для примера цитаты из них), а в тех случаях, когда доклад попал в открытую трансляцию, сразу давать ссылку с таймкодом. Можно и получить общее впечатление о мероприятии, и лично приобщиться к рассказанному там.
Читать дальше →

Ненужные HTTP-заголовки

Время на прочтение7 мин
Охват и читатели47K
Заголовки HTTP важны для контроля, как кэш и браузеры обрабатывают ваш контент. Но многие из них используются неправильно или бессмысленно, затрачивая лишние ресурсы в критический момент загрузки страницы, и они могут работать не так, как вы думаете. В серии статей о лучших практиках сначала рассмотрим ненужные заголовки.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В то же время есть много чрезвычайно популярных заголовков, которые вообще не новые и не очень полезные. Мы можем это доказать с помощью HTTP Archive, проекта под управлением Google и спонсируемого Fastly, который каждый месяц при помощи WebPageTest скачивает 500 000 сайтов и выкладывает результаты в BigQuery.
Читать дальше →