Скептики часто говорят:
“Юнит-тесты? Это же лишняя морока.”
“Код всё равно придётся менять — зачем тестировать то, что всё равно устареет?”
“У нас нет времени на это.”
Я слышал это десятки раз — от новичков, опытных тимлидов и даже CTO. И всё же, спустя годы в разработке, я с уверенностью могу сказать: юнит-тесты — это не обуза, а инструмент, который экономит время, снижает стресс и делает код надёжнее.
Давайте разберёмся с популярными мифами.
Читать далееВсе началось с того что к нам в офис приехал директор иногороднего филиала.
Он подошел ко мне и сказал примерно следующее:
“Я переписываюсь с генеральным директором с помощью mail.ru.
В переписке мы обсуждаем весьма щекотливые вопросы, связанные, например, с …, ну тебе лучше не знать…. Я бы не хотел чтобы эта переписка была доступна третьим лицам.”
Я озаботился вопросом и достаточно быстро выяснил, что стандартом является шифрование с помощью шифра AES и аутентификация с помощью шифра RSA. Все мессенджеры предусматривают регистрацию, имеют свои сервера и хранят историю переписки.
Кроме того, я выяснил, что все существующие средства шифрования, которые доступны официально, должны иметь лицензию ФСБ (Постановление 313 https://base.garant.ru/70164728/). Одно из условий выдачи такой лицензии – предоставление ключей для доступа к переписке. (Вспоминаем историю с запретом Telegram в РФ).
То есть, использование любого, существующего легально, мессенджера не дает уверенности в тайне переписки.
Проанализировав ситуацию, я вывел рецепт идеального (защищенного) мессенджера.
Он должен состоять из следующих элементов:
1. Алгоритм шифрования с абсоютной криптостойкостью.
2. Надежный способ передачи ключей.
3. Надежный способ аутентификации (не RSA).
И не иметь своих серверов, не требовать регистрации, не хранить историю переписки.
Далее началась реализация.
Элемент 1. Шифр с абсолютной криптостойкостью.
Бытует мнение что взломать можно любой шифр. Хотя бы теоретически - брутфорсом.
И я почему-то уверен, что мало кто из читателей этого текста знает что такое алгоритм Вернама. (По крайней мере, я не знал).
Читать далееПривет снова. Я olzoomer, и сегодня я начну цикл статей про то, как правильно выполнить базовую настройку Fedora после установки.
Читать далееЭто вторая часть моих наработок по решению задачи про Винтика и Шпунтика в рамках челленджа @vvvphoenix. В первой части мы выразили ответ в виде формулы включений-исключений. Хотя в подобных формулах и получается огромное число слагаемых, часто оказывается, что либо они почти все равны нулю, либо объединяются в сравнительно небольшое число групп одинаковых, либо ещё что-нибудь. И в итоге огромная формула вычисляется чуть ли не на бумаге. В этой части мы будем сворачивать и оптимизировать нашу формулу для ускорения вычислений.
Читать далееОдин из популярных инструментов BPMN (Business Process Model and Notation) — стандарт графического моделирования бизнес-процессов, разработанный Object Management Group (OMG). Он широко используется для визуализации, анализа и оптимизации процессов внутри организаций.
Но в отличие от прочих нотаций, BPMN может использоваться совместно со специальным BPM-движком (engine), встроенным в различные ИТ-платформы. То есть бизнес-процессы, описанные с помощью BPMN, не просто визуализируются, а управляют логикой выполнения в реальных ИТ-системах, превращая нотацию в исполняемый код, который интерпретируется движком, При этом продвигая процессы в соответствии с описанной в диаграммах бизнес-логикой, BPMN-движок следит за выполнением шагов, направляет задачи сотрудникам, вызывает API сервисов, генерирует события, фиксирует в Базе Данных (далее – БД) результат и тому подобное. Помимо того, такой инструмент выполняет мониторинг и логирование каждого запущенного экземпляра процесса и фиксирует прогресс и актуальные состояния в БД.
Читать далееПосле первой статьи про стандарты разработки и зарождение Open vAIR остался резонный вопрос: «А что там под капотом?». Отвечаем.
Эта платформа виртуализации создана для тех, кто хочет развернуть систему быстро, понять архитектуру без боли и не зависеть от чёрных ящиков с лицензией.
Внутри — модульный backend, изоляция через RabbitMQ, REST API и документация, которая обновляется вместе с кодом, а не спустя квартал.
В этой статье разберём, чем Open vAIR отличается от тяжёлых решений, что умеет прямо сейчас, какие модули в приоритете — и в каких сценариях он уже «заходит в прод».
Читать далееВсем привет! На базе наших аналитических исследований в Сomnews вышла статья про тестирование отечественных БС 4G. Делимся с читателями Хабра подробностями, которые не попали в публикацию.
С прошлого года в СМИ циркулируют новости про ввод в коммерческую эксплуатацию отечественных базовых станций мобильной сети. ПАО «МТС» активно внедряет решения компании «ИРТЕЯ», ПАО «Теле2» - базовые станции от БУЛАТ. Аналитики компании Vigo проанализировали статистику нового оборудования с точки зрения интернет-сервисов, которыми пользовались реальные абоненты.
Читать далееВсем привет! В статье расскажу, как я написал игру Дебаггер на Python и добавил к ней графический интерфейс на Tkinter. Мне хотелось сделать простую игру на IT тематику, поэтому я скопировал игровую механику из игры Сапер и теперь нам нужно отметить все баги на игровом поле или наш код сломается.
Статья может быть интересна начинающим разработчикам для изучения чужого опыта и наработки своего или же опытным программистам, которые просто хотят поиграть в игру, а может даже предложить, как еще улучшить архитектуру проекта.
Нажми, если не боишься багов!Я, думаю, многие уже слышали о появившихся в .NET 6 Minimal API - легковесной замене контроллеров/MVC. Кто-то уже успел ознакомиться и задался вопросом: "Ваше API в 3 строчки, это, конечно, здорово, но как это будет работать в реальном проекте с сотнями эндпоинтов, кучей фильтров, аттрибутов, расширениями OpenAPI/Swagger и прочих радостях?"
В этой статье я хочу ответить на этот вопрос: пройдемся от основ, преимуществ, недостатков, и закончим нюансами работы и проблемами, которые обязательно возникнут при миграции с контроллеров на Minimal API в крупном проекте.
А забегая чуть вперед: если думаете, стоит ли переводить проект на Mini API, вот вам сразу полезная информация: они могут жить в проекте вместе, причем даже без дублирования инфраструктуры: не обязательно переводить все разом - подробнее под катом.
Бонусом, заменим SwaggerGen на реализацию OpenAPI от Microsoft.
Читать далееПривет! Меня зовут Сергей Головин, я основатель рекламного агентства iks-digital.com. Уже более 15 лет мы продвигаем сайты и приложения используя каналы Яндекс.Директ.
Сегодня поделюсь кейсом, как с помощью точного таргетинга на основе клиентской базы и технологии Look-alike удалось привлечь 138 лидов за полтора месяца для онлайн-курса «Работа психолога с расстройствами пищевого поведения». Рассказываю пошагово: от настройки до результата.
Читать далее