Search
Write a publication
Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Docker: как создавать образы контейнеров и развертывать приложения

Level of difficultyMedium
Reading time9 min
Views46K

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

Читать далее

Потоки в Java: От рождения до смерти. Введение в многопоточность

Level of difficultyEasy
Reading time6 min
Views22K

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

Жизненный цикл потока - основная концепция Java, которую мы подробно рассмотрим в этой статье. Мы будем использовать краткую иллюстрированную диаграмму и фрагменты практического кода, чтобы более глубоко понять состояния потока во время его выполнения. Эта статья о создании потока - отличное начало для понимания потоков в Java.

Читать далее

10 полезных Github репозиториев для тестировщиков

Reading time5 min
Views17K

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

Читать далее

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views324K

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

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее

Мастерство многопоточности: Превращаем Java в шедевр параллельного программирования

Level of difficultyEasy
Reading time4 min
Views16K

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

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

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

Читать далее

Пишем Kotlin DSL для графов навигации в домашних условиях

Level of difficultyEasy
Reading time12 min
Views5.2K

Всем привет! Я Тимур, лид одной из android-команд. Больше трех лет работаю в Тинькофф, все это время был в привлечении и занимался флоу получения разных банковских продуктов.

Расскажу, как мы сделали свой DSL для того, чтобы строить логику навигации в наших флоу.

Читать далее

Теория сложности

Level of difficultyEasy
Reading time7 min
Views11K

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

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

Формулы, используемые в теории сложности, часто связаны с вычислительной сложностью задач. Например, NP-полные задачи, которые являются одними из самых сложных для вычисления, описываются с помощью полиномиальных уравнений. Сложность задачи может быть выражена как O(n^k), где n — размер входных данных, а k — степень, определяющая сложность алгоритма.

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

Читать далее

Тестируем отечественную систему виртуализации: VMmanager

Reading time11 min
Views30K

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

В первой статье моего цикла я предложил читателям выбрать системы виртуализации, которые должны стать «подопытными кроликами» в моем исследовании. Одним из лидеров народного голосования стала российская платформа VMmanager. Пришло время посмотреть, что из себя представляет это решение, какие функции реализовал разработчик и для каких сценариев я бы мог рекомендовать эту платформу.

Читать далее

Как сделать автотесты гибкими и лаконичными

Reading time12 min
Views5.5K

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



Меня зовут Арсений Федоров, я — разработчик автоматизированных тестов в команде Kaspersky Internet Security for Android. В этой статье покажу, как можно избежать всех вышеперечисленных проблем, выбрав другой подход к разработке автотестов, а также разберу несколько хороших практик.

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

Большой гайд по планированию. Как впихнуть в сутки 40 часов и оставить время на личную жизнь?

Level of difficultyEasy
Reading time8 min
Views94K

Всем привет, на связи команда Skill Vortex!

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

Перед ним стояла задача – каким-то чудом совместить стажировку на полную ставку, учебу в ВУЗе, изучение иностранного языка и личную жизнь.

История показалась нам довольно интересной, поэтому на ее основе мы решили написать подобие руководства по планированию и оптимизации времени.

В этой статье:

Чуть подробнее про историю

Начинаем первичную обработку: утечки, приоритезация и пожелания

Составляем нормальное расписание: 7 основных принципов

Ищем недостатки в получившемся

Еще пара универсальных советов

Заключение и полезные ссылки

Читать далее

Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking

Level of difficultyHard
Reading time18 min
Views16K

Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно - разработки игрового websocket-tcp сервера на Netty.
Разберем технические особенности реализации такого сервера, способы улучшения производительности, игровую логику и т.д.

Читать далее

Главные проблемы сайта, которые показывает нагрузочное тестирование

Reading time9 min
Views4.7K

Всем привет! На связи ITSumma.За 15 лет, что мы делаем нагрузочное тестирование, у нас накопился список самых распространенных ошибок, которые совершают, когда строят и отлаживают инфраструктуру.

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

Читать далее

Ускоряем программу для 50-летнего процессора на 180000%

Level of difficultyHard
Reading time36 min
Views47K

В прошлом году я написал программу, вычисляющую 255 цифр числа π на самом первом микропроцессоре от Intel - 4004. В той статье я упоминал рекорд ENIAC'a - 2035 цифр [^1], но побить его не смог. Настало время закрыть гештальт. В этот раз возьмём одного из преемников от Intel - 4040.

Читать далее

Как перейти из ручного тестирования в автоматизированное

Level of difficultyEasy
Reading time8 min
Views20K

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

Рассмотрим две отправные точки погружения в автоматизацию: 1) когда начинающий специалист задумался о переходе на этапе обучения или выбрал путь автоматизатора изначально; 2) опытный инженер в роли Manual QA на проекте.

Читать далее

Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой

Reading time8 min
Views891K


В преддверии старта курса «CI/CD на AWS, Azure и Gitlab» подготовили для вас перевод полезного материала.



Непрерывная интеграция (Continuous Integration, CI) и непрерывная поставка (Continuous Delivery, CD) представляют собой культуру, набор принципов и практик, которые позволяют разработчикам чаще и надежнее развертывать изменения программного обеспечения.

CI/CD — это одна из DevOps-практик. Она также относится и к agile-практикам: автоматизация развертывания позволяет разработчикам сосредоточиться на реализации бизнес-требований, на качестве кода и безопасности.
Читать дальше →

Что такое API-шлюзы и Gateway API и почему за ними будущее нативных облачных приложений

Level of difficultyMedium
Reading time10 min
Views76K

В этой статье мы рассмотрим, почему API-шлюзы стали ключевым элементом экосистемы современных облачных вычислений и как появление Kubernetes API Gateway упростило и стандартизировало работу с ними. 

Статья составлена на основе сразу двух англоязычных материалов. В первом (его мы поместили в самое начало) авторы на примере профессий объясняют роль различных компонентов облачных приложений, а во втором — проводят глубокий анализ все возрастающей значимости API-шлюзов для экосистемы облачных приложений, их места в рамках концепции «Kubernetes — облачная операционная система» и того, как повлияет на дальнейшее развитие API-шлюзов появление Kubernetes API Gateway. 

Читать далее

Эта неделя в мире Java (3 ноября)

Level of difficultyEasy
Reading time5 min
Views8.8K

Java-дайджест за последнюю неделю (3 ноября):

• Spring, Jakarta, Web

• IDE и редакторы

• Тестирование

• Статьи и подкасты

• Обзор статей на Хабре

Волшебно. Читать далее

Тестирование проектов: ожидание и реальность

Level of difficultyEasy
Reading time5 min
Views8.3K

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

Читать далее

@Scheduled + @Async (в Spring Boot)

Level of difficultyEasy
Reading time4 min
Views25K

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

Многие начинающие разработчики на java не до конца понимают в каких потоках происходит выполнение программы в таком случае.

В данном материале постараюсь объяснить зачем аннотации @Scheduled и @Async ставят вместе, какая проблема при этом решается, в каких потоках происходит работа программы и как делать правильно.

Подписывайтесь на мой блог в телеграм, где я раньше всего публикую все материалы.

Читать далее

Как мне захотелось систематизировать виды тестирования

Level of difficultyEasy
Reading time11 min
Views42K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity