Как стать автором
Обновить
0
0
Артем Михайлов @blankstudio

Frontend-разработчик

Отправить сообщение

Не стоит создавать собственные решения для аутентификации пользователей

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

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



В обоих этих случаях, да и во многих других, вы, вероятнее всего, начнёте работу над приложением с создания подсистем аутентификации и средств для управления пользователями. То есть, как минимум, создадите форму регистрации и страницу для входа в систему. Подсистемы аутентификации — это именно то, что чаще всего просят реализовать веб-разработчиков, занятых некими проектами. Но, несмотря на это, такие подсистемы, это ещё и то, на что обычно обращают очень мало внимания.

Разработка безопасной системы аутентификации пользователей — это по-настоящему сложная задача. Она гораздо масштабнее, чем многие думают. Эту задачу очень легко решить неправильно. Хуже того: ошибки при создании подсистем аутентификации могут повлечь за собой катастрофические последствия. В базовую структуру систем аутентификации и управления пользователями входит всего несколько форм. Из-за этого создание подобных систем может показаться весьма простым делом. Но, как известно, дьявол кроется в деталях. Нужно немало потрудиться для того чтобы сделать такие системы безопасными (и, когда это возможно или даже необходимо, учесть в них требования конфиденциальности персональных данных).
Читать дальше →

Как улучшить ваш API сервис на node.js. Часть 1

Время на прочтение4 мин
Количество просмотров4.9K
Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно так. А некоторые моменты и вовсе опускаются для простоты и краткости.

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

P.S. Ни в коем случае не считаю себя экспертом: есть куда расти. Но вместе с тем есть чем поделиться.

Файловая структура проекта


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

При наименовании каталогов необходимо придерживаться устоявшихся стандартов. Это поможет коллегам и самому через пару месяцев быстро сориентироваться где и что находится.
Читать дальше →

Получение котировок акций при помощи Python

Время на прочтение2 мин
Количество просмотров56K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Historical Stock Price Data in Python» автора Ishan Shah.

Статья о том, как получить ежедневные исторические данные по акциям, используя yfinance, и минутные данные, используя alpha vantage.

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

[в закладки] PDF- и ePUB-версия руководства по React

Время на прочтение3 мин
Количество просмотров46K
Привет Хабр! В этом году мы делали перевод огрооомного обучающего курса по React — в нашем блоге он был аж в 27 постах. В каждой части, от простого к сложному, выдавался концентрат знаний, которые тепло оценили читатели нашего блога. А сегодня мы поймали себя на мысли, что не выпустили все части одним большим куском — исправляемся!



Для новых читателей нашего блога — два бонуса внутри.
Читать дальше →

О том как я подготовился и сдал сертификацию Oracle Database SQL (1Z0-071)

Время на прочтение8 мин
Количество просмотров42K

Зачем написана статья?


image

Когда я готовился к OCA и OCP по Java 8, то нашел много статей на Хабре, благодаря которым выбрал оптимальный путь и сэкономил много времени.


Однако по подготовке именно к OCA Oracle Database SQL (1Z0-071) материалов на Хабре нет и в интернете тоже очень мало. Поэтому я решил написать подробную статью, которая поможет заинтересованным потратить меньше времени и успешно сдать довольно объемный экзамен.

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

Исследование Устойчивости Национальных Сегментов Интернета за 2019

Время на прочтение10 мин
Количество просмотров14K


Данное исследование объясняет, каким образом отказ одной автономной системы (AS) влияет на глобальную связность отдельного региона, особенно в том случае, когда речь идет о крупнейшем провайдере интернета (ISP) данной страны. Связность интернета на сетевом уровне обусловлена взаимодействием между автономными системами. По мере увеличения количества альтернативных маршрутов между AS возникает устойчивость к отказам и повышается стабильность интернета в данной стране. Однако некоторые пути становятся более важными, по сравнению с остальными, и наличие как можно большего числа альтернативных маршрутов в итоге является единственным способом обеспечить надежность системы (в смысле AS).

Глобальная связность любой AS, независимо от того, представляет ли она второстепенного поставщика интернета или международного гиганта с миллионами потребителей услуг, зависит от количества и качества его путей к Tier-1 провайдерам. Как правило, Tier-1 подразумевает международную компанию, предлагающую глобальную услугу IP-транзита и подключение к другим Tier-1 операторам. Тем не менее, внутри данного элитного клуба нет обязательства поддерживать такую связь. Только рынок может придать мотивацию таким компаниям безоговорочно соединяться друг с другом, обеспечивая высокое качество обслуживания. Достаточный ли это стимул? Мы ответим на этот вопрос ниже — в секции, посвященной связности IPv6.

Если провайдер интернета теряет связь хотя бы с одним из собственных Tier-1 соединений, он, вероятнее всего, окажется недоступен в некоторых частях Земли.

Измерение надежности интернета


Представьте, что AS испытывает значительную сетевую деградацию. Мы ищем ответ на следующий вопрос: «Какой процент AS в этом регионе может потерять связь с Tier-1 операторами, тем самым утратив глобальную доступность»?
Читать дальше →

Node.js, Express и MongoDB: API за полчаса

Время на прочтение11 мин
Количество просмотров244K
Начинающему программисту разработка для Node.js может показаться сущим кошмаром. Виной всему – гибкость этой платформы и отсутствие чётких руководств. Но, на самом деле, всё не так уж и страшно.


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

Похождения электронной подписи в России

Время на прочтение16 мин
Количество просмотров60K
Государства вмешиваются в некогда гиковскую информационную область всё больше и устанавливают там правила. Один из институтов государственного регулирования в информационном пространстве — механизм «квалифицированной электронной подписи», условно неподделываемого доверенного идентификатора субъекта, которым он может заверять различного рода сделки в электронном виде от своего имени в инфопространстве. На самом деле, идея ЭП не нова и развивается давно, но в России в какой-то момент что-то пошло немного не так. Эта статья — субъективное пространное рассуждение на тему института электронной подписи в России без излишнего погружения в технологическую матчасть. Ну и немного хейта, как же без этого.


CC-BY-SA, Vadim Rybalko
Читать дальше →

Hello, World! Глубокое погружение в Терминалы

Время на прочтение24 мин
Количество просмотров95K


На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

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

8 простых UI приёмов чтобы сделать дизайн-прототип динамичным, не прибегая к анимации

Время на прочтение6 мин
Количество просмотров32K


Материал этой статьи является следствием моих дизайн-экспериментов и выводов за последний год-полтора непрерывного дизайн гринда. Я неустанно собирал ui kit’ы, экспериментировал с контентом в плейсхолдерах, стилями, тенями текстами и состояниями, чтобы понять влияет ли это на конверсию. Иначе говоря, смогу ли я увеличить продажи дизайн-продуктов для Figma, если добавлю немного визуальной динамики в статичные дизайн-макеты, чтобы сделать темплейты интереснее и функциональнее.
Читать дальше →

Записки фрилансера: разработка первого React Native-приложения

Время на прочтение37 мин
Количество просмотров43K
Автор материала, перевод которого мы публикуем, недавно выпустил своё первое мобильное приложение, написанное на React Native. Так случилось, что это приложение стало и его первым проектом, который он создал как программист-фрилансер. Здесь он расскажет о том, с чем ему пришлось столкнуться в ходе работы — от инициализации проекта до его публикации в App Store и Google Play.


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

Пишем API для React компонентов, часть 5: просто используйте композицию

Время на прочтение5 мин
Количество просмотров4.6K
Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы

Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия

Пишем API для React компонентов, часть 3: порядок пропсов важен

Пишем API для React компонентов, часть 4: опасайтесь Апропакалипсиса!

Пишем API для React компонентов, часть 5: просто используйте композицию

Пишем API для React компонентов, часть 6: создаем связь между компонентами

У нас есть компонент значка:


badge-1


<Badge count={12} />

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


github-1


В cosmos Badge (значок) имеет несколько цветов для каждого конкретного контекста (информация, опасность и т.д.)

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

Установка node.js на Raspberry Pi

Время на прочтение2 мин
Количество просмотров25K
Logo Raspberry and Node.js

Привет, Хабр! Статья посвящается веб-разработчикам, которым попала в руки Raspberry Pi первая модель. Когда несколько лет назад я покупал raspeberry это был компьютер за 35 долл, сегодня это приставка для телевизора и домашний сервер IoT устройств.
Читать дальше →

Делаем современное веб-приложение с нуля

Время на прочтение31 мин
Количество просмотров155K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 3: добавляем авторизацию и обмен данными с API

Время на прочтение17 мин
Количество просмотров62K

Пожалуйста, авторизуйтесь


Это третья и заключительная часть статьи про разработку изоморфного React.js приложения с нуля. Части первая и вторая.


В этой части мы:


  • добавим redux-dev-tools;
  • добавим запросы к API;
  • реализуем авторизацию;
  • реализуем выполнение запросов к API в процессе Server-Side Rendering.
Читать дальше →

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 2: добавляем bootstrap, страницы и роутинг

Время на прочтение21 мин
Количество просмотров84K

Разработка изоморфного приложения глазами моей жены


Это продолжение статьи про разработку изоморфного приложения с нуля на React.js. В этой части мы добавим несколько страниц, bootstrap, роутинг, концепцию Flux и ее популярную реализацию Redux.

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

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Время на прочтение22 мин
Количество просмотров196K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

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

Честный MVC на React + Redux

Время на прочтение5 мин
Количество просмотров66K

MVC


Эта статья о том, как построить архитектуру web-приложения в соответствии с принципами MVC на основе React и Redux. Прежде всего, она будет интересна тем разработчикам, кто уже знаком с этими технологиями, или тем, кому предстоит использовать их в новом проекте.

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

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Middle
Angular