Category: Разное

29
Сен
2021

📖 ТОП-7 проверенных временем книг по AR/VR

Технологии AR/VR считаются относительно новым направлением, поэтому найти по ним толковую учебную литературу непросто. Читайте подборку проверенных временем книг, получивших высокую оценку читателей и критиков.

Обзор актуальных книг о технологиях VR/AR также доступен в «Библиотеке программиста».

Критерии отбора

Многие авторы делают обзорные эссе по виртуальной реальности, которые дают лишь общее впечатление о сфере и никакой конкретики. Другие слишком концентрируются на конкретных инструментах, даже не пытаясь вывести общие принципы, а третьих и вовсе заносит в футуристику. Если вы хотите получить базовые знания и практические навыки в разработке и применении технологий VR/AR, приходится искать хорошие книги среди большого количества малоинформативных. Чтобы упростить вам задачу, мы выбрали несколько изданий с учетом их цитируемости, авторитетности авторов и оценок читателей.

1. The VR Book: Human-Centered Design for Virtual Reality (2015)


Издание: The VR Book: Human-Centered Design for Virtual Reality, Jason Jerald, Morgan & Claypool Publishers, 2015

Описание: В этой книге вопросы разработки VR-приложений обсуждаются с акцентом на человеческий фактор. Она предназначена для VR-дизайнеров, а также для менеджеров, программистов, художников, психологов, инженеров, студентов, преподавателей и профессионалов в области UX/UI.

Об авторе: Джейсон Джеральд, доктор философии, соучредитель и главный консультант NextGen Interactions. Он также является главным научным сотрудником Digital ArtForms и приглашенным адъюнкт-профессором в Технологическом институте Уотерфорда, входит в состав консультативных советов нескольких специализирующихся на технологиях VR компаний, а также координирует Research Triangle Park-VR Meetup.

Автор книги создает системы и приложения виртуальной реальности около 20 лет. Он участвовал более чем в 60 проектах и более чем в 30 организациях, включая Valve, Oculus, Virtuix, Sixense, NASA, General Motors, Raytheon, Lockheed Martin, трех национальных лабораториях США и пяти университетах.

Отзывы критиков:

Исчерпывающее руководство по созданию взаимодействия с пользователем виртуальной реальности.
Амир Рубин, генеральный директор Sixense.
Краткое руководство обеспечивает быстрый доступ со ссылками на прошлые страницы для дальнейшего понимания.
Крис Пущак, креативный директор SymbioVR.

Оценка читателей: 4,9 из 5 на Amazon и 4,16 из 5 на Goodreads.

2. Learning Virtual Reality: Developing Immersive Experiences and Applications (2015)


Издание: Learning Virtual Reality: Developing Immersive Experiences and Applications for Desktop, Web, and Mobile, Tony Parisi, O’Reilly Media, 2015

Описание: Это практическое руководство по основам разработки VR для настольных, мобильных и браузерных приложений. Читатели познакомятся с тремя популярными платформами (Oculus VR, Gear VR и Cardboard VR), с несколькими средами разработки VR, а также с инструментами и методами программирования.

Об авторе: Тони Паризи – предприниматель и архитектор программного обеспечения. Тони является пионером в области виртуальной реальности, соавтором стандартов VRML и X3D ISO для сетевой 3D-графики и считается новатором в области 3D-технологии. Автор этой книги – соорганизатор встреч WebGL и WebVR в Сан-Франциско, а также член рабочей группы Khronos COLLADA, создающей glTF – новый стандарт формата файлов для трехмерных веб-приложений и мобильных приложений.

Оценка читателей: 4,1 из 5 на Amazon.

3. Oculus Rift in Action (2015)


Издание: Oculus Rift in Action, Bradley Austin Davis, Karen Bryla, Phillips Alexander Benton, Manning Publications, 2015

Описание: «Oculus Rift в действии» научит вас создавать 3D-игры и другие приложения виртуальной реальности для Oculus Rift. Вы изучите оборудование Rift на примерах реальных проектов, использующих Oculus SDK и графический движок Unity 3D. Попутно вы получите практическое руководство по использованию датчики Rift.

Об авторах: Брэд Дэвис – разработчик программного обеспечения для High Fidelity, работающего над социальными VR-приложениями с открытым исходным кодом стартапа. Он является активным участником форумов разработчиков Oculus VR и поддерживает набор примеров приложений Rift на Github.

Карен Брыла – внештатный технический писатель и разработчик.

Филлипс Александр Бентон – младший преподаватель кафедры продвинутой трехмерной графики в Кембриджском университете и старший инженер-программист в Google.

Отзывы критиков:

Вы захотите, чтобы эта книга всегда была под рукой при работе с Oculus Rift.
Хосе Сан Леандро, ACM SL.
Лучший способ глубже погрузиться в виртуальную реальность.
Джордж Фриман, основатель Mazepuncher LLC.

Оценка читателей: 4 из 5 на Amazon.

4. Виртуальная реальность в Unity (2016)


Издание: Виртуальная реальность в Unity, Линовес Джонатан, ДМК-Пресс, 2016

Описание: Используя практический и проектный подход, эта книга познакомит вас с особенностями разработки виртуальной реальности в Unity. Вы узнаете, как использовать Unity для разработки приложений виртуальной реальности для устройств, вроде Oculus Rift или Google Cardboard.

Об авторе: Джонатан Линоус – владелец консалтинговой фирмы Parkerhill Reality Labs. Он настоящий энтузиаст виртуальной реальности и 3D-графики, веб-разработчик полного цикла, инженер-программист, успешный предприниматель и преподаватель. Автор книги получил степень по изящным искусствам в Сиракузском университете и степень магистра в MIT Media Lab.

Оценка читателей: 7.5 из 10 на Лабиринте.

5. Augmented Reality: Principles and Practice (2016)


Издание: Augmented Reality: Principles and Practice, Dieter Schmalstieg, Tobias Hollerer, Addison-Wesley Professional, 2016

Описание: Первое исчерпывающее, последовательное и авторитетное руководство по дополненной реальности объединяет ключевые достижения в этой области. Оно включает многочисленные тематические исследования, а также практическое руководство по разработке Android AR с помощью Qualcomm QCAR. Исследователи-новаторы Дитер Шмальштиг и Тобиас Хёллерер тщательно соблюдают баланс между принципами и практикой, освещая AR с технической, методологической и пользовательской точек зрения.

Об авторах: Дитер Шмальштиг является профессором и руководителем Института компьютерной графики и зрения Технологического университета Граца (TUG) в Австрии. Его исследовательские интересы – дополненная и виртуальная реальность, графика в реальном времени, трехмерные пользовательские интерфейсы и визуализация. Он также является автором и соавтором более двухсот рецензируемых научных публикаций, младшим редактором журнала IEEE Transactions, членом редакционного совета по компьютерам и графике в Springer Virtual Reality, членом руководящего комитета Международного симпозиума IEEE по смешанной и дополненной реальности, председателем рабочей группы EUROGRAPHICS по виртуальным средам (1999-2010), советником Центра компетенции K-Plus по виртуальной реальности и визуализации в Вене и членом Австрийской академии наук.

Тобиас Хеллерер – профессор информатики в Калифорнийском университете в Санта-Барбаре, где он возглавляет лабораторию «Four Eyes», проводя исследования по визуализации, взаимодействию и инновационным интерфейсам. Доктор Хеллерер имеет диплом по информатике Берлинского технического университета, а также степень магистра и доктора философии по информатике Колумбийского университета. Он получил награду CAREER от Национального научного фонда США за свою работу над «Anywhere Augmentation». Доктор Хеллерер является автором более ста пятидесяти рецензируемых журналов и публикаций на конференциях в области дополненной и виртуальной реальности.

Отзывы критиков:

Это важная книга для всех, кто интересуется дополненной реальностью (AR), написанная двумя ведущими пионерами отрасли. Она обеспечивает отличную основу для быстрорастущей области AR, как для тех, кто уже работает в этой области, так и для тех, кто просто хочет глубже понять технологию.
Доктор Марк Биллингхерст, Университет Южной Австралии.
Сначала я думал, что эта книга обеспечивает очень прочную основу для любого новичка в области дополненной реальности (AR), которому необходимо изучить все аспекты AR, но затем я понял, что не могу перестать копаться и учиться… она идет глубже, чем многие книг по дополненной реальности, которые я видел за последнее десятилетие!
Ори Инбар, исполнительный директор Augmented World Expo, генеральный директор и основатель AugmentedReality.org.

Оценка читателей: 4,5 из 5 на Amazon.

6. Designing Virtual Worlds (2003)


Издание: Designing Virtual Worlds, Richard A. Bartle, New Riders, 2003

Описание: Designing Virtual Worlds – это наиболее полное на сегодняшний день описание дизайна виртуального мира от одного из настоящих пионеров и самых востребованных консультантов по дизайну. Это потрясающий по интеллектуальному размаху образец дизайна VW, охватывающий литературные, экономические, социологические, психологические, физические, технологические и этические основы дизайна.

Об авторе: Ричард Аллан Бартл, доктор философии, стал соавтором первого виртуального мира MUD («Многопользовательское подземелье») в 1978 году. В прошлом преподаватель технологий искусственного интеллекта в университете, он является влиятельным писателем по всем аспектам проектирования и разработки виртуальных миров. В качестве независимого консультанта он работал почти со всеми крупными игровыми онлайн-компаниями в Великобритании и США за последние 20 лет.

Оценка читателей: 4,3 из 5 на Amazon.

7. Virtual & Augmented Reality for Dummies


Издание: Virtual & Augmented Reality for Dummies, Paul Mealy, For Dummies, 2018

Описание: Простой для понимания учебник по виртуальной и дополненной реальности. Эта книга, идеально подходит как для потенциальных создателей контента, так и для потребителей.

Об авторе: Пол Мили работает с виртуальной реальностью с момента выпуска Oculus Rift DK1 в 2013 году. Он проектировал и разрабатывал приложения для Oculus Rift, HTC Vive, Samsung Gear VR, Windows Mixed Reality, Google Daydream и Google Cardboard. Пол работал с разнообразным оборудованием и технологиями дополненной реальности, включая Microsoft HoloLens, ARKit для iOS, ARCore для Android и Vuforia.

Оценка читателей: 4,2 из 5 на Amazon.

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

Заключение

Будучи написанными профессиональными авторами, хорошо разбирающимися в вопросе и имеющими практический опыт в работе над VR/AR проектами, эти книги получили высокие оценки читателей и критиков. Мы можем смело рекомендовать их к прочтению всем, кто изучает разработку решений в области дополненной и виртуальной реальности.

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

***

Если вы всерьез решили углубиться в профессию и стать разработчиком VR/AR, стоит обратить внимание на «Факультет разработки VR/AR» образовательной онлайн-платформы GeekBrains. Там вы научитесь делать игры и мобильные приложения, а также получите востребованную специальность и возможность работать на фрилансе или в крупной IT-компании. На факультете GeekBrains изучают язык C# и движок Unity, а также на практике учат создавать продукты с VR/AR-технологиями – выпускники смогут добавить в портфолио 14 реализованных проектов.

27
Сен
2021

🎥 ТОП-10 фильмов и сериалов последних лет про современные технологии

Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших з…

24
Сен
2021

📖 ТОП-10 актуальных книг о виртуальной и дополненной реальности: от новичка до профессионала

Чтение специальной литературы помогает создателям контента и разработчикам VR/AR лучше разобраться в особенностях иммерсивных технологий. Мы собрали список актуальных книг о виртуальной и дополненной реальности, которые подойдут как новичкам так и профессионалам.

Виртуальная и дополненная реальность – область довольно новая и в то же время одна из наиболее динамично развивающихся. Это сочетание обуславливает потребность в постоянном обучении и актуализации знаний как для начинающих, так и для опытных специалистов. Книги из нашего списка помогут вам лучше разобраться в технологиях VR/AR, а также получить необходимые знания и практические навыки.

1. Augmented Reality and Virtual Reality: New Trends in Immersive Technology (2021)


Авторы: M. Claudia tom Dieck, Timothy H. Jung, Sandra M. C. Loureiro.

Описание: Augmented Reality and Virtual Reality, Springer, 1-ое издание, 5 мая 2021.

Содержание: Книга представляет собой сборник исследовательских работ видных ученых в области дополненной и виртуальной реальности. Она охватывает самые важные в этой сфере темы и представляет интерес для теоретиков и практиков.

Чем может быть полезна: В книге содержатся результаты последних исследований в области иммерсивных технологий, представленные на 6-й Международной конференции по дополненной и виртуальной реальности, которая состоялась в 2020 году. Читатели получат исчерпывающие сведения о современных достижениях в области виртуальной и дополненной реальности, а также о применении этих технологий в маркетинге, образовании, здравоохранении, туризме, индустрии развлечений, розничной торговле, игровой индустрии и других отраслях человеческой деятельности.

2. Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality (2021)


Автор: Amit Tyagi.

Издание: Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality, Engineering Science Reference, 7 декабря 2020.

Описание: Эта книга затрагивает множество вариантов использования дополненной и виртуальной реальности в различных отраслях, а также обсуждает важность основных терминов, проблемы и возможности для исследователей или разработчиков.

Чем может быть полезна: Книга содержит сборник бизнес-примеров, охватывающих множество тем, связанных с VR/AR и смешанной реальностью (MR), включая их использование в приложениях.

3. Unity 2020 By Example: A project-based guide to building 2D, 3D, augmented reality, and virtual reality games from scratch


Автор: Robert Wells.

Издание: Unity 2020 By Example, 3 издание, 30 сентября 2020.

Описание: Изучите разработку игр Unity на C# на примере практических проектов, от создания простой 2D-игры до использования возможностей AR/VR и технологий машинного обучения простым.

Чем может быть полезна: Третье издание этой книги по Unity обновлено с учетом новых функций Unity 2020 и современных методов разработки игр. Она содержит:

  • высокоуровневый обзор игрового движка Unity;
  • практики для реализации игровой анимации, игровой физики, шейдеров и эффектов;
  • описание элементов управления плеером и функциями ввода для игр на Unity;
  • основы разработки игр, включая GameObjects, компоненты и сцены;
  • методы искусственного интеллекта, такие как поиск пути, конечные автоматы и машинное обучение с помощью ML-агентов Unity;
  • UnityVR и AR Foundation.

Книга будет полезна разработчикам, которые хотят изучить новые функции Unity 2020, включая возможности применения технологий VR/AR. Требуется базовое понимание программирования на C#.

4. Metaverse Charlie Fink’s (2018)


Автор: Charlie Fink.

Издание: Metaverse Charlie Fink, Cool Blue Media, 1-ое издание, 1 января 2018.

Описание: Книга написана бывшим руководителем Disney, AOL и AG Interactive, который теперь пишет для Forbes о VR, AR и новых медиа. В ней объясняются все аспекты того, что Финк называет метавселенной, от терминологии до технологий и продуктов.


Чем может быть полезна: Автор и его сотрудники создали руководство по виртуальной и дополненной реальности, которое привлекает профессионалов, а также доступно для не разбирающихся в технике читателей и неизменно развлекательно для всех. В качестве бонуса – это книга дополненной реальности, которую вы можете использовать вместе с бесплатным приложением для просмотра оригинальных анимаций.

5. Advances in Usability and User Experience (2019)


Авторы: Tareq Ahram, Christianne Falcão.

Издание: Advances in Usability and User Experience, Springer, 1-ое издание, 1 июля 2020.

Описание: Материалы международных конференций AHFE 2019 по юзабилити и опыту пользователей, человеческому фактору и вспомогательным технологиям, 24-28 июля 2019 г., Вашингтон, округ Колумбия, США.

Чем может быть полезна: В этой книге много внимания уделяется использованию иммерсивных технологий для разработки вспомогательных устройств, взаимодействия человека с компьютером, а также поиску эффективных подходов к улучшению взаимодействия с пользователем. Книга охватывает моделирование, а также инновационные концепции дизайна с особым упором на дизайн, ориентированный на пользователя, и дизайн для определенных групп населения, особенно для пожилых людей. Дополнительные темы включают виртуальную реальность, цифровую среду, игры, эвристическую оценку и формы обратной связи с интерфейсом устройства.

6. Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing (2019)


Авторы: Erin Pangilinan, Steve Lukas, Vasanth Mohan.

Издание: Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing, O’Reilly Media, 1-ое издание, 30 апреля 2019.

Описание: В этой книге Эрин Пангилинан, Стив Лукас и Васант Мохан исследуют конвейер разработки AR и VR и предлагают практические задания, которые помогут вам отточить навыки.

Чем может быть полезна: С помощью пошаговых руководств вы узнаете, как создавать приложения и получите опыт, основанный на теории и поддерживаемый отраслевыми сценариями использования. В каждом разделе книги к авторам присоединяются известные специалисты, в том числе Тимони Уэст, Виктор Присакариу и Николай Мелоу, чтобы объяснить лежащие в основе пространственных вычислений технологии.

Книга состоит из трех частей:

  • Искусство и дизайн: взаимодействие пространственных вычислений и дизайна, ориентированное на человека взаимодействие и сенсорный дизайн, а также инструменты создания контента для цифрового искусства.
  • Техническая разработка: изучение различий между ARKit, ARCore и системами на основе пространственного картографирования, подходы к кроссплатформенной разработке на головных дисплеях
  • Примеры использования: узнайте, как визуализация данных, машинное обучение и искусственный интеллект работают в пространственных вычислениях.

7. Unreal Engine VR Cookbook: Developing Virtual Reality with UE4 (2017)


Автор: Mitch McCaffrey.

Издание: Unreal Engine VR Cookbook: Developing Virtual Reality with UE4 (Game Design), Addison-Wesley Professional, 1-ое издание, 6 февраля 2017.

Описание: Всемирно известный разработчик и инструктор виртуальной реальности Митч МакКэффри предлагает проверенные рецепты преодоления множества сложных проблем разработки. Unreal Engine VR Cookbook – полное и авторитетное руководство по созданию потрясающих приложений для любого VR-оборудования, совместимого с Unreal Engine 4.

Чем может быть полезна: Рецепты Маккафри содержат пошаговые инструкции, а также дают краткие объяснения лежащей в основе теории и математики. Книга содержит:

  • объяснение основных концепций и терминологии VR;
  • разъяснение логики VR с помощью визуальных сценариев Blueprint;
  • примеры базовых проектов VR, реализованных с помощью Oculus Rift, HTC Vive, Gear VR, Google VR, PSVR и других сред;
  • сведения об отслеживании взаимодействий и телепортации;
  • разъяснение работы с UMG и 2D UI;
  • сведения о реализации обратной кинематики персонажа (IK) для головы и рук;
  • сведения об эффективном взаимодействии с контроллером движения;
  • сведения об оптимизации приложений VR;
  • информацию о редакторе VR, ссылки на ресурсы сообщества и многое другое.

8. Virtual Reality and the Built Environment (2018)


Автор: Jennifer Whyte, Dragana Nikolić.

Издание: Virtual Reality and the Built Environment, Routledge, 2-ое издание, 14 февраля 2018.

Описание: Центральная тема этой книги – как виртуальную реальность можно использовать при проектировании, производстве и управлении созданной средой. В ней рассмотрено три ключевых вопроса:

  • Каковы бизнес-стимулы для использования виртуальной реальности?
  • Каковы его ограничения?
  • Как можно реализовать виртуальную реальность?

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

Чем может быть полезна: Virtual Reality and the Built Environment – важный материалом для профессионалов в области архитектуры, строительства, дизайна, геодезии и инженерии, а также для студентов профильных специальностей, которым необходимо понимание BIM, CAD и виртуальной реальности в этом секторе. Новая редакция расширяет возможности для рассмотрения иммерсивной виртуальной реальности как способа привлечения профессионалов в информационную модель здания, а также в качестве способа переноса этой модели и связанной с ней информации об активах на место работы. Технологии также рассматриваются в контексте таких разработок, как лазерное сканирование, мобильные решения и большие данные.

9. Augmented Reality Game Development (2017)


Автор: Micheal Lanham.

Издание: Augmented Reality Game Development, Packt Publishing, 20 января 2017.

Описание: Эта книга отправит вас в путешествие по созданию AR-игры, основанной на местоположении.

Чем может быть полезна: Книга затрагивает основные технические концепции:

  • основы GIS;
  • GPS для мобильных устройств;
  • картографирование;
  • текстуры карт в Unity;
  • камеры мобильного устройства, текстуры камеры в Unity;
  • доступ на основе определения местоположения;
  • сервисы и другие полезные советы по Unity.

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

10. Дополненная реальность. Все, что вы хотели узнать о технологии будущего (2019)


Автор: Хелен Папагианнис.

Издание: Дополненная реальность. Все, что вы хотели узнать о технологии будущего, Бомбора, 2019.

Описание: В этой книге ведущий мировой эксперт в этой области знакомит читателей с дополненной реальностью: как она развивается, где открываются возможности и куда движется развитие технологий. Книга для тех, кто хочет лучше разбираться в трендах IT-индустрии, а также для тех, кто планирует начать создавать проекты с дополненной реальностью самостоятельно.

Чем может быть полезна: Это подробное руководство для дизайнеров, разработчиков, предпринимателей и студентов объясняет. Из него вы узнаете:

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

Какие книги кому подойдут?

Чтобы познакомиться с миром VR/AR с нуля и просто разобраться стоит почитать следующие издания из нашего списка:

  • Metaverse Charlie Fink’s
  • Дополненная реальность. Все, что вы хотели узнать о технологии будущего

Если вы мечтаете построить карьеру в GameDev и интересуетесь играми с элементами виртуальной и дополненной реальности, обратите внимание на эти книги:

  • Unity 2020 By Example
  • Unreal Engine VR Cookbook
  • Augmented Reality Game Development

Для разработчиков и дизайнеров приложений рекомендуем оставшуюся литературу:

  • Augmented Reality and Virtual Reality: New Trends in Immersive Technology
  • Multimedia and Sensory Input for Augmented, Mixed, and Virtual Reality
  • Advances in Usability and User Experience
  • Creating Augmented and Virtual Realities: Theory and Practice for Next-Generation Spatial Computing
  • Virtual Reality and the Built Environment

Надеемся, что этот список поможет получить или улучшить знания в области AR/VR и вы найдете в нем то что больше подходит именно вам. К сожалению, большинство актуальных книг еще не было переведено на русский язык, но для активно развивающейся отрасли это нормально.

***

А если вы всерьез решили углубиться в профессию и стать разработчиком VR/AR, стоит обратить внимание на «Факультет разработки VR/AR» образовательной онлайн-платформы GeekBrains. Там вы научитесь делать игры и мобильные приложения, а также получите востребованную специальность и возможность работать на фрилансе или в крупной IT-компании. На факультете GeekBrains изучают язык C# и движок Unity, а также на практике учат создавать продукты с VR/AR-технологиями – выпускники смогут добавить в портфолио 14 реализованных проектов.

17
Сен
2021

🎨 ТОП-10 книг по дизайну интерфейса (UX/UI): от новичка до профессионала

Ищите пособия по UX/UI? Эти десять полезных книг помогут углубить ваши знания в области дизайна интерфейса и пользовательского опыта. В обзор вошли лучшие издания на русском и английском языке.

14
Авг
2021

🕸 Веб-аутентификация: файлы cookies или токены?

Сравним аутентификацию в веб-приложениях на основе токенов и файлов cookies, чтобы помочь вам выбрать наилучший подход для проекта.

Перевод публикуется с сокращениями, автор оригинальной
статьи
Chameera Dulanga.

Cookie-Based Authentication

Аутентификация – это процесс обмена учетными данными для идентификации пользователя. При аутентификации на основе cookies уникальный идентификатор (файл cookie) создается на стороне сервера и отправляется в браузер.

Когда вы входите в веб-приложение, браузер получает файл cookie с сервера, сохраняет его и отправляет с каждым
последующим запросом, чтобы сервер мог убедиться, что запросы поступают от одного и того пользователя.

Чтобы лучше понять, как
работают файлы cookie, разобьем этот процесс на 5 частей.

1. Пользователь входит в приложение со своими учетными данными


2. Сервер проверяет учетные данные и создает сеанс в базе данных

Примечание:
Хотя сеанс можно создать в памяти, он не масштабируется.


3. Сервер отправляет файл cookie браузеру, включая его в заголовок Set-Cookie


Файл cookie отправляется в виде пары имя-значение и содержит уникальный идентификатор (id) пользователя.

В дополнение к этому в
cookie могут храниться такие сведения, как дата истечения срока действия, домен
и возраст. Пример ответа с несколькими заголовками cookie будет выглядеть
следующим образом:

        HTTP/2.0 200 OK
Content-Type: text/html
Set-Cookie: <cookie-name>=<cookie-value>
Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<number>
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain>
Set-Cookie: <cookie-name>=<cookie-value>; Path=<path>
Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly

[page content]
    
Примечание:
Вы можете использовать один заголовок Set-Cookieдля установки нескольких атрибутов (Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain>; Secure; HttpOnly).

4. Браузер сохраняет cookie в хранилище и отправляет его с последующими запросами


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

Найти все сохраненные в браузере файлы cookie можно в хранилище файлов cookie в разделе
приложения с помощью инструментов разработчика (devtools).


5. Когда пользователь выйдет из системы, сервер удалит сеанс из базы данных


Как только пользователь
выйдет из системы, у сервера истечет срок действия файла cookie и сеанс в базы данных будет очищен. Браузер делает то же самое, удаляя файл
cookie из хранилища.

Мы разобрались, как
работает аутентификация на основе cookie, теперь рассмотрим фичи, плюсы и
минусы этой схемы.

Это полностью автоматизированный процесс

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

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

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

Безопасность

Cookie не имеют надежной защиты от атак, и они в основном уязвимы для атак с использованием межсайтового скриптинга (XSS) и подделки межсайтовых запросов (CSRF).

Мы можем явно изменить заголовки файлов cookie, чтобы защитить их от таких атак.

Например, куки могут быть легко защищены от
XSS-атак с помощью атрибута HttpOnly при настройке заголовков:

        Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly
    

Кроме того, можно
использовать атрибут SameSite в заголовке файла cookie для эффективного
предотвращения CSRF-атак.

        Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax
    

Есть 3 значения, которые можно использовать для атрибута SameSite:

  • SameSite = Lex гарантирует, что браузер не будет отправлять файлы cookie по межсайтовым запросам (это поведение по умолчанию, если атрибут SameSite не определен).
  • SameSite = Strict будет следить за тем, чтобы браузер отправлял cookie только для запросов с того же сайта.
  • SameSite = None позволит отправлять куки как с межсайтовыми, так и с внутрисайтовыми запросами.

Обычно работают в одном домене

Файлы cookie работают только в одном домене, если вы специально их не настроили.

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

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

Не подходит для API

Если вы создаете API для предоставления услуг клиентам, cookie – это не лучший вариант. Если клиент не является браузером, это усложнит работу.

Например, если вы
разрабатываете мобильное приложение, наличие файлов cookie усложнит управление
файлами по сравнению с токеном.

Могут возникнуть проблемы с масштабируемостью

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

Хотя существуют хорошо
зарекомендовавшие себя способы управления масштабируемостью (например,
использование
для хранения сеансов СУБД наподобие Redis), это все равно
добавляет сложности. По мере роста количества пользователей, могут возникнуть
проблемы с масштабированием и управлением сеансами.

Подходит для хранения дополнительных данных

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

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

Все эти манипуляции можно провести и с помощью токенов. Например, токены JWT позволяют хранить Claim-объекты. Поскольку это увеличит размер токена, сохранение большего их количества повлияет на нагрузку сети.

Это не имеет смысла, если
речь идет об одном запросе, но преимущества становятся заметны, когда все
агрегируется и масштабируется.

Можно ограничить доступ к cookie в браузере
Поскольку файл cookie предоставляет опцию HTTP-Only, мы можем ограничить доступ JavaScript к нему – это предотвратит любое обращение при атаках с использованием межсайтовых сценариев.

Аутентификация на основе токенов

Этот способ был введен для устранения основанного на куках аутентификации. Особенности подхода – требуется ручная реализация и токены сохраняются на стороне клиента.

Когда вы входите в
веб-приложение, сервер проверяет учетные данные и отправляет зашифрованный
токен в браузер. Браузер сохраняет токен и добавляет его в заголовок авторизации
будущих запросов.

Стандартные реализации
токен-подхода в разы сложнее описанных выше. Например, в
OpenID Connect применяется несколько потоков аутентификации для различных сценариев использования. Чтобы лучше понять, как работают токены, разобьем процесс на четыре части и в качестве примера используем JWT (JSON Web Token) – наиболее широко используемый стандарт.

1. Пользователь входит в приложение со своими учетными данными


2. Сервер проверяет учетные данные, генерирует токен, подписывает его секретным ключом и отправляет в браузер


При передаче обычно необходимо
использовать шифрование (например, SSL) для защиты канала.

На стороне сервера можно
использовать библиотеку NPM (такую как jsonwebtoken) для
создания токенов:

        // Install
npm install jsonwebtoken
// Usage
var jwt = require('jsonwebtoken');
var token = jwt.sign(
              { data: user}, 
              privateKey, 
              { algorithm: 'RS256'},
              exp: Math.floor(Date.now() / 1000) + (60 * 60),            );
    

Сгенерированный с
помощью jsonwebtoken токен будет выглядеть следующим образом:

        eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    

Токен состоит из 3 частей:
header, payload
и
signature (header.payload.signature). Они разделены символом .,
и вы можете использовать этот
сервис
для анализа информации.


3. Сохранение токена в хранилище браузера и добавление в запросы с помощью JavaScript


Браузер может хранить
этот маркер в локальном хранилище, хранилище сеансов или в хранилище cookies.
Затем он будет добавлен в заголовок авторизации и отправлен на сторону сервера
для валидации запросов.

Добавление токена в заголовок должно быть реализовано с помощью JavaScript.

        Authorization: Bearer <token>
    

Кроме того, можно использовать
функцию jwt.decode() из библиотеки jsonwebtoken для декодирования токена.

4. При выходе пользователя из системы токен вручную удаляется из хранилища

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

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

Это stateless-механизм

В отличие от cookie-подхода, вариант с токенами не имеет состояния. Это означает, что он не сохраняет никакой
информации о пользователях в базе данных или на сервере. Сервер отвечает только за
создание и проверку токенов, что позволяет реализовывать более масштабируемые
решения.

Проблемы безопасности

Хотя введением токенов
пытаются решить проблемы безопасности аутентификации на основе cookies, полностью от них не избавиться.

Сохраненные в браузере токены могут быть уязвимы для атак XSS, если приложение позволяет внедрять внешние сценарии JavaScript.

Токен не имеет состояния и если он установлен снаружи, то его невозможно отозвать
до истечения срока жизни. Поэтому важно, чтобы он имел минимальный срок
годности.

Заключение

Подходы, основанные на токенах и файлах cookie – два наиболее часто используемых в веб-приложениях механизма аутентификации. В этой статье мы выяснили, как они работают, а также разобрали их особенности, плюсы и минусы.

Ни один из этих методов
не является на 100% совершенным, и каждый имеет свои недостатки. При
выборе метода аутентификации стоит использовать наиболее соответствующий требованиям проекта и допилить его, а не стремиться к идеалу.

Спасибо за внимание!

***

Дополнительные материалы:

14
Авг
2021

🕸 Веб-аутентификация: файлы cookies или токены?

Сравним аутентификацию в веб-приложениях на основе токенов и файлов cookies, чтобы помочь вам выбрать наилучший подход для проекта.

Перевод публикуется с сокращениями, автор оригинальной
статьи
Chameera Dulanga.

Cookie-Based Authentication

Аутентификация – это процесс обмена учетными данными для идентификации пользователя. При аутентификации на основе cookies уникальный идентификатор (файл cookie) создается на стороне сервера и отправляется в браузер.

Когда вы входите в веб-приложение, браузер получает файл cookie с сервера, сохраняет его и отправляет с каждым
последующим запросом, чтобы сервер мог убедиться, что запросы поступают от одного и того пользователя.

Чтобы лучше понять, как
работают файлы cookie, разобьем этот процесс на 5 частей.

1. Пользователь входит в приложение со своими учетными данными


2. Сервер проверяет учетные данные и создает сеанс в базе данных

Примечание:
Хотя сеанс можно создать в памяти, он не масштабируется.


3. Сервер отправляет файл cookie браузеру, включая его в заголовок Set-Cookie


Файл cookie отправляется в виде пары имя-значение и содержит уникальный идентификатор (id) пользователя.

В дополнение к этому в
cookie могут храниться такие сведения, как дата истечения срока действия, домен
и возраст. Пример ответа с несколькими заголовками cookie будет выглядеть
следующим образом:

        HTTP/2.0 200 OK
Content-Type: text/html
Set-Cookie: <cookie-name>=<cookie-value>
Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<number>
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain>
Set-Cookie: <cookie-name>=<cookie-value>; Path=<path>
Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly

[page content]
    
Примечание:
Вы можете использовать один заголовок Set-Cookieдля установки нескольких атрибутов (Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain>; Secure; HttpOnly).

4. Браузер сохраняет cookie в хранилище и отправляет его с последующими запросами


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

Найти все сохраненные в браузере файлы cookie можно в хранилище файлов cookie в разделе
приложения с помощью инструментов разработчика (devtools).


5. Когда пользователь выйдет из системы, сервер удалит сеанс из базы данных


Как только пользователь
выйдет из системы, у сервера истечет срок действия файла cookie и сеанс в базы данных будет очищен. Браузер делает то же самое, удаляя файл
cookie из хранилища.

Мы разобрались, как
работает аутентификация на основе cookie, теперь рассмотрим фичи, плюсы и
минусы этой схемы.

Это полностью автоматизированный процесс

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

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

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

Безопасность

Cookie не имеют надежной защиты от атак, и они в основном уязвимы для атак с использованием межсайтового скриптинга (XSS) и подделки межсайтовых запросов (CSRF).

Мы можем явно изменить заголовки файлов cookie, чтобы защитить их от таких атак.

Например, куки могут быть легко защищены от
XSS-атак с помощью атрибута HttpOnly при настройке заголовков:

        Set-Cookie: <cookie-name>=<cookie-value>; Secure
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly
    

Кроме того, можно
использовать атрибут SameSite в заголовке файла cookie для эффективного
предотвращения CSRF-атак.

        Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax
    

Есть 3 значения, которые можно использовать для атрибута SameSite:

  • SameSite = Lex гарантирует, что браузер не будет отправлять файлы cookie по межсайтовым запросам (это поведение по умолчанию, если атрибут SameSite не определен).
  • SameSite = Strict будет следить за тем, чтобы браузер отправлял cookie только для запросов с того же сайта.
  • SameSite = None позволит отправлять куки как с межсайтовыми, так и с внутрисайтовыми запросами.

Обычно работают в одном домене

Файлы cookie работают только в одном домене, если вы специально их не настроили.

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

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

Не подходит для API

Если вы создаете API для предоставления услуг клиентам, cookie – это не лучший вариант. Если клиент не является браузером, это усложнит работу.

Например, если вы
разрабатываете мобильное приложение, наличие файлов cookie усложнит управление
файлами по сравнению с токеном.

Могут возникнуть проблемы с масштабируемостью

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

Хотя существуют хорошо
зарекомендовавшие себя способы управления масштабируемостью (например,
использование
для хранения сеансов СУБД наподобие Redis), это все равно
добавляет сложности. По мере роста количества пользователей, могут возникнуть
проблемы с масштабированием и управлением сеансами.

Подходит для хранения дополнительных данных

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

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

Все эти манипуляции можно провести и с помощью токенов. Например, токены JWT позволяют хранить Claim-объекты. Поскольку это увеличит размер токена, сохранение большего их количества повлияет на нагрузку сети.

Это не имеет смысла, если
речь идет об одном запросе, но преимущества становятся заметны, когда все
агрегируется и масштабируется.

Можно ограничить доступ к cookie в браузере
Поскольку файл cookie предоставляет опцию HTTP-Only, мы можем ограничить доступ JavaScript к нему – это предотвратит любое обращение при атаках с использованием межсайтовых сценариев.

Аутентификация на основе токенов

Этот способ был введен для устранения основанного на куках аутентификации. Особенности подхода – требуется ручная реализация и токены сохраняются на стороне клиента.

Когда вы входите в
веб-приложение, сервер проверяет учетные данные и отправляет зашифрованный
токен в браузер. Браузер сохраняет токен и добавляет его в заголовок авторизации
будущих запросов.

Стандартные реализации
токен-подхода в разы сложнее описанных выше. Например, в
OpenID Connect применяется несколько потоков аутентификации для различных сценариев использования. Чтобы лучше понять, как работают токены, разобьем процесс на четыре части и в качестве примера используем JWT (JSON Web Token) – наиболее широко используемый стандарт.

1. Пользователь входит в приложение со своими учетными данными


2. Сервер проверяет учетные данные, генерирует токен, подписывает его секретным ключом и отправляет в браузер


При передаче обычно необходимо
использовать шифрование (например, SSL) для защиты канала.

На стороне сервера можно
использовать библиотеку NPM (такую как jsonwebtoken) для
создания токенов:

        // Install
npm install jsonwebtoken
// Usage
var jwt = require('jsonwebtoken');
var token = jwt.sign(
              { data: user}, 
              privateKey, 
              { algorithm: 'RS256'},
              exp: Math.floor(Date.now() / 1000) + (60 * 60),            );
    

Сгенерированный с
помощью jsonwebtoken токен будет выглядеть следующим образом:

        eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
    

Токен состоит из 3 частей:
header, payload
и
signature (header.payload.signature). Они разделены символом .,
и вы можете использовать этот
сервис
для анализа информации.


3. Сохранение токена в хранилище браузера и добавление в запросы с помощью JavaScript


Браузер может хранить
этот маркер в локальном хранилище, хранилище сеансов или в хранилище cookies.
Затем он будет добавлен в заголовок авторизации и отправлен на сторону сервера
для валидации запросов.

Добавление токена в заголовок должно быть реализовано с помощью JavaScript.

        Authorization: Bearer <token>
    

Кроме того, можно использовать
функцию jwt.decode() из библиотеки jsonwebtoken для декодирования токена.

4. При выходе пользователя из системы токен вручную удаляется из хранилища

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

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

Это stateless-механизм

В отличие от cookie-подхода, вариант с токенами не имеет состояния. Это означает, что он не сохраняет никакой
информации о пользователях в базе данных или на сервере. Сервер отвечает только за
создание и проверку токенов, что позволяет реализовывать более масштабируемые
решения.

Проблемы безопасности

Хотя введением токенов
пытаются решить проблемы безопасности аутентификации на основе cookies, полностью от них не избавиться.

Сохраненные в браузере токены могут быть уязвимы для атак XSS, если приложение позволяет внедрять внешние сценарии JavaScript.

Токен не имеет состояния и если он установлен снаружи, то его невозможно отозвать
до истечения срока жизни. Поэтому важно, чтобы он имел минимальный срок
годности.

Заключение

Подходы, основанные на токенах и файлах cookie – два наиболее часто используемых в веб-приложениях механизма аутентификации. В этой статье мы выяснили, как они работают, а также разобрали их особенности, плюсы и минусы.

Ни один из этих методов
не является на 100% совершенным, и каждый имеет свои недостатки. При
выборе метода аутентификации стоит использовать наиболее соответствующий требованиям проекта и допилить его, а не стремиться к идеалу.

Спасибо за внимание!

***

Дополнительные материалы:

07
Авг
2021

👨‍💼 5 привычек малоэффективных удаленных сотрудников

Околоайтишную российскую тусовку взбудоражила новость об увольнении 150 сотрудников компании Xsolla после анализа их активности в средствах коллективной работы. Выгнать людей из-за логов Jira – странное решение, но есть ли реальный способ о…

31
Июл
2021

🕸 Сколько получают фуллстек-разработчики в разных странах?

Универсальные веб-программисты или Fullstack Developers востребованы на рынке труда. Мы собрали статистику по заработной плате фуллстек-разработчиков в России и других странах.

Фуллстек-программисты (разработчики полного цикла) выполняют множество задач и могут использовать разные наборы технологий при создании веб-проектов. В их зоне ответственности находится front-end (пользовательский интерфейс) и back-end (программно-аппаратная часть сервиса). Такой универсальный разработчик способен сделать верстку сайта, настроить функции элементов страницы, написать серверную часть проекта и настроить ее.

В каких сферах востребованы фуллстек-разработчики

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

Что нужно знать такому разработчику:

  • JavaScript (примитивы, объекты, объектные дубликаты) и Python.
  • Frontend-фреймворки (один из): Angular, Vue и React.
  • HTML и CSS (строчные и блочные элементы, шрифты, стили и пр.).
  • Библиотеку Bootstrap (начать с rid-макета, панели навигации и др.).
  • Backend-фреймворки (часто используют Express) и NodeJS.
  • TypeScript (предназначен для пранспилирования в чистый ES5, что позволяет писать код на C#, Java и JS).
  • Инструменты для вызова API (Postman и SoapUI).
  • MySQL, PostgreSQL, NoSQL и MongoDB.
  • Модульное и сквозное тестирование.
  • Аутентификацию пользователя (identity и access-токены, пользовательские хранилища для сессии, сторонние инструменты (Active Directory от Microsoft), JSON Web Token).
Прочитать о требованиях к Junior Full-Stack можно в этой статье.

Сколько в среднем по России зарабатывают Fullstack Developer

Если верить статистике сайта neuvoo.ru, фуллстек-разработчики в среднем получают 70 тыс. рублей. В России специалисты такого рода наиболее востребованы в Москве и Санкт-Петербурге.


Заработная плата (в год) смежных специалистов по версии neuvoo.


На портале russia.trud.com можно узнать средний размер заработной платы веб-разработчика, средние значения по оплате труда, и как этот показатель колеблется в зависимости от сезона года и региона.

Средний показатель зарплат веб-разработчика на russia.trud.
Средний показатель зарплат веб-разработчика на russia.trud.

Рейтинг оплаты труда программистов смежных направлении по данным russia.trud.
Рейтинг оплаты труда программистов смежных направлении по данным russia.trud.

Доходы Fullstack Developer по миру

Средний уровень зарплат у программистов в Америке находится в пределах 37-87 тыс. долларов (до вычета налогов). Такой оклад готовы выплачивать компании в Калифорнии, Флориде, Техасе, Вашингтоне. В США компании Facebook, Apple, Google, 3-D Systems, IPG Photonics и Microsoft оценивают труд программистов от 60 тыс. долларов (после вычета налогов).

Статистика оплаты труда Fullstack developer нескольких мировых городов по данным glassdoor.com.

Fullstack developer patch in Canada.
Fullstack developer patch in Canada.
Fullstack developer patch in Bern (Switzerland).
Fullstack developer patch in Bern (Switzerland).
Fullstack developer patch in Chicago (USA).
Fullstack developer patch in Chicago (USA).
Fullstack developer patch in New York (USA).
Fullstack developer patch in New York (USA).
Fullstack developer patch in San Francisco (USA).
Fullstack developer patch in San Francisco (USA).
Fullstack developer patch in Mumbai (India).
Fullstack developer patch in Mumbai (India).
***

Если вы только осваиваете профессию, обратите внимание на курс факультета Fullstack JavaScript образовательной онлайн-платформы GeekBrains. Программа обучения рассчитана на 15 месяцев. Успешно завершившие ее студенты сделают 5 кейсов для портфолио, а также получат диплом о профессиональной переподготовке и помощь в трудоустройстве. Занятия ведут практикующие разработчики, а в программу включено все необходимое для успешного старта в одной из самых динамично развивающихся отраслей ИТ.

01
Июл
2021

🧭 Не только игры: VR/AR-разработка – профессия будущего

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

Что такое VR/AR?

Термин «виртуальная реальность» относится к трехмерной среде, созданной компьютером. VR – это полностью цифровой опыт, который может имитировать или полностью отличаться от реального мира.

В отличие от VR, дополненная реальность – это не полностью иммерсивный, искусственный опыт. Он состоит из виртуальных компонентов, размещенных в вашем непосредственном окружении. Технология дополненной реальности добавляет уровни цифровых фрагментов поверх существующей среды, сокращая разрыв между виртуальным и физическим миром.

Чтобы больше узнать о видах и технологиях VR и AR рекомендуем прочитать гайд по виртуальным мирам из «Библиотеки программиста».

Отметим, что VR переносит нас в альтернативные вселенные, а AR оживляет окружение с помощью данных, изображений и уникальных впечатлений, которые накладываются на мир вокруг вас.

Экскурс в историю

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

  • Сама концепция виртуальной реальности – иллюзорного опыта неотличимого от реального, существует довольно давно. В 1935 году писатель-фантаст Стэнли Вейнбаум написал рассказ «Очки Пигмалиона». В нем главный герой встречает профессора, который изобретает очки, позволяющие ему попасть в виртуальный мир.

  • В 1957 году кинематографист Мортон Хейлиг изобрел Sensorama, мультимедийное устройство для театрального шкафа, которое предлагало зрителям интерактивный опыт. Sensorama представляла собой механическое устройство, включающее цветной стереоскопический дисплей, вентиляторы, излучатели запахов, стереофоническую звуковую систему и подвижное кресло. Оно имитировало поездку на мотоцикле по Нью-Йорку и создавало впечатление присутствия.

  • В 1961 году два инженера Philco Corporation создали первый налобный дисплей (HMD) под названием Headsight. Он имел два видеоэкрана, по одному на каждый глаз, а также устройство магнитного слежения. Это было первое устройство отслеживания движения, которое дало возможность пользователю осматривать окружающую среду, не находясь там физически, при помощи удаленной камеры.
  • К 1980-м годам термин «виртуальная реальность» популяризировал Джарон Ланье. Он основал лабораторию визуального программирования VPL и разработал вместе с Томом Циммерманом ряд устройств, в том числе Dataglove, перчатку для взаимодействия человека с компьютером и шлем VR EyePhone HMD, что сделало VPL первой компанией, которая начала продавать очки виртуальной реальности.
  • В 1990-е годы появились первые массовые коммерческие гарнитуры VR. В 1992 году журнал Computer Gaming World предсказал «доступную виртуальную реальность к 1994 году».
За последние 10 лет мир виртуальной и дополненной реальности значительно продвинулся в развитии в результате конкуренции технологических гигантов. Amazon, Apple, Facebook, Google, Microsoft, Sony и Samsung создали собственные подразделения VR и AR. С началом пандемии COVID-19 отрасль переживает очередную волну роста, на фоне вызванного вынужденной самоизоляцией спроса.

Где применяется VR/AR

Несмотря на популярность VR/AR в игровой отрасли, сферы применения этих технологий не заканчиваются на компьютерных играх и Pokemon Go. Рассмотрим далее перспективные из применений.

Торговля

Онлайн торговля товарами давно заняла свое место в современном мире и экономит покупателям много времени и сил, а продавцам торговые площади и сопутствующие расходы на содержание офлайн-магазинов. Проблема с покупками в Интернете заключается в том, что мы не можем примерить одежду или увидеть как на самом деле будет выглядеть мебель в нашем доме, до ее покупки. Это вызывает дискомфорт и множественные возвраты товара от покупателей. Технологии VR и AR могут это исправить.

С появлением технологии сканирования тела в VR, которая позволит «примерить» одежду в виртуальном мире, неуверенность в товаре и продавце отойдут на второй план.


  • Различные компании пытаются предоставить опыт покупок в виртуальной реальности, в том числе европейский розничный торговец ASOS, который инвестировал в компанию по разработке программного обеспечения Trillenium.
  • Трудно представить, как будет выглядеть мебель в вашем доме, даже если осматриваешь ее в салоне, поэтому многие покупатели хотят использовать AR при покупке мебели.
  • IKEA и Wayfair – всего лишь два ритейлера из множества, которые помогают покупателям визуализировать мебель и товары в их доме благодаря технологии дополненной реальности.
  • Кроме того AR можно использовать для повышения вовлеченности в магазинах. Некоторые розничные продавцы, в том числе LEGO и Best Buy, используют элементы дополненной реальности в своих офлайн-магазинах, чтобы удивить и заинтересовать потребителей.

Образование

Онлайн-образование в настоящее время является очень востребованным. Многие в секторах сейчас повышают свой технический уровень, обращаясь к VR и AR, чтобы обеспечить расширенный опыт. Это делает обучение более доступным, дешевым и повышает уровень удержания знаний.

Использование виртуальной реальности для экспериментального обучения дает множество преимуществ:

  • VR может имитировать реальные жизненные ситуации;
  • использование ИИ для общения с аватарами и изменения исхода ситуации в зависимости от действий ученика;
  • отсутствие ограничений по времени;
  • обучение и практику можно разделить на более мелкие фрагменты по сравнению, например, с тренировочными днями;
  • VR среда обладает широкими возможностями настройки. Это улучшает эмпирическое обучение, сделав упражнение значительно более реалистичным.
  • использование VR – более увлекательный способ обучения, поскольку он полностью привлекает внимание;
  • виртуальная реальность стимулирует память во время обучения. Это полезно для запоминания в долгосрочной перспективе и более эффективно, чем пассивное вспоминание, такое как перечитывание информации или просто просмотр видео.
Кроме того дополненная реальность помогает педагогам вовлекать учеников с помощью динамических 3D-моделей, наложений релевантных фактов и визуальной информации по темам, которые они изучают. Студенты могут получить доступ к информации в любом месте и в любое время без специального оборудования.

Здравоохранение

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

VR также можно использовать для лечения проблем с психическим здоровьем, а терапия с использованием виртуальной реальности считается эффективной при лечении посттравматического стрессового расстройства и тревожности.

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

Навигационные системы

AR способна повысить эффективность навигационных устройств. Информация может отображаться на лобовом стекле автомобиля с указанием направления и места назначения, погоды, местности, дорожных условий и информации о дорожном движении. С 2012 года швейцарская компания WayRay разрабатывает голографические системы навигации с дополненной реальностью, в которых используются голографические оптические элементы для проецирования информации о маршруте, включая направления, важные уведомления и достопримечательности, прямо в зоне прямой видимости водителей. На борту морских судов AR позволит наблюдателям на мостике отслеживать важную информацию, такую ​​как курс и скорость судна при движении.

Строительство

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

Архитекторы годами используют 3D-модели, но использование иммерсивных инструментов, поможет понимать и исследовать пространство на самом глубоком уровне, видеть здание «сквозь стены», просматривать его внутренние объекты и планировку.

Развлечения

Туристическая индустрия использует обучающие видеоролики, чтобы продавать направления и поездки с помощью виртуальной реальности. Такие сервисы, как Discovery Channel и Google Expeditions, позволяют людям поплавать с акулами в Тихом океане, исследовать коралловые рифы или поверхность Марса.

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

VR дает организаторам мероприятий возможность приглашать больше людей. Например, Пол Маккартни в 2016 году выпустил запись концерта в VR 360. Многие музеи предлагают виртуальные туры с возможностью приблизиться к экспонатам не выходя из дома, а также AR приложения, которые позволяют лучше ориентироваться и получить больше информации в залах музея.

Техническое обслуживание

AR используется удаленными сотрудниками для обслуживания транспортных средств и оборудования. Сегодня AR может помочь специалисту по техническому обслуживанию быстро разобраться в оборудовании, с которым они работают, с помощью планов или информации, наложенной в AR приложении. Основная цель – дать работникам возможность работать более продуктивно и предоставить им свободу потребления информации без помощи рук. Например, на узлах системы могут отображаться метки, поясняющие инструкции по эксплуатации для механика, выполняющего техническое обслуживание системы.

Искусство и дизайн

Дэвид Эм был первым прекрасным художником, создавшим в 1970-х годах виртуальные миры, по которым можно перемещаться. Среди других художников, исследовавших потенциал VR-технологий в 1990-е годы, можно назвать Джеффри Шоу, Ульрику Габриэль, Чар Дэвис, Морис Бенаюн, Knowbotic Research, Ребекку Аллен и Перри Хоберман.

AR, применяемая в изобразительном искусстве, позволяет объектам или местам вызывать художественные многомерные переживания и интерпретации реальности. Дополненная реальность способствует развитию визуального искусства в музеях, давая возможность посетителям просматривать экспонаты в галереях в многомерном виде через экраны смартфонов.

Социальные сети

Некоторые организации создают социальные сообщества в пространстве VR, такие как vTime, AltspaceVR, Oculus Rooms, Mozilla Hubs и VRChat, а также социальные виртуальные миры, которые изначально были разработаны без поддержки VR, например Roblox.

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

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

Перспективы

Мы перечислили лишь некоторые области внедрения технологий AR/VR в повседневную жизнь и работу. Существуют сотни других применений и они могут повлиять на рабочее место, хобби и социальную жизнь раньше, чем мы предполагали. Корпоративные приложения AR и VR могут стать чрезвычайно ценными в самых разных контекстах.

Мы все еще далеки от недорогой технологии виртуальной реальности, которая полностью погрузит вас в цифровой мир. Однако социальный запрос на такие инструменты дает основания предполагать, что в ближайшем будущем технологии VR/AR станут применяться повсеместно.

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

Если вам интересно это направление, рекомендуем ознакомиться со статьей «Как освоить разработку приложений AR/VR с нуля», где описаны основные навыки и инструменты, которые могут потребоваться новичку.

***

А если вы всерьез решили углубиться в профессию и стать разработчиком VR/AR, стоит обратить внимание на «Факультет разработки VR/AR» образовательной онлайн-платформы GeekBrains. Там вы научитесь делать игры и мобильные приложения, а также получите востребованную специальность и возможность работать на фрилансе или в крупной IT-компании. На факультете GeekBrains изучают язык C# и движок Unity, а также на практике учат создавать продукты с VR/AR-технологиями – выпускники смогут добавить в портфолио 14 реализованных проектов.

22
Июн
2021

🛠 Лучшие инструменты No-Code для разработчиков в 2021 году

Существует множество инструментов no-code, но выбрать правильные сложно. В небольшом обзоре мы выделили лучшие продукты для разработчиков, которые будут активно использоваться в 2021 году.

22
Июн
2021

🛠 Лучшие инструменты No-Code для разработчиков в 2021 году

Существует множество инструментов no-code, но выбрать правильные сложно. В небольшом обзоре мы выделили лучшие продукты для разработчиков, которые будут активно использоваться в 2021 году.

15
Май
2021

🔀 SDLC модели: как выбрать правильный подход к разработке и не завалить проект

В этой статье Вадим Кулага, проектный менеджер EPAM Anywhere, расскажет об основных моделях разработки программного обеспечения (SDLC), их плюсах и минусах, а также о реальных примерах их использования.

14
Май
2021

🛠 10 забавных расширений VS Code для разработчиков

В сети есть много подборок полезных для программистов расширений VS Code. Мы рассмотрим те из них, которые повысят вашу производительность и эффективность. Они позволяют делать множество вещей – от визуализации данных до изучения JavaScript…

09
Апр
2021

🖋 Как создавать инклюзивные и доступные цифровые продукты

Хорошо спроектированный и продуманный UI/UX влияет на желание людей пользоваться продуктом. Разбираемся в мелочах, которые позволяют сделать интерфейс более понятным и привлекательным.

02
Апр
2021

🗣 45 русскоязычных подкастов для программистов

Подкасты – отличный способ отвлечься от рутинных дел и провести свободное время с пользой. Предлагаем список из 45 актуальных ресурсов на русском языке, которые будут полезны программистам.

01
Апр
2021

🤔 Как научиться программировать за 24 часа?

Вопрос не самый простой, но и на него можно ответить, если немного поразмышлять.

Допустим, вы знаете компьютер, и хотите научиться программировать. Поскольку многие «умельцы» не де…

30
Мар
2021

🤖 Применение искусственного интеллекта для общественного блага

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

Что…

05
Мар
2021

🕸 Как найти утечки памяти на сайтах и в веб-приложениях

Утечки памяти мешают пользователям долго работать с вашим веб-приложением – из-за них можно потерять аудиторию. Попробуем разобраться как этого издежать.

Перевод публикуется с сокращениями, автор оригинальной статьи
Rafal Kuć.

Важно знать, как пользователи взаимодействуют с вашим софтом – это имеет решающее значение для обеспечения наилучшего UX. Основными показателями являются следующие: время загрузки страницы, скорость обработки HTTP-запросов и время до первого байта. Однако сами метрики – это лишь часть общей картины.

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

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

Для отслеживания этих неприятностей можно использовать Sematext
Experience
– инструмент мониторинга, позволяющий не только контролировать использование веб-приложениями памяти, но также быстро и эффективно
обнаруживать утечки. В статье мы подробно рассмотрим, как это
делается.


Что такое утечка памяти

Утечка памяти
– это избыточное потребление ресурсов из-за неправильного управления распределением памяти в программном обеспечении. Она происходит, когда веб-приложение выделяет память
и продолжает использовать ее даже когда та больше не нужна.

Что вызывает утечку памяти: признаки, на которые следует обратить внимание

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

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

Во фронтенд-приложениях
существует несколько распространенных паттернов, которые могут вызвать утечку
памяти. К ним относятся:

  • Замыкания – внутренние функции, имеющие ссылки на переменные внешних. Таким образом внутренняя функция не позволяет сборщику мусора освободить память.
  • Случайные глобальные переменные – ранее необъявленные переменные станут глобальными и не будут освобождены.
  • Несвязанные коллекции – массивы, мапы и наборы позволяют хранить данные в каком-то виде, но с багами в коде они могут привести к утечке памяти из-за вечного хранения ссылок. Такой пример будет рассмотрен ниже.
  • Отсоединенный DOM – элемент Document Object Model, который больше не используется, но на него продолжают ссылаться.
  • Несвязанные таймеры – работающие вечно и сохраняющие объекты таймеры могут привести к утечке памяти.

Как обнаружить утечки памяти: пример приложения

Чтобы
проверить фактическую утечку памяти, создадим простое веб-приложение, имитирующее мониторинг поведения пользователей e-commerce. Страница отслеживает продукты,
с которыми пользователи взаимодействуют при просмотре магазина. Каждое показанное объявление, возвращенный товар из поиска и т. д. – все помещается
в массив. Код выглядит следующим образом:

        function(product, timestamp, page) {
 visited.push({product, timestamp, page})
}
    

Дальнейшая
идея заключается в том, чтобы хранить все в бекенде, периодически отправляя
данные. Однако чтобы создать утечку, мы забываем сделать одну штуку: после
отправки данных в бекенд не очищаем массив. Это означает, что на данные по-прежнему ссылаются из нашего веб-приложения. Если пользователь не закрывает
вкладку, данные будут продолжать добавляться, что приведет к утечке памяти.

Теперь
посмотрим, как можно идентифицировать возникновение утечки памяти с помощью Sematext и его способности измерять использование памяти сайтом и приложением.

Интеграция Sematext Experience с веб-приложением

Первый шаг – настроить
приложение на использование
Sematext
Browser SDK
для отправки данных в облако Sematext.

Для этого
добавим скрипт перед закрывающим тегом </head>:

        <script type="text/javascript">
 (function(e,r,n,t,s){var a=[];e[s]=function(){a.push(arguments)};e[s].queue=a; var o=[];var i=[];var c=true;var p=void 0;if(window.PerformanceObserver&& window.PerformanceObserver.supportedEntryTypes&&( PerformanceObserver.supportedEntryTypes.indexOf("longtask")>=0|| PerformanceObserver.supportedEntryTypes.indexOf("element")>=0)){ p=new PerformanceObserver(function(e){e.getEntries().forEach(function(e){ switch(e.entryType){case"element":i.push(e);break;case"longtask":o.push(e);break; default:break}})});p.observe({entryTypes:["longtask","element"]})}e[s+"lt"]={ longTasks:o,timingElements:i,inPageLoad:c,observer:p};if(t){var u=r.createElement(n); u.async=1;u.src=t;var f=r.getElementsByTagName(n)[0];f.parentNode.insertBefore(u,f)}})
 (window,document,"script","//cdn.sematext.com/experience.js","strum");
</script>
    

Второй шаг
зависит от типа вашего веб-приложения и используемого фреймворка – нужно сообщить Browser SDK, как ему себя настроить. Например, для стандартного развертывания
нескольких веб-страниц вы бы использовали перед закрывающим тегом </head>
что-то вроде этого:

        <script type="text/javascript">
 strum('config', { token: '<token>', 'receiverUrl': 'https://rum-receiver.sematext.com' });
</script>
    

Если вы
используете какую-либо одностраничную архитектуру, инструкции по установке
приложения
Sematext
Experience
помогут выполнить все необходимые
для отправки метрик шаги.

Выявление утечки памяти

Зная
что делает пользователь, мы можем взглянуть на графики в Sematext Experience. Перейдите к отчету об использовании памяти в приложении:


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


Можно
наблюдать скачкообразные сегменты, но в более длительном периоде использование
памяти остается между максимумом и минимумом и не растет бесконечно. Мы видим,
что в нашем гипотетическом примере e-commerce это не так. Если перейти к
просмотру одной сессии, виден постоянный рост использования памяти с менее
чем 2 МБ до 12 МБ, и нет никакого падения в течение этого времени. Обычно это
означает, что где-то в приложении произошла утечка памяти. Глядя на данные сессии, мы можем видеть загрузку страниц и
HTTP-запросы:


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

Поддерживаемые браузеры

Возможности
измерения памяти Sematext Browser SDK зависят от используемого браузером API для предоставления связанных с памятью метрик. Поддерживается он только в Chrome и проходил испытания Chrome Origin для
Chrome 82-87. Начиная с Chrome 89 API будет полностью доступен — это означает, что пользователям потребуется новейший веб-браузер Google.

Заключение

С помощью
правильных инструментов выявить проблемы с утечкой памяти довольно просто. Именно для
этой цели был создан и постоянно совершенствуется Sematext Experience – он предоставляет вам комплексное, доступное и простое в использовании решение для
мониторинга.

Дополнительные
материалы:

03
Мар
2021

🎨 50 онлайн-инструментов для дизайна: веб-сайты и мобильные приложения

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

23
Фев
2021

🎨 40 лучших веб-сайтов и телеграм-каналов по UX/UI для дизайнеров интерфейса в 2021 году

Созданием интерфейсов занимаются не только программисты – сначала их должен придумать исследующий пользовательский опыт дизайнер. Делимся подборкой из сорока интересных сайтов и каналов Телеграм по UX/UI.