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

Основы тестирования в Go: mock-объекты, fuzzing и property-based testing

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

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

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

Тестирование в Go можно выполнять с помощью mock-объектов, fuzzing и property-based testing. В этой статье мы рассмотрим эти механизмы.

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

Выявление ошибок в работе с памятью в C и C++: Сравниваем Sanitizers и Valgrind

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

В этой статье вашему вниманию представлено сравнение двух инструментов для поиска ошибок в работе с памятью в программах, написанных на memory-unsafe (небезопасных при работе с памятью) языках — Sanitizers и Valgrind. Эти два инструмента работают совершенно по-разному. Поэтому, хоть Sanitizers (разработанный инженерами Google) имеет ряд преимуществ перед Valgrind, у каждого из них есть свои сильные и слабые стороны. Следует сразу отметить, что проект Sanitizers имеет название во множественном числе, потому что он состоит из нескольких инструментов, которые мы рассмотрим в этой статье в совокупности.

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

Как быстро выучить язык моделирования Archimate?

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

Я использую Архимейт в своей работе уже более 7 лет. Когда я познакомился с этим языком, то он привлек меня тем, что позволял изображать систему в динамике, то есть отображать не только структуру программы, но и бизнес-процессы, которые она автоматизирует, и средства, на которых она развернута. К тому же Архимейт казался очень простым — подумаешь, каких-то 10 стрелок и 20 компонентов. На тот момент я был уже очень опытным программистом и архитектором, у меня был огромный опыт проектирования систем и баз данных, также я на приличном уровне освоил несколько языков программирования. И казалось, что выучить такой простой язык — это дело нескольких часов.

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

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

Непрерывность функционирования систем жизнедеятельности: Совокупность циклов обратной связи

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

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

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

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

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

Паттерны Singleton и Multiton в Java: когда и какой лучше?

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

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

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

В этой статье мы рассмотрим эти паттерны и их различия.

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

Разработка под Android в 2024 году

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

Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android.

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

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

Основные функции Apache Tomcat

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

Привет, дорогие читатели!

Apache Tomcat — это открытое программное обеспечение, реализующее спецификации Java Servlet, JSP и Java WebSocket, предоставляя таким образом платформу для запуска веб-приложений, написанных на языке Java. Разработанный и поддерживаемый Apache Software Foundation, Tomcat служит контейнером сервлетов, который позволяет веб-приложениям использовать Java для создания динамичных веб-страниц.

Tomcat может работать как самостоятельный веб-сервер, где он обрабатывает как статические страницы, так и динамические запросы через Servlets и JSP. Однако часто Tomcat используется в сочетании с традиционными веб-серверами, такими как Apache HTTP Server или Nginx, для обработки статического контента, в то время как динамический контент обрабатывается через Tomcat.

В этой статье мы рассмотрим основной функционал Tomcat.

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

Основы управления ресурсами в C

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

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

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

В этой статьи рассмотрим основные возможности для работы с ресурсами в C.

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

Правило трех и пяти в C++: что это такое и зачем они нужны?

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

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

Сегодня я хочу поговорить о двух правилах С++: правиле трех и правиле пяти.

Правильное понимание этих правил способно уберечь код от утечек и неопределенных поведений.

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

FinRL: Библиотека глубокого обучения с подкреплением для автоматизированной торговли акциями

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

Глубокое обучение с подкреплением (Deep Reinforcement Learning - DRL) является эффективным подходом в количественных финансах. Однако обучение торгового агента DRL, который бы решал, где торговать, по какой цене и в каком количестве, сопряжено с ошибками, а так же со сложной разработкой и отладкой.

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

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

Open Canary – приманка для хакера

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

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

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

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

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

Основы Actor-Critic алгоритма

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

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

Actor-Critic — это класс алгоритмов в RL, суть которого довольно проста на словах, он сочетает в себе такие полтики как policy-based и оценки value-based. У нас есть два главных действующих лица: Actor и Critic. Actor отвечает за выбор действий, т.е формирование политики поведения, он принимает решения исходя из текущего состояния окружающей среды. Critic оценивает, насколько хорошо или плохо Actor справляется со своей задачей, предоставляя обратную связь через оценку действий Actor'a.

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

DLP: предотвращаем утечки

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

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

При этом, уже не одно десятилетие существуют системы предотвращения утечек (DLP). Но прежде, чем идти дальше и говорить о проблемах внедрения DLP, давайте правильно расшифруем данную аббревиатуру. DLP это Data Leak Prevention, предотвращение утечек информации. Можно встретить расшифровку Data Loss Prevention – то есть предотвращение потери информации. Однако, потеря информации и ее утечка - это немного разные вещи. При потере информации она совершенно необязательно становится доступной посторонним, в то время как утечка информации однозначно определяет получение доступа к ней посторонних.

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

Но это было лишь небольшое лирическое отступление. Вернемся непосредственно к DLP системам.

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

The Sims 4: разбор нарративных механик самой знаменитой игры без сюжета

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

С момента своего запуска в 2014 году, The Sims 4 превратилась не просто в игру, но в целый культурный феномен, привлекая миллионы поклонников по всему миру. Этот необычайный успех можно объяснить множеством факторов, но одним из ключевых является уникальная возможность игры служить платформой для творчества и самовыражения. В отличие от традиционных видеоигр с заранее заданным сюжетом, The Sims 4 предлагает игрокам свободу создавать собственные истории в мире, где практически нет ограничений. Эта игра-песочница позволяет каждому игроку стать автором уникальных нарративов, переплетая жизни и судьбы симов в соответствии со своими желаниями и фантазиями.

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

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

Мемоизация в React: я почитал документацию вместо вас

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

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

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

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

Инженер-аналитик или дата-инженер: Как выбрать нужного специалиста? | Census

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

Мэдисон — инженер-аналитик, увлекающаяся данными, предпринимательством, писательством и образованием. Ее цель — преподавать так, чтобы это было полезно для каждого, независимо от того, начинает ли он карьеру или уже работает в инженерии 20 с лишним лет.

И так вы поняли, что вам не помешала бы дополнительная помощь в работе с данными. Но кого конкретно следует искать, вы не знаете, ведь существуют дата-аналитики, дата-инженеры, а теперь… и инженеры-аналитики?!

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

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

Proof of Work и Proof of Stake для чайников

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

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

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

Для достижения консенсуса в блокчейне существуют механизмы Proof of Stake и Proof of Stake. Рассмотрим их в этой статье.

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

Кратко про Nameko Python

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

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

Nameko, как фреймворк для Python, предлагает удобные абстракции и инструменты для создания микросервисов, ориентированных на сообщения и события.

С Nameko можно получить не только инструмент для создания микросервисов, но и платформу для реализации распределенных систем с поддержкой Dependency Injection, позволяющей легко интегрировать различные компоненты приложения.

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

Систему модулей в Java для новичков

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

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

Система модулей в Java 9, известная как Project Jigsaw, была задумана и реализована для решения ряда проблем, включая «Ад JAR‑файлов» и сложностей с обеспечением сильной инкапсуляции.

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

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

Рассмотрим, как выглядит работы с системой модулей в Java.

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

Гуманитарный сдвиг в подготовке архитекторов 1С

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


В чем заключается миссия архитектора 1С? По большому счету в том, чтобы задать верное направление усилиям разработчиков. Архитектор 1С должен обладать способностью заглянуть в будущее. Ясно представить себе судьбу и жизненный путь создаваемого продукта. Чего могут захотеть от него пользователи? С чем придется столкнуться тем, кто будет дорабатывать и развивать продукт? Архитектор 1С должен сделать так, чтобы и первым и вторым было максимально удобно с будущим продуктом. Довольно сложная инженерная задача. Каждый раз ее приходится решать заново. Какие вызовы появились в этой области в последнее время. И где здесь место гуманитарным способностям. Поговорим об этом ниже
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 3

Информация

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