Как стать автором
Обновить
17
0
Артур Вартанян @rogue06

Разработчик

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

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

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

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

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

Зачем нужно соединять Java-программу на компьютере и Arduino?

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

Картинка rawpixel

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

Такой симбиоз даёт возможность как управлять платой с компьютера, так и наоборот — компьютером с платы. Об этом мы и поговорим в этой статье.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Микросервисная архитектура в разработке приложений: преимущества и недостатки

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

В современной экономике создание программного обеспечения (ПО) — это целая индустрия, которая, с одной стороны, оказывает помощь бизнесу в автоматизации и цифровизации всех процессов, а с другой стороны, самостоятельно приносит прибыль и создает виртуальные активы. В настоящее время проектирование в сфере R&D усложнилось, количество программистов постоянно растет, задачи для них становятся все более сложными. Эти причины привели к появлению новых методологий разработки ПО и видов архитектуры.

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

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

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

gRPC vs REST, что выбрать для нового сервера?

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

Всем приветы. А вы писали новый сервер с нуля? Какие технологии использовали? А рассматривали какие-либо варианты кроме старого доброго REST ? А что есть еще что-то ? С такими вопросами я когда-то пришел к своему лиду.  Да, для меня было открытием, что можно использовать не только REST для обмена сообщениями между сервером и клиентом. Ах да, конечно я знал про SOAP, но использовать его уж очень не хотелось. Оказалось, что можно попробовать использовать Thrift или например gRPC. От Thrift пришлось отказаться по ряду причин, которые не сильно важны в данной статье. Кстати, возможно Thrift это именно то что вам нужно. 

Так что же такое gRPC и в чем его отличие от, уже ставшего классическим, REST? Лучше ли gRPC? Может gRPC это снова хипстерская технология, которую все скоро забудут?

   Не для кого ни секрет, что REST доминирует в современном мире API, особенно, когда речь идет о веб-приложениях и инфраструктурах, на основе микросервисов. Мало кто даже вспомнит, про то что микросервисы могут общаться по другому. Это наверное самый популярный ответ на собеседовании. Да если добавить еще feign клиента из Spring, то получается совсем красота и минимальные трудо затраты. Но для определенного набора сценариев использования, модель gRPC начала играть небольшую, но важную роль. Давайте попробуем разобраться, когда же нам стоит использовать REST, а когда gRPC.

Read more gRPC vs REST
Всего голосов 6: ↑3 и ↓3+2
Комментарии31

Хранимые процедуры: описание, лимиты и примеры

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

В этой статье я расскажу о хранимых процедурах. Как их использовать и зачем, лимиты, примеры крутых процедуры которые я использую.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Обработка исключений в Java в функциональном стиле

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

В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.

Предпосылки

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

Читать далее
Всего голосов 33: ↑30 и ↓3+34
Комментарии32

Как войти в блокчейн-разработку через Java и Kotlin: представляем JVM SDK смарт-контрактов

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

Всем привет! Меня зовут Степан Кашинцев, я руководитель группы разработки в Waves Enterprise, а конкретно — подразделения, отвечающего за создание децентрализованных приложений, реализующих процессы реального бизнеса на базе нашего блокчейна. В этом посте я хочу рассказать о нашем SDK для JVM-языков программирования, с помощью которого каждый Java/Kotlin-разработчик сможет попробовать себя в создании блокчейн-приложений.

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

Нормализуем логи OpenFeign

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

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

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

Решение ‘Normalized Logger’ нацелено исправить этот изъян - этот логгер собирает в одну запись будущего лога запрос и ответ - теперь они не будут разбросаны.

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

К микросервисам через reverse engineering и кодогенерацию

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

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

Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы.  В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.

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

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

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

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

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

Спящий гигант, или Почему Cardano продолжает и выигрывает

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

Cardano и Ethereum — блокчейны, у которых схожие возможности и они неизбежно подвергаются сравнению друг с другом. Постепенно расстановка сил меняется, и о  Cardano всё чаще говорят как об «убийце Ethereum». Разбираемся в особенностях технологии Cardano, смотрим, есть ли основания для слухов и рассказываем, почему Cardano может стать мощнее, быстрее и доступнее, чем Ethereum или Bitcoin.

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

Как происходит генерация мира Minecraft

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

Задумывались ли вы когда-нибудь, сколько на нашей планете песчинок? По грубым оценкам, более 7 квинтиллионов! Это 7 с 18 нулями. И всё-таки это даже меньше половины количества уникальных миров в Minecraft. Как же Minecraft и другим похожим играм удаётся создавать такие сложные, красивые, однако полностью процедурные миры? В этой статье я расскажу, как игра генерирует свои миры, от самой высокой горы до самой глубокой пещеры.

Часть 1: процедурная генерация


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

Однако первой игрой с процедурно сгенерированным миром является «Elite», первая версия которой вышла для компьютера BBC Micro в 1984 году. Это прапрадед относительно новой «Elite: Dangerous», выпущенной в 2014 году.


Автоматическая генерация новых миров может казаться привлекательным способом ленивого создания бесконечного контента для игры. Однако на самом деле всё наоборот! Чтобы научить машину тому, как выглядит хороший уровень… нужно быть очень хорошим программистом и дизайнером уровней.

Контент должен быть достаточно разнообразным, чтобы выглядеть свежим, но не настолько разнообразным, чтобы казаться атипичным. И необходимо создавать миры, на которые не просто интересно смотреть, но которые обеспечивают справедливую с точки зрения игрока сложность.
Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии17

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

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

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

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

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

Оценка сложности алгоритмов

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

Введение


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

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

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

Подробности
Всего голосов 43: ↑30 и ↓13+17
Комментарии10

Настройка cервера с помощью docker для простых проектов. Часть вторая: docker-compose

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

Настройка cервера с помощью docker для простых проектов. Инструкция для самых маленьких. Часть вторая: docker-compose.

Мы продолжаем цикл обучающих статей для самых маленьких наших читателей. В данном обучении мы бы хотели разобрать docker-compose. Данная статья рассчитана на начинающих системных администраторов. Если вы являетесь опытным администратором, можете смело пропускать данный материал. Она призвана объяснить простыми словами, что такое docker-compose. Не смотря на то, что тема уже достаточно подробно отражена в сети, мы решили подробно описать общие стандарты администрирования с нуля, поскольку регулярно получаем большое количество базовых вопросов от людей, так или иначе, связанных с нашей сферой. Целью статей не является показать как развернуть идеальное окружение, а лишь указать на нюансы в работе и защитить начинающих специалистов от базовых ошибок при настройке.

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

Docker Swarm для самых маленьких

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

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

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

Информация

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

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

Backend Developer
Middle
Java
OOP
PostgreSQL
Database
Git
Linux
Docker
Java Spring Framework
Hibernate
REST