- PVSM.RU - https://www.pvsm.ru -
В апреле в Минске прошла большая IT-конференция United Dev Conf, организованная Frontend Dev Conf, Highload Dev Conf и Mobicode.
Нам предложили вдохновится опытом, найти новых друзей и бизнес-партнеров, узнать последние новости и тенденции, и просто насладится общением в кругу единомышленников. Как можно было отказаться от такого предложения? Поэтому мы отправились в столицу нашего северного соседа.
В Минске нас встретила хмурая погода и строгие пограничники. Закончив с формальностями, мы направились в самый центр города, к месту проведения конференции. Впереди нас ждали два дня интересных докладов и общения.
Конференция проходила в четыре потока: Frontend, Highload, Mobile и Sales. Её посетили около 700 участников, и 40 докладчиков делились своим опытом. А в перерывах компании-спонсоры разыгрывали квадрокоптеры, куда ж без них на IT-ивенте.
Нам, как фронтенд-разработчикам, в первую очередь был интересен Frontend-поток, собственно его мы и посетили в эти два дня. Все доклады были интересными, но мы выбрали самые интересные, на наш взгляд.
С развитием технологий в вебе усложнились и проекты. Теперь, чтобы запустить проект нужно установить кучу зависимостей и ждать, пока соберется билд. Чтобы приложения были надежными и проще было разрабатывать без ошибок, код нужно тестировать. И наконец, для того, чтобы доставить наш проект пользователям, нужно выполнить все вышеперечисленные шаги и поместить код на сервер. Всё это рутинные операции, которые упрощаются благодаря системам непрерывной интеграции и доставки.
Константин начал с рассказа о былых временах, когда мы подключались к серверу по FTP, копировали туда файлы или правили их там при необходимости. Затем докладчик затронул проблемы работы в команде, а именно слияние результатов работы, когда ваше изменение порождает баги в фиче коллеги, и наоборот. Он поделился такими популярными способами решения этих проблем, как глобальная конфигурация анализаторов кода для проектов и написание тестов. Все проверки необходимо проводить перед тем, как коммитить код, в чем вам может помочь сам Git посредством гит-хуков.
Но лучше всего весь процесс сборки и тестирования доверить системам непрерывной интеграции. Это позволить не нагружать рабочую машину и держать все артефакты в одном месте. В докладе были отмечены такие системы, как Travis, Jenkins, Concourse.ci, Circleci и Teamcity. Все они имеют свои достоинства и недостатки. Например, Travis, несмотря на появившуюся матрицу сборок, позволяющую разбить процесс на этапы, всё равно имеет менее читаемые логи, чем Jenkins, но последний имеет куда менее удобный интерфейс.
В заключение Константин отметил достоинства и недостатки использования систем непрерывной интеграции. К положительным аспектам можно отнести:
Вместе с тем, CI имеют ряд недостатков:
Доклады Дениса всегда затрагивают интересные темы, и в этот раз он поднял очень интересную, и между тем, важную тему: почему JS-разработчикам не доверяют писать ПО для космических аппаратов и авиации? А также предложил порассуждать, как эту ситуацию исправить.
Докладчик предположил, что в будущем все интерфейсы будут писаться на HTML/CSS/JS, потому что это, на данный момент, лучшая связка для разработки интерфейсов. При этом имеет ряд как преимуществ, так и недостатков. К аргументам «за» можно отнести: доступность по сети, возможность простого обновления и шаринга, надежность и достаточно большой рынок компонентов. Однако существует ряд серьезных недостатков, таких как невысокая производительность, риск утечки памяти и т.д.
Являясь фронтенд-разработчиками, мы бы никогда не захотели летать на самолетах, которые работают под управлением JavaScript. А всё потому, что в нашей работе очень маленькая цена ошибки, что позволяет нам писать менее безопасный и устойчивый код.
Тем не менее, если мы хотим в будущем захватить эту нишу, нам необходимо ввести новые стандарты для написания кода. Денис посмотрел правила, которыми руководствуются в NASA и Jet Propulsion Laboratory, когда программируют свои космические аппараты, и применил их в отношении JS.
Джеймс прилетел с туманного Альбиона для того, чтобы поделиться знаниями о новых возможностях в области авторизации на сайтах.
С момента появления форм логина, в интерфейсе изменилось не многое: мы всё также имеем поля, по которым можем определить, кто перед нами. Но браузеры начали помогать пользователям взаимодействовать с этими формами, сохраняя логины/пароли, автоматически заполняя формы и синхронизируя наши ключи между устройствами. Также сторонние сервисы авторизации и социальные сети упростили нам жизнь при авторизации в новой или привычной для нас системе.
The Credential Management API — это новая ступень в развитии браузерной помощи заполнения форм логина. Он предоставляет две ключевые возможности:
Всё это позволяет реализовать на вашем сайте такую последовательность:
Это безопасная технология: обязательным условием работы API является защищенное соединение. Работает он только в пределах одного домена, пользовательские данные не доступны на странице, они шифруются во внутреннем хранилище браузера. Так что даже если злоумышленник получит их, воспользоваться ими он не сможет.
Звучит интересно, но на деле это всё ещё экспериментальный API. Спецификация к нему находится на стадии черновика, что добавляет риск кардинального изменения API, а единственный браузер, который его поддерживает — Google Chrome. Также существует ограничение: работает только с Fetch API.
Впрочем, несмотря на очень ограниченную поддержку и начальную стадию спецификации, вы можете порадовать ваших Chrome-пользователей новой удобной возможностью. Ждем, когда подтянутся остальные разработчики браузеров.
Автор: NIX Solutions
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/257224
Ссылки в тексте:
[1] слайды: https://www.slideshare.net/MobicodeConf/konstantin-krivlenia-continuous-integration-for-frontend
[2] слайды: https://www.slideshare.net/MobicodeConf/denis-radin-applying-nasa-coding-guidelines-to-javascript-or-airspace-is-closer-than-you-may-think
[3] слайды: https://www.slideshare.net/MobicodeConf/james-allardice-building-a-better-login-with-the-credential-management-api
[4] Источник: https://habrahabr.ru/post/330312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.