Как стать автором
Обновить
54
0
Волосатов Евгений @FFormula

Программист и Преподаватель

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

Концепция RAII (Resource Acquisition Is Initialization)

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

Здравствуй, Хабр!

RAII (Resource Acquisition Is Initialization) - это важная концепция в C++. Она представляет собой парадигму управления ресурсами, которая способствует безопасности и эффективности кода. В основе RAII лежит идея связывания жизненного цикла ресурса (например, памяти, файлового дескриптора или других ресурсов) с жизненным циклом объекта в C++. Это означает, что ресурсы выделяются и освобождаются автоматически при создании и уничтожении объектов.

В C++ управление ресурсами, такими как динамическая память или открытые файлы, может быть источником множества проблем, таких как утечки памяти, неопределенное поведение и непредсказуемые ошибки. RAII призван решить эти проблемы, предоставляя надежный и безопасный механизм управления ресурсами.

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

Как преодолеть спад после запуска на примере Merge Garden

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

Случай с Merge Garden очень интересен. Эта игра, сочетающая match-3 основу с мержем, изначально была запущена на мировой рынок во второй половине 2020 года. Как раз тогда, когда рынок был перегрет из-за продолжительного карантина, а механика мержа стала новым трендом среди игроков.

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

— Что из себя представляет игра Merge Gardens?
— И какой она была до 2023 года?

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

Проблемы согласованности данных в микросервисах и их решение

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

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

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

Но не всё так просто. Одной из ключевых проблем, с которыми сталкиваются при переходе от монолитных архитектур к микросервисным, является обеспечение согласованности данных.

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

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

Концепция донглов в Embedded устройствах

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

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

Типичное современное устройство будь то, мобильный телефон или пульт от телевизора – это самодостаточное устройство. То есть, они не требуют каких-либо дополнительных аппаратных компонентов для работы. Но, что, если наше устройство, заточено под выполнение конкретных задач и не является универсальным? В качестве примера можно рассмотреть считыватель RFID-карт

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

Автоматизация тестирования с Cucumber, Selenium и Java

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

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

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

Разработка с помощью Yocto

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

Привет Хабр! Недавно принял участие в достаточно интересном воркшопе и хотел бы поделиться приобретенными навыками.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


Введение


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Garbage Collection и JVM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

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