Обновить
1067.12

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Flutter 3.38 — Что нового во Flutter?

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

Добро пожаловать в наш ежеквартальный релиз Flutter 3.38. Это обновление призвано повысить вашу продуктивность и улучшить взаимодействие с разработчиками благодаря сокращённым точкам и обновлениям для предварительных просмотров виджетов. Благодаря нашему сообществу этот релиз включает в себя в общей сложности 825 коммитов от 145 уникальных участников, 37 из которых — новички. Давайте разберёмся, что же нового в этом релизе.

Читать далее

Как я перестал бояться GUI-тестов и научился их любить (почти)

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

В феврале этого года я [писал на Хабре](https://habr.com/ru/articles/883590/) про автоматизацию тестов для САПР. Мы делали систему с записью действий в JSON и воспроизведением через pyautogui. Работало. Но только для одного конкретного проекта.

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

Что изменилось? Убрал привязку к конкретному софту. Добавил умный поиск элементов вместо тупых координат. Сделал так, чтобы QA мог записать тест без единой строки кода. Прикрутил UI-ассерты, мониторинг системы, файловые проверки.

Короче, то что начиналось как решение для одной задачи, выросло в полноценный фреймворк. И оказалось полезным не только мне.

Читать далее

Размышления о машине Тьюринга и причинах возникновения ошибок в языках программирования

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

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

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

Читать далее

Создаем мощного ИИ-агента с долговременной памятью, используя LangGraph, RAG и веб-скрапер

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

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

Читать далее

Go исполнилось 16 лет: главное о развитии языка и экосистемы

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

Команда Go for Devs подготовила перевод статьи о том, как Go отмечает шестнадцать лет в Open source. От новых инструментов для тестирования и профилирования до модернизаторов кода, MCP и прорывов в производительности — язык переживает один из самых насыщенных периодов развития.

Читать далее

Создаем виджеты для BUSY Bar без кодинга

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

BUSY Bar — девайс для концентрации и современный Pomodoro-таймер с блокировкой отвлекающих приложений и интеграцией в умный дом. Предыдущие посты [1],[2]

В этом посте мы покажем, как с помощью HTTP API создавать виджеты для BUSY Bar. Это смогут сделать не только разработчики, но и обычные пользователи.

Далее вы узнаете как:
— Вывести изображения и текст на экран BUSY Bar.
— Взаимодействовать с устройством прямо из браузера.
— Создать виджеты без программирования.

Читать далее

Хрупкий == надёжный? Идея «хрустального кода»

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

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

Читать далее

Грани полиморфизма в React: паттерн asChild

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

Привет, мы продолжаем разбирать полиморфизм в React. В прошлой серии мы разобрали паттерн as — мощный, типобезопасный, но с проблемами в композиции. Сегодня разберем, как решить эту проблему с помощью паттерна asChild. Спойлер: это сделает ваш код чище, композируемее и приятнее для глаз, но придется пожертвовать поддерживаемостью.

Читать про asChild

Разбор задачи «Regular Expression Matching»

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

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

Читать далее

Воксельный движок за выходные

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

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

Введение

Приготовьтесь, мы совершим путь от единственного кубика до целого воксельного движка! Нам понадобится следующее:

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

API рендеринга! Выбирайте что угодно, эта статья — не туториал по рендерингу.

Если в процессе у вас возникнут вопросы, можете связаться со мной на моём сервере Discord или написать на contact@daymare.net.

Читать далее

JSON? JSONB? BSON? CBOR? MsgPack? А, VaryPackǃ

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

VaryPack — новый, простой, гибкий, шустрый и компактный формат бинарной сериализации произвольных данных.

Что за модная тема?

Почему опытные программисты всё чаще молча переписывают, чем спорят в комментариях

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

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

Читать далее

CardDOM на Rust: через лайфтаймы и боль

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

Четвертая статья в серии про DOM-подобные модели данных в различных языках программирования.

В прошлых сериях мы рассмотрели DOM-подобные структуры данных, тест их поддержки в языках программирования с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript и С++.

Сегодня — Card DOM на Rust — великом и ужасном.

Читать далее

Ближайшие события

Anthropic зафиксировали первый официальный случай крупной кибератаки, выполненной с помощью ИИ

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

Команда AI for Devs подготовила перевод статьи о первой зафиксированной кибератаке, почти полностью выполненной ИИ. Атака, где человек нужен лишь для того, чтобы пару раз «подтвердить заказ», — и это уже не фантастика, а реальность 2025 года.

Читать далее

Убивает ли ваша деструктуризация производительность?

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

Я давно хотел написать статью или пост на эту тему, поскольку заметил проблему с некорректным пониманием синтаксиса так называемой «деструктуризации» в JavaScript. Эта информация будет особенно интересна разработчикам, использующим React, где деструктуризация (например, в хуке useState) встречается повсеместно.

Читать далее

Progress Bar для Сборки Программы

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

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

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

В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

Читать далее

«Два стула» для данных: как мы боремся с рассинхроном в Rust-сервисе между Solana и PostgreSQL

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

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

Наш проект использует паттерн двойной записи (Dual-Write):

Solana — гарантирует неизменность и прозрачность данных о выданных дипломах

PostgreSQL (Supabase) — обеспечивает быстрые выборки и сложные запросы

Звучит красиво на архитектурных диаграммах, но в production всё не так радужно. Главная проблема — частичные сбои. Транзакция в Solana прошла успешно, диплом записан в блокчейн навечно, а вот запись в PostgreSQL упала. Пользователь получил подтверждение, но половина системы о его дипломе не знает.

Сегодня я покажу, как мы столкнулись с этой проблемой лицом к лицу и какие паттерны применили для её решения.

Чтобы стулья не разъехались

Взаимодействие с пользователем в макросах Р7 Офис. Часть 3. Мой метод

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

Итак, как я и обещал, согласно собственного плана на данный цикл статей, в сегодняшней я расскажу о своем решении проблемы отсутствия штатных средств пользовательского ввода-вывода данных в макросах, для редакторов "Р7/OnlyOffice".  Оно не претендует на какую-либо уникальность, или универсальность но, по крайней мере на мой взгляд, достаточно простое и удобно, чтобы рассказать  вам о нем.

Читать далее

3I/ATLAS: что нового и что важно знать о межзвёздной комете

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

3I/ATLAS — третий известный межзвёздный объект, редкий гость из-за пределов нашей Солнечной системы. Его впервые обнаружили 1 июля 2025 года с помощью телескопа ATLAS в Чили. Официальная точка зрения, поддержанная NASAESA и большинством астрономов: 3I/ATLAS — естественная комета, третий подтверждённый межзвёздный объект после ‘Oumuamua и кометы 2I/Borisov.

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

Читать далее

Автоматизация печати в конструкторском бюро (в двух частях)

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

Часть 1. DWG. Как побочный кейс стал основным

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

Читать далее

Вклад авторов