Как стать автором
Обновить
0
@Higomedread⁠-⁠only

Пользователь

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

Как написать автотесты деплоя и сэкономить нервы DevOps-инженеров

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

Привет! Меня зовут Артём Комаренко, я работаю на позиции QA Lead в команде PaaS в СберМаркете. Хочу поделиться историей, как мы придумывали способ быстро убедиться, что очередные изменения в скриптах деплоя не разломают процесс выкатки во всей компании. Статья будет полезна QA-специалистам и DevOps-инженерам, которые хотят автоматизировать тесты инфраструктуры.

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

Как бы вы реализовали форму аутентификации на сайте? Вопрос для собеседования на Junior/Middle/Senior?

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

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

Тема с одной стороны в общем-то простая, а с другой - многогранная. Можно сделать “на коленке”, а можно и “по-взрослому” -  зависит от знаний конкретного девелопера и технического задания. Ну и не привязывается к конкретному языку. Что nodejs, что .net, что PHP - на ответы это не влияет. Ну и отлично же! Давайте попробуем.

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

Как бы вы ответили на конкретный вопрос? Попробуйте проверить себя и потратить пару минут на обдумывание прежде чем читать ответ.

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

Итак, за вёсла!

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

Аутентификация и авторизация в микросервисных приложениях

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

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии15

Путь разработчика: чему не учат в школе и университете, но вы все равно этому научитесь

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

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

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

Как REST-архитектура влияет на скорость и надежность работы сайта

Время на прочтение3 мин
Количество просмотров49K
В основе REST-архитектуры лежит несколько важных базовых принципов, которые часто упускаются из вида начинающими программистами. Между тем, эти принципы имеют критическое значение для скорости и надежности работы веб-сайта. В некотором смысле REST — это архитектура, концентрирующаяся на совместимости и эффективном взаимодействии с другими узлами сети и клиентским ПО. Для них веб-сайт — черный ящик, реализующий HTTP интерфейс.

Унифицированный программный интерфейс


Ключевой момент: совместимость с HTTP-методами в плане безопасности и идемпотентности.

Безопасный запрос — это запрос, который не меняет состояние приложения.

Идемпотентный запрос — это запрос, эффект которого от многократного выполнения равен эффекту от однократного выполнения.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии31

Такие «джуны» нам не нужны

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

Не так давно наткнулся на статью в журнале Forbes. Основной ее посыл - молодым ИТ-специалистам все сложнее найти работу. Если раньше на это требовалось один-три месяца, то сейчас полгода и больше. Что тут скажешь, джун джуну рознь.

Читать далее
Всего голосов 126: ↑107 и ↓19+109
Комментарии347

Обзор модульного и интеграционного тестирования Spring Boot

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

Модульное и интеграционное тестирование - неотъемлемая часть вашей повседневной жизни как разработчика. Однако для новичков Spring Boot написание содержательных тестов для своих приложений оказывается проблемой:

- С чего начать мои усилия по тестированию?

- Как Spring Boot может помочь мне в написании эффективных тестов?

- Какие библиотеки мне использовать?

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

Читать далее
Рейтинг0
Комментарии1

Mockito и как его готовить

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

О статье


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


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

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии11

Hibernate для начинающих

Время на прочтение2 мин
Количество просмотров162K
Я сталкивался (да и не только я) с проблемой развертывания Hibernate и решил попробовать осветить данную тему. Hibernate — это популярный framework, цель которого связать ООП и реляционную базу данных. Работа с Hibernate сократит время разработки проекта в сравнении с обычным jdbc.

Для новичка программирования настройка framework часто вызывает затруднения. Помощь комьюнити с освещением базовых проблем поможет начинающим осваивать языки программирования быстрее. Статья предназначена только для начинающих в Java, которые впервые развертывают hibernate. Я развертывал hibernate на базе лицензионной IDEA.
Maven framework для автоматизации сборки проекта на основе POM, позволяющая подключать из интернета зависимости, не скачивая библиотеки в проект. POM (project object model) -декларативное описание проекта. Копируем название библиотек в xml формате с сайта mvnrepository.com.
Читать дальше →
Всего голосов 18: ↑11 и ↓7+4
Комментарии32

Просто о микросервисах

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

Вступление


Чуть ли не каждый второй, кто впервые сталкивается с MSA (Micro Service Architecture), на первых порах восклицает: «Да я эти микросервисы еще …надцать лет назад». Отчасти они правы. И я тоже был из этой самой половины, и не понимал — почему такой шум?



В самом деле! Ведь MSA — это тоже про разработку софта. Какие здесь могут быть революции? Все методики знакомы. В некоторых местах можно даже удивиться: «А разве бывает по-другому»? Фанаты Agile и DevOps тоже скажут, что это всё наше, родное.

Но всё же прошу вас набраться терпения и продолжить читать дальше.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии33

Разработка веб приложения на основе Java EE+JSP+Hibernate+Maven+Spring MVC в NetBeans. Часть 1

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

Вступление


Это будет серия статей, помогающих начинающим Java разработчикам в их нелегком пути. Покажу пример создания интернет магазина.
Первое что вам понадобится — это NetBeans 7.3. Скачать можно здесь.
Почему именно он? Думаю для начинающих в ЕЕ — это идеальный вариант.

Используемые технологии:
Читать дальше →
Всего голосов 15: ↑7 и ↓8-1
Комментарии14

Эпизод 1. Скрытая угроза Java Core. Уровень Юнглинг

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

Мы публикуем серию статей для подготовки к собеседованиям Java-разработчиков. Будем рассказывать о том, как разработчику успешно пройти собеседование и не поседеть во время чтения тонн мануалов. Мы не пытаемся создать энциклопедию, в которой будут отражены тысячи вопросов на интервью, но поможем понять – о чем могут спрашивать и как отвечать на сложные вопросы, чтобы избежать стресса. Итак, первый материал посвящен базовому уровню языка программирования Java Core.

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

Давным-давно,
в далекой-далекой галактике…

Юного Люка Скайуокера мучает разного рода вопросами пытливый мастер Йода. А Йода, как известно, писал код, когда мы еще с вами под стол ходили. Причем кодил он прямо в блокноте без дебаггера, intellij idea и прочей богомерзкой ерунды. Когда же он уставал от нововведений, то просто пихал в дисковод компьютера перфокарты…

Мир тебе, юный Люк. Вопрос мой первый слушай ты.
Читать дальше →
Всего голосов 14: ↑7 и ↓70
Комментарии27

REST API с использованием Spring Security и JWT

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

Рано или поздно каждый Java-разработчик столкнется с необходимостью реализовать защищенное REST API приложение. В этой статье хочу поделиться своей реализацией этой задачи.

Читать далее
Всего голосов 6: ↑2 и ↓40
Комментарии11

Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции

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

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

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

Шпаргалка Java программиста 1: JPA и Hibernate в вопросах и ответах

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

Знаете ли вы JPA? А Hibernate? А если проверить?

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.




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

Поехали...
Всего голосов 37: ↑32 и ↓5+27
Комментарии16

Изучаем ResponseEntity<?> и избавляемся от него в контроллерах Spring

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

Всем привет! Проверяя задания в учебном центре моей компании, обнаружил, что двумя словами описать то, как можно избавиться от ResponseEntity<?> в контроллерах не получится, и необходимо написать целую статью. Для начала, немного введения.

ВАЖНО! Статья написана для новичков в программировании и Spring в частности, которые знакомы со Spring на базовом уровне.

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

Spring Boot + Apache Kafka и SSL в Docker контейнере

Время на прочтение4 мин
Количество просмотров40K
Друзья, привет. В статье я расскажу как собрать решение для быстрого старта вашей разработки из standalone Java приложения, брокера и Zookeeper’а Kafka, поднятых в отдельных Docker контейнерах и настроенной plaintext авторизацией для доступа как с локальной машины, так и из внешнего контура.

Готовый проект на github можно забрать в конце статьи
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Мой идеальный ежедневник в Notion

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

Для студентов notion предоставляет платную лучную подписку абсолютно бесплатно. Чтобы ее получить нужно зарегистрировать аккаунт не на личную почту, а на почту, которую вам выдали в университете, затем вам придет письмо подтверждения на почту и все, можно использовать personal plan, который для обычных людей стоит 5$, абсолютно бесплатно. Я не уверен, что это работает во всех университетах, но в моем работает!

P.S. Замечу, что в своем обзоре я буду использовать веб версию приложения notion, но оно так же прекрасно работает на всех платформах и устройствах.

P.P.S. Для тех, кто уже давно освоил notion и сможет разобраться самостоятельно, финальная фотография моего сетапа ежедневника notion есть в конце статьи.

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

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

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

Чем быстрее идея воплотится в новый проект, тем больше шансов занять нишу, завоевать лояльность пользователей и, как следствие, стать успешнее конкурентов. Ускорить разработку и сделать её более гибкой и управляемой помогает микросервисная архитектура. Вместе с Дмитрием Горчаковым, руководителем отдела разработки РЕД-СОФТ, мы разобрали плюсы и минусы микросервисов, а ещё рассмотрели сценарии, как компании приходят к их внедрению.  

Читать далее
Всего голосов 18: ↑12 и ↓6+11
Комментарии22

Принципы SOLID в картинках

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


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

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

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

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

Ну, приступим.
Читать дальше →
Всего голосов 57: ↑52 и ↓5+54
Комментарии26
1

Информация

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