Как стать автором
Обновить
696.04
OTUS
Цифровые навыки от ведущих экспертов
Сначала показывать

Гексагональная архитектура со Spring Boot

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

Гексагональная архитектура стала популярным архитектурным паттерном, помогающим отделить бизнес-логику от инфраструктуры. Такое разделение позволяет откладывать принятие решений о технологиях или легко заменять их. Кроме того, это позволяет тестировать бизнес-логику в изоляции от внешних систем.

В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении. Мы разделим бизнес-логику и инфраструктуру на отдельные модули и посмотрим, как можно изолированно реализовать и протестировать эти модули.

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

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

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

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

Меня зовут Дмитрий и я занимаюсь Agile трансформациями компаний и помогаю компаниям выстраивать процессы, а также являюсь основателем консалтингового агентства Smart units. Последние несколько лет выстраивал процессы заказной разработки, а также участвовал в крупных проектах реализации продукта вместе с вендором. И здесь набил много ошибок, а также сформировал набор правил того, как действительно нужно вести разработку продукта если вдруг вы являетесь либо Заказчиком, либо компанией которая предоставляет услуги по заказной разработки.

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

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

Концепция имплицитов в Scala

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

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

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

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

DevSecOps: Сканирование образов при отправке в Amazon ECR

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

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

Одним из ключевых моментов при работе с контейнерами является безопасность образов. Amazon Elastic Container Registry (Amazon ECR) предоставляет мощный инструмент для хранения Docker-образов, но безопасность этих образов играет критическую роль. В этой статье мы исследуем процесс сканирования образов на безопасность перед их отправкой в Amazon ECR, раскрывая методы и инструменты, которые помогают обеспечить непрерывную безопасность в DevSecOps-окружении.

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

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

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

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

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

Garbage Collection и JVM

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

Привет, Хабровчане!

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

Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.

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

MANIFESTO: Формализуем принципы работы команды

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

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

Одним из способов формирования культурного кода команды является формализация общего свода «правил», которым все члены команды обязательно должны придерживаться. Такой «формализованный» документ называется МАНИФЕСТ (или MANIFESTO). Если сказать общими словами, то МАНИФЕСТ — это документ, описывающий ценности, принципы и ожидания, которым сотрудник должен придерживаться при работе в команде. МАНИФЕСТ является общим трудом всей команды, которому все согласились придерживаться. Обычно для его создания собирается целая сессия, на которой каждый член команды может выговориться и проголосовать за те или иные элементы МАНИФЕСТА. В идеальном мире он должен вбирать в себя еще и основные фрагменты корпоративной культуры компании, но не полностью их дублировать (так сказать, иметь специфику самой команды).

Его структура нигде не закреплена и каждая команда определяет ее для себя. Я хочу поделиться своим примером манифеста для IT HR бизнес-партнеров и надеюсь, что кому-то он тоже будет полезен.

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

Основы Identity and Access Management (IAM) в архитектуре приложений

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

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

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

Identity and Access Management (IAM) выступает как наша первая линия обороны. Оно не просто защищает наши данные, но и гарантирует, что правильные люди имеют доступ к нужной информации в нужное время. Каждая вторая транзакция в мире происходит онлайн, безопасность становится не просто приоритетом, а необходимостью.

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

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

Технология единого входа: как работает SSO

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

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

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

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

Первые идеи SSO зародились в конце 1990-х, когда корпоративные сети стали более сложными, и потребность в централизованном управлении доступом стала очевидной. Это был период, когда организации начали искать способы упростить управление учетными записями для своих сотрудников.
В начале 2000-х было активное развитие технологий SSO. Организации начали внедрять SSO для упрощения доступа к корпоративным приложениям и ресурсам. Это также был период появления стандартов, таких как Kerberos, который лег в основу многих ранних реализаций SSO.
С развитием облачных технологий и мобильных устройств SSO начало получать ещё большее распространение. Возникли такие стандарты, как OAuth и OpenID, которые позволили SSO выйти за пределы корпоративных сетей и обеспечить интеграцию с обширным спектром внешних онлайн-сервисов и приложений.

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

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

Разбор crackme от KilLo (.net)

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


Предупреждение


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


Введение


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

Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 3

Как утереть нос NumPy с помощью двумерного БПФ

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

Двумерное преобразование Фурье — один из важнейших алгоритмов компьютерной науки этого столетия. Он нашел широкое применение в нашей повседневной жизни — от фильтров Instagram до обработки MP3-файлов.

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

По своей сути алгоритм, реализуемый NumPy, является поочередным применением обычного одномерного БПФ (FFT) к двум измерениям, что очевидно не может быть оптимальным решением.

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

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

Эффективность на максимум: Микрооптимизации в Golang

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

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

Каждая миллисекунда имеет значение, микрооптимизация это must have, особенно на языке Go.

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

Читать далее
Всего голосов 33: ↑18 и ↓15 +3
Комментарии 11

Лев Толстой о мобильной разработке: Искусство написания приложений

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

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

Так сказал бы Лев Николаевич Толстой.

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

Как цели ведут команды к успеху

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

Сегодня я расскажу вам о целях проекта и целях встреч, почему важно уделять этому пристальное внимание и возвращать команду к целям на ваших встречах.

Но прежде чем приступить к основной теме, хочу задать вам один вопрос: как часто вы присутствуете на встрече, совещании, продуктовой сессии или даже встрече топ-менеджеров по стратегическому планированию, где отсутствует цель встречи, где фасилитатор или заказчик встречи ее не озвучили или вовсе не определили при подготовке? 

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

Архитектура серверного рендеринга для SPA

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

Серверный рендеринг обеспечивает быстрый и надежный доступ к контенту. В этом подходе веб-страницы формируются на сервере, а не в браузере пользователя. Это позволяет значительно ускорить время загрузки, что особенно критично для современных одностраничных приложений, известных как SPA (Single-Page Applications).

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

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

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

Предсказательное моделирование (Predictive Modeling)

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

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

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

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

Обучение с подкреплением: 10 вариантов применения

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

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

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

Руководство по кэшированию в Django

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

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

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

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

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

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

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

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

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

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

Повышение эффективности воронки продаж. Автоматизация реактивации и контрольных точек с помощью Битрикс24. Часть 1

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

Начнем с небольшого предисловия. Битрикс24 позволяет автоматизировать множество разных процессов внутри компании. В частности в Битрикс есть большой и сильный блок автоматизации процессов работы с клиентами - CRM.

И за 7 лет работы с Битрикс24 я выделил несколько инструментов, которые позволяют повысить эффективность продаж. В этой статье хочу поделиться ТОП-3 инструментами:

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

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS