Как стать автором
Обновить
0
0
Лежневич Никита @Kenya

PHP-программист

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

OpenAPI станет проще: готовится версия 4.0

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K


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

До появления расширения OpenAPI DevTools проектировать схему OpenAPI приходилось вручную. Хотя это было непросто, оно того стоит в любом случае. Недавно мы в RUVDS переделали свой API под данный стандарт — и увидели, насколько это эффективно и полезно для всех пользователей и разработчиков, которые обращаются к серверным API.

Сейчас в разработке находится четвёртая версия OpenAPI. Она станет проще и универсальнее, то есть подойдёт даже для тех HTTP API, для которых не годится текущая версия 3.0 (3.1.0).
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии9

Nginx и Keycloak: Идеальное сочетание для обеспечения безопасности приложений

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров14K

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

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

Понимание разницы: Аутентификация vs Авторизация

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

1. Аутентификация

Определение: Аутентификация - это процесс проверки подлинности личности пользователя, системы или приложения. Она отвечает на вопрос: «Вы тот, за кого себя выдаете?»

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

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии10

Pet-проекты — это зло. Вредные советы для фронтендеров

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

Привет, Хабр! Меня зовут Александр Водолазских. Я руковожу направлением разработки интерфейсов в СберМаркете и после работы люблю посидеть за кодом, разрабатывая собственные пет проекты. 

Чего я только не кодил по вечерам: писал смарт контракты на Solidity, копался с разными фреймворками и библиотеками, пилил свой убийцу Twitter на react.js... В какой-то момент фронтенд мне поднадоел, и яначал изучать разработку под node, nest, после - на go. А после - начал экспериментировать с мобильной разработкой на Swift.

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

Мой сегодняшний текст — о том, как, мне кажется, нужно и нельзя вести пет-проекты. 

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

Читать далее
Всего голосов 35: ↑32 и ↓3+29
Комментарии23

История появления Амперки

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

Хабраридерам, привет!

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

Итак, если вам интересна история появления одного малого бизнеса, прошу под кат.

Читать дальше →
Всего голосов 170: ↑163 и ↓7+156
Комментарии61

Android WebView: актуальные проблемы и их решение

Время на прочтение13 мин
Количество просмотров177K
На прошедшей встрече AndroidDevs Meetup выступили несколько разработчиков из команды мессенджера ICQ. Мой доклад был посвящен Android WebView. Для всех, кто не смог приехать на встречу, публикую здесь статью по мотивам выступления. Пойду по верхам, крупными штрихами. Глубоких технических деталей и много кода давать не буду. Если вас заинтересуют подробности, по ссылке в конце поста можно скачать приложение, специально написанное в качестве иллюстрации, и все увидеть на примерах.

Что такое WebView?


WebView — это компонент платформы Android, который позволяет встраивать web-страницы в Android-приложения. По сути, это встраиваемый браузер. При помощи WebView примерно год назад мы решили создать ICQ Web API для интеграции web-приложений в наш мессенджер. Что представляет собой web-приложение? По сути, это HTML-страница, которая содержит JavaScript и работает внутри ICQ. Используя ICQ Web API, web-страницы через JavaScript могут отдавать ICQ разные команды, допустим, на отправку сообщений, открытие чата и т.п.


Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии2

Как сделать поиск в интернет-магазине

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.6K

Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.

Я запускал около десятка e-commerce проектов, и в каждом из них делал поиск. Этот опыт постарался обобщить в инструкцию по созданию подобного рода систем.

Рассказывать буду на примере проекта Vprok.ru — это мой текущий, самый крупный проект. Он входит в Х5 Digital и занимает на российском рынке третье место: 10 регионов присутствия, более 72 тысяч товаров, примерно 300 RPS на товарные запросы и около 700 тысяч комбинаций товар+склад.

Найдется все
Всего голосов 13: ↑11 и ↓2+9
Комментарии8

Книга «100 ошибок Go и как их избежать»

Время на прочтение10 мин
Количество просмотров7.5K
image Привет, Хаброжители!

Лучший способ улучшить код — понять и исправить ошибки, сделанные при его написании. В этой уникальной книге проанализированы 100 типичных ошибок и неэффективных приемов в Go-приложениях.

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

Для опытных Go-разработчиков, хорошо знакомых с синтаксисом языка.
Для кого эта книга
Эта книга предназначена для разработчиков, уже знакомых с языком Go. В ней не рассматриваются его основные понятия — синтаксис или ключевые слова. Предполагается, что вы уже занимались реальным проектом на Go. Но прежде чем углубляться в большинство конкретных тем, удостоверимся, что некоторые базовые вещи понимаются ясно и четко.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии13

Измеряем команду с JIRA и Grafana: sprint reports, грейдирование и не только

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

Всем привет! Меня зовут Дмитрий Шкилёв, я тимлид команды Teachers Platform. Мы занимаемся личным кабинетом преподавателя и внутренними ресурсами, которые необходимы для обеспечения работы преподавателей. 

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии21

Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров11K

1. Введенние.
2. Zval.
3. Циклические ссылки.
4. Сборщик мусора.
5. Алгоритм работы сборщика мусора.
6. Смотрим глазами.
7. Слабые ссылки.
8. Бонус-трэк: WeakMap.
9. Заключение.

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии6

Опыт установки маячков Apple iBeacon & Google Physical Web в ТРК Семеновский в Москве

Время на прочтение2 мин
Количество просмотров1.9K
Привет, Хабр! Хочу поделиться нашим опытом установки маячков Apple iBeacon & Google Eddystone Physical Web в двух торговых центрах (все это делается в рамках проекта letmeget.ru). Один в Москве (ТРК Семеновский) и один в Питере (ТРК Гулливер). Ниже, под катом, два видео — одно вводное (зачем мы вообще это делали, какие задачи с помощью маячков решает торговый центр), а второе — уже с некоторыми промежуточными выводами.

Всего было поставлено около 100 маячков, можно посетить эти ТРК чтобы самостоятельно посмотреть как эти две технологии работают. Я очень часто встречаю замечания, что именно именно технология Bluetooth является сдерживающим фактором массового внедрения, а точнее — процент людей, которые включают ее на своих смартфонах. В Северной Америке процент людей с включенным BT оценивается в ~40%, а в России, по итогам тестирования технологий в двух торговых центрах — около 10%. Кто-то скажет что это совсем немного (10%), но вдумайтесь — если у вас розничная сеть, то вы сможете с 10% ваших лояльных клиентов выстроить более тесные коммуникации в ваших локациях с помощью push — уведомлений (мотивирующих, с промо-кодами и т.п.). Если посмотреть западный опыт, то там количество установок маячков имеет явный восходящий тренд.
Читать дальше →
Всего голосов 11: ↑4 и ↓7-3
Комментарии6

Концепция Physical web. Bluetooth маячки. Сравнение стандартов iBeacon, AltBeacon и Eddystone

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

Последние несколько лет я занимаюсь R&D в области интернета вещей и распределенных систем, а так же являюсь Google developer expert IoT. В этой статье я хочу поделиться своим опытом и рассказать про новую концепцию Physical Web. Так же расскажу про разные маячки (англ. Beacon — маяк) и сравню основные стандарты iBeacon, Altbeacon и Eddystone.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии7

Делаем стартап просто и технологично. Маячки Eddystone

Время на прочтение11 мин
Количество просмотров12K
Вы когда-нибудь были в Лувре? Добрались до Мона-Лизы? Если да, то наверняка вы увидели лишь большую очередь перед ней, а саму картину лишь издалека и не в полный размер. Люди хотят изучить подробнее полотно, запомнить каждую его деталь, узнать о нем все подробности, поэтому они надолго остаются рядом с ним. Но что, если всю эту информацию перенести прямо в смартфон? Сделать так, чтобы картина сама рассказала устройству о себе, а оно передало информацию вам?


Статья автора Алексея Набережного, в рамках проекта «Devces Lab от Google».
Подробнее
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

Анатомия игры: раздача плюшек

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


▎Доброго времени суток, дорогие хабражители!

 
Мы продолжаем серию статей про игростройство и моддинг с элементами туториала. В прошлый раз мы остановились на том, что создали заклинание призыва и поместили его в мир игры так, чтобы им мог воспользоваться игрок. Для этого мы создали заклинание и эффект заклинания (собственно, призыв существа), поместили его в том заклинаний и занесли этот том на стол к одному из игровых NPC.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии5

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4K

Привет!

Меня зовут Петр Коробейников, я техлид команды DBaaS for Redis в #CloudMTS.
Некоторое время назад я озадачился созданием общего набора инструментов для наших команд разработки. Цель была проста: разработчик не тратит время на погружение в логику работы конкретного инструмента, берет готовую инструкцию и просто делает свое дело — пишет код. Типовое окружение поможет переходить ребятам из команды в команду и быстро адаптироваться, а новичку — проще приступить к работе.

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

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии10

Как разминировать свой код на PHP (и не только)?

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров4.7K

«Мины» в исходном коде — это не только уязвимости, но и прочие дефекты безопасности, которые так или иначе ухудшают качество софта. Какими путями «минируется» ваш код и какие типы «мин» наиболее актуальные? Поговорим об этом в контексте веб-программирования и PHP.

О «минах» в коде расскажет Илья Поляков, руководитель отдела анализа кода Angara Security. Илья поделится какими инструментами разминировать код и какие уязвимости и дефекты безопасности можно найти максимально быстро и дешево.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

PostgreSQL: настройка и оптимизация производительности. Часть 2

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Как настроить Gitlab CI/CD для Android и Firebase App Distribution для доставки сборок

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

Привет, меня зовут Антон Рябых, я технический директор компании Doubletapp, и я расскажу, как реализовать сборку Android-приложений на Gitlab CI/CD с последующей загрузкой в Firebase App Distribution для удобной доставки.

Это позволит нам:

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

Данная статья будет полезна как людям с опытом в CI/CD, так и Android-разработчикам — новичкам в CI/CD и DevOps теме в целом. Поэтому, кроме непосредственного описания настройки Gitlab CI и Firebase App Distribution, мы также поговорим о том, что такое CI/CD, и о том, что такое Docker. Статья подразумевает, что ваш репозиторий находится в Gitlab. В качестве вычислительных мощностей, собирающих сборки, будет использован сам Gitlab, дающий 2000 бесплатных минут для сборок в месяц (большее количество минут можно докупать, но для небольшой команды бесплатного лимита может быть достаточно. Также можно легко настроить запуск сборок на своих мощностях).

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

PHPStorm + XDebug + Docker

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

Ещё одна статья на избитую тему? Да! Потому что за два часа поиска не нашёл ни одной, по которой можно было пройтись от и до и получить работающее окружение.

Шагов, на самом деле, немного, все очень простые, нужно лишь...

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии10

Книги по SQL: что почитать новичкам и специалистам

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

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

Читали ли вы какие-нибудь из них? Или, может, вы можете дополнить этот список? Делитесь в комментариях!
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии23

Задачка «Вооружимся архитектурой»

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

Всем привет! Меня зовут Дядиченко Григорий, и я технический продюсер. В своём блоге в телеграм я периодически публикую задачки по Unity. Решение одной задачки получается слишком длинным, чтобы писать про него в блог. Поэтому я решил это оформить в статью. Задачка звучит так.

Вы решили сделать с друзьями свой скайрим. У вас пока в игре есть два вида оружия: молот и меч. Они отличаются уроном, прочностью и скоростью атаки. Плюс логикой атаки. Атака молота аое в круговой зоне. Атака меча бьёт до 3 ближайших противников. К вам пришёл катжит и за лунный сахар предложил купить у него схему архитектуры на картинке выше. Предложите решение лучше. В чём проблема данной схемы?

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность