Как стать автором
Обновить
0
0

Разработчик под Atlassian

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

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

Читать далее
Всего голосов 446: ↑438 и ↓8+490
Комментарии354

Современные команды и фичи Git, которыми стоит пользоваться

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

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

С тех пор в Git появилось множество фич, пользование которыми может сильно упросить вашу жизнь. Так давайте исследуем некоторые из недавно добавленных современных команд git, о которых вам стоит знать.

Читать далее
Всего голосов 60: ↑58 и ↓2+71
Комментарии29

Игра на ECS и как мы там живем

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

Привет, Хабр.

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

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

Что такое Entity System Framework и зачем он нужен в геймдеве?

Время на прочтение18 мин
Количество просмотров50K
На Хабре уже есть очень много интересных статей про создание игры с нуля, но мало статей, описывающих что делать, чтобы своя любимая поделка не превратилась во Франкенштейна и дошла до вменяемого состояния. Автор оригинальной статьи рассказывает, как эволюционировал код игрового движка от кучи хлама в основном цикле к продуманной, расширяемой архитектуре, использующей Entity Component System. В статье много кода, который почти весь часто повторяется — но я не стал его выбрасывать, поскольку с ним будет понятнее, какие изменения вносит автор и как это отражается на всей структуре. Статья рассчитана на новичков, вроде меня, которые уже настрочили несколько «гениальных» прототипов, но теперь не знают, как разобраться в их коде.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии12

Всё что нужно знать про ECS

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

Привет, Хабр! В этой статье я расскажу всё, что знаю про Entity-Component-System и попытаюсь развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках ECS, об особенностях этого подхода, о том как с ним подружиться, о потенциальных граблях, о полезных практиках, а также в отдельном разделе коротко посмотрим на ECS фреймворки для Unity/C#.

Окунуться в мир ECS
Всего голосов 35: ↑34 и ↓1+36
Комментарии24

Мой тернистый путь в «Разработке Игр»

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

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

ВНИМАНИЕ! Дальше вас ждет простыня текста без юмора. Душнилово так же присутствует. Я не буду называть некоторые компании, в том числе и ту, в которой я работаю сейчас, чтобы, если меня понесёт, я не переписывал статью. Из песни слов не выкинешь. Позже, когда уволюсь, отредактирую добавив название компании. По тем же соображениям, чтобы ненарушать права на интеллектуальную собственность я не выкладываю куски кода, о которых пишу в статье. Опять же в будущем может быть добавлю.

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

Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ

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

Для тестирования Java-приложений создано столько полезных инструментов, что в них немудрено запутаться. Вместе с тем с помощью каждого из них можно решить строго определенный круг прикладных задач. Меня зовут Константин Шибков, я старший Java-разработчик CDEK и программный директор курсов по Java в Skillbox. Сегодня расскажу о практике использования фреймворка для модульного тестирования JUnit 5, а также покажу на конкретных примерах, как проводятся стандартные юнит-тесты и параметризованные тесты. Вы сможете самостоятельно повторить их, воспользовавшись подготовленным репозиторием с готовыми примерами тестов на Java. 

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

Делаем свою простейшую систему сборки для Java

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

Довелось мне обучать одного знакомого, желающего войти в ИТ (привет, Саша!). Человек он упорный, прошел разные курсы, стажировки, упорно продолжает идти вперед и уже вполне тянет на уровень джуна и решает прикладные задачи. Но иногда внезапно задает такие вопросы, из которых я понимаю, что у него огромные дыры в базовых знаниях и представлениях. На курсах этому, видимо, не учат.

Один из последних вопросов был про устройство сборки, непонимание того как исходный код собирается в исполняемый и запускается. Начинающим обычно говорят в духе «вот создаешь Gradle‑проект, в IDE жмешь кнопочку запуска и все работает». Но как только возникает необходимость что‑то в этом простом процессе усложнить, или понять — начинаются проблемы.

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

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

Читать далее
Всего голосов 31: ↑30 и ↓1+36
Комментарии17

Опыт построения интеграционной платформы на базе ServiceMix (Camel) и RabbitMQ

Время на прочтение13 мин
Количество просмотров28K
Как только в компании появляется хотя бы две информационных системы, которым необходимо обмениваться данными, возникает вопрос, как организовать их взаимодействие. Вариантов множество: файловый обмен, линки между базами данных, web или rest сервисы, различные системы обмена сообщениями, устаревшие RPC и CORBA, новомодный gRPC и т.д. Выбор зависит от предпочтений участников проекта и от возможностей систем (архитектура системы, используемая платформа, наличие готового API и пр.). Предположим, выбрали какой-то способ обмена, системы начали взаимодействовать, все хорошо. Но потом возникает третья система, с которой тоже надо интегрироваться, потом четвертая и т.д. Нужно опять садиться и выбирать способ обмена, и не факт что удастся ограничиться уже используемыми технологиями (где-то это продиктовано ограничениями новых систем, где-то разработчик настоял на другой технологии или захотел попробовать что-то новое). С ростом количества систем растет количество и сложность взаимодействий между ними, растет количество используемых технологий. В итоге вся интеграционная архитектура компании начинает напоминать запутанный клубок разноцветных ниток, как-то связывающих системы компании, который все сложнее распутывать при разборе ошибок и доработках. Рано или поздно начинают приходить мысли о создании единой интеграционной среды, которая прозрачно и расширяемо свяжет все системы воедино.

В этой статье я расскажу об опыте использования Apache ServiceMix (Camel) и RabbitMQ для построения такой интеграционной среды.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии35

Обзор ESB-систем ServiceMix и Fuse

Время на прочтение4 мин
Количество просмотров39K
Представляю вашему вниманию небольшой обзор систем ESB (Enterprise Service Bus) на основе Apache Camel: Apache ServiceMix и Red Hat JBoss Fuse. Эти две системы построены на одних и тех же компонентах и обладают схожими возможностями. Более того, в большинстве случаев, они взаимозаменяемы. Apache ServiceMix разрабатывается open-source сообществом, Red Hat JBoss Fuse компанией Red Hat. По большей части, это одни и те же люди.


Для начала, разберемся что такое ESB и зачем системы такого класса используются в информационной инфраструктуре предприятий. На современных предприятиях используется всё большей приложений различного класса: ERP, CRM, BPM, DWH, ECM и ещё множество трех-буквенных аббревиатур. Все эти приложения используют для интеграции различные протоколы и различные форматы данных. Для того чтобы связать все эти системы между собой и используется ESB.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии18

Внедряем OSGI на платформе Karaf

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

OSGI это не сложно


Я много раз встречал мнение, что OSGI это сложно. И более того, у самого когда-то такое мнение было. Году в 2009, если быть точным. На тот момент мы собирали проекты при помощи Maven Tycho, и деплоили их в Equinox. И это действительно было сложнее, чем разрабатывать и собирать проекты под JavaEE (в тот момент как раз появилась версия EJB 3, на которую мы и переходили). Equinox был намного менее удобен по сравнению с Weblogic, например, а преимущества OSGI тогда мне были не очевидны.

Зато потом, через много лет, мне пришлось на новой работе взяться за проект, который был задуман на основе Apache Camel и Apache Karaf. Это была не моя идея, я давно знал к тому моменту про Camel, и решил почитать про Karaf, даже еще не имея оффера. Почитал один вечер, и понял — вот же оно, простое и готовое, практически то же самое решение некоторых проблем типового JavaEE, аналогичное которому я когда-то делал на коленке при помощи Weblogic WLST, Jython, и Maven Aether.

Итак, допустим вы решили попробовать OSGI на платформе Karaf. С чего начнем?
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии51

Разработка сервисов без боли: как подступиться к созданию PaaS

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

Всем привет! Меня зовут Александр Ермолаев, я один из лидов в IT-платформе СберМаркета. Моя команда занимается разработкой шаблонов, библиотек и некоторых инструментов для создания микросервисов.

В этой статье я расскажу, с чего мы начали строить PaaS в далёком 2020 году, с какими проблемами столкнулись и как их решали. Материал будет особенно актуален для тех, кто задумывается о старте разработки IT-платформы у себя в компании и не знает, с какой стороны подступиться к этому непростому делу. Поехали!

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

10 смертных грехов оценок задач в IT

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

Искусство и наука об оценки в IT:

 — Наука оценки хорошо развита и хорошо поддерживается программными инструментами.

— Искусство оценки преимущественно основано на эмпирических правилах и их еще нужно немного доработать.

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

ITить-КОЛОТИТЬ, серии 18-19

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

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

Читать далее
Всего голосов 22: ↑20 и ↓2+19
Комментарии8

Пишем код без NPE. Настройка Intellij Idea и CI

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

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

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

Программирование JavaFX: разработка элементов интерфейса

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

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

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

Настраиваем память JVM-приложения в Kubernetes

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

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Всего голосов 36: ↑34 и ↓2+38
Комментарии9

Кинотерапия — более 150 фильмов, которые пересматривают

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

Фильмы - это лекарство для психики. Что включается у нас в голове, когда мы смотрим фильм? Возможно превратить просмотр кино в индивидуальную психотерапию?

Для начала отделим мух от котлет. Психолог, психотерапевт, психиатр и невролог чем они отличаются? Самое простое отличие в том, что психолог не является врачом. Психотерапевт, психиатр и невролог - это врачи.

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

BPMN не в теории, а на практике

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

Или ментальные «ловушки», которые мешают аналитикам использовать нотации.

От системного аналитика требуют знание нотации BPMN (Business Process Model and Notation). Недавно среди своих коллег — системных аналитиков — я провела опрос о BPMN. Мне было интересно узнать используют ли мои коллеги нотацию, как именно и в чём сложности. В результате я нашла парадокс: большинство коллег считают, что нотации необходимы в работе, но на практике используют меньше половины. Почему возник такой парадокс и как его решить?

Попробую разобраться
Всего голосов 27: ↑25 и ↓2+23
Комментарии20

Ни один план не переживает встречи с противником: Как мы переезжали на новый платежный сервис

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

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

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

Информация

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

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

Backend Developer
Senior
Linux
Java
Git