Обновить
1024K+

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

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

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

Интерактивная поздравительная открытка на JavaScript

Уровень сложностиПростой
Время на прочтение30 мин
Охват и читатели12K

Наверное, каждый из нас ловил себя на мысли: что отправить на день рождения в этот раз? Просто текст, тёплую фотографию или голосовое сообщение? И сразу вспоминается это чувство, когда ищешь или обдумываешь креативный текст, а потом вспоминаешь о милой картинке с котиком, гифке с шампанским или стандартном «С ДР!» — и отправляешь, чисто для галочки.

Со временем я заметил: когда получаешь такое поздравление в Telegram, становится немного грустно, что человек хоть и поздравил, но не потратил время на то, чтобы обдумать и искренне пожелать чего-то хорошего и уникального только про тебя. Хотя понимаешь — это нормально. Поколение постарше привыкло обмениваться этими милыми, но безликими посланиями. Хотя не все делают это из-за нежелания — некоторым просто понравилась картинка, вот и скинули.

Читать далее

Zod: строгая валидация и удобная типизация. Опыт перехода

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

Привет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру.

В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне полей, подружился с React Hook Form и стал единым источником правды о структуре данных.

К Zod мы пришли не сразу. Долгое время типы и валидация у нас жили в разных слоях приложения: TypeScript определял структуру данных во время разработки, а отдельные функции или библиотеки (вроде Yup) проверяли входящие значения в рантайме.

Это классическая проблема: дублирование логики и рассинхрон. Типы в interface поменялись, а валидация осталась прежней (или наоборот). Мы пробовали Yup, но он казался громоздким в связке с TS: типы приходилось выводить вручную или мириться с тем, что схемы выглядят непрозрачно. В какой-то момент стало непонятно: зачем тащить отдельную библиотеку, если проще написать if (typeof x === 'string')?

С переходом на Zod всё стало значительно проще: одна схема одновременно является и валидатором, и источником типа данных.

Читать далее

Ксаверий, Терминус и языковые модели против кодировщиков

Время на прочтение7 мин
Охват и читатели8.6K

Оригинал заметки

Прогнозам о вымирании профессии программиста чуть меньше лет, чем самой профессии. Первые смелые предположения появились еще в конце 1950-х, вместе с распространением Кобола и Фортрана. Программисты в машинных кодах постепенно стали программистами на языках высокого уровня. Новый стандарт Фортран-2023 (ISO/IEC 1539-1:2023) был принят сообществом в прошлом году.

Читать далее

Как мы автоматизировали чанкование для RAG в Gramax: от прототипа до 95%+ точности

Время на прочтение5 мин
Охват и читатели8.2K

Недавно на Хабре вышла статья про создание RAG-системы для строительных ГОСТов. Команда Цифрового стандарта проделала титаническую работу — полгода вручную разбивали документы на смысловые чанки. Респект за настойчивость и результат.

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

Всем привет, меня зовут Дима, я делаю ИИ-функции в Gramax. Эта статья для тех, кто сейчас воюет с чанками вручную или пытается найти оптимальный подход. Делимся нашим путем от быстрого прототипа до продакшен-решения с метриками 90%+.

Читать далее

Планировщик Go

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

Эта статья посвящена языку программирования Go 1.24, работающему на Linux на архитектуре ARM. Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

В этой статье подробно рассматриваются следующие вопросы:

Компиляция и среда выполнения Go
Примитивный планировщик
Улучшение планировщика
Модель GMP
Начальная загрузка программы
Создание горутины
Цикл планирования
Поиск готовой к выполнения горутины
Вытеснение горутин
Обработка системных вызовов
Сетевой и файловый ввод-вывод
Работа netpoll
Сборщик мусора
Общие функции
API среды выполнения Go

Читать далее

SSR vs CSR vs гибрид. Сравниваем подходы к рендерингу страниц Django-приложения

Время на прочтение15 мин
Охват и читатели9.8K

Решил один мой коллега (не разработчик) заняться пет-проектом: создать платформу с элементами соцсети и встроенным картографическим плагином. И вот приходит этот коллега ко мне с вопросом по части фронтенда: «А как бы мне отрендерить страницы: на сервере или на клиенте?», описывая то решение, которое он уже сделал и которое в целом работает.

Что ж. Меня зовут Андрей, я фронтенд-разработчик в Selectel. В этой статье я расскажу и покажу, какие виды рендеринга веб-страниц существуют и в каком случае лучше использовать тот или иной подход. Разберем все это дело на примерах. Сперва пройдемся по теоретическим основам, а затем — по практике. Если так сложилось, что и вас жизнь привела к подобным фронтендерным запросам, но должного опыта еще нет, добро пожаловать под кат.

Читать далее

Приложение на Go шаг за шагом. Часть 4: отправка сообщений об ошибках

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.4K

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. 

На данном этапе наш API отправляет хорошо отформатированные JSON-ответы на успешные запросы, но если клиент отправляет некорректный запрос или в приложении что-то идёт не так, он получает текстовое сообщение об ошибке из функций http.Error() и http.NotFound(). В этой статье мы исправим это, научив API отправлять все ответы, включая ошибки, в формате JSON.

Читать далее

Посадка на Луну

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

Пилотируемая высадка на Луне, запланированная в миссии Artemis III, увы, официально перенесена на 2028 год. NASA столкнулась с эрозией покрытия в ходе миссии Artemis I. К этому добавились задержки Axiom Space со скафандрами AxEMU и технологическая сложность Starship HLS. Последнему необходимо отработать схему для перекачки криогенного топлива на орбите и выполнить беспилотную тестовую посадку.

В статье я постарался разобрать азы теории оптимального спуска, написал скрипт посадки на PowerShell, проанализировал спуск LM-5 Eagle, пилотируемого Нилом Армстронгом, и применил современный метод оптимизации управления G-Fold.

Читать далее

Как оптимизация промптов превратилась из шаманства в инженерную дисциплину

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели14K

Ещё пару лет назад промпт-инжиниринг выглядел как подбор удачного заклинания: "а давай добавим think step by step, "а давай попросим быть аккуратнее" и о приправим xml-тегами".

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

Уже 2026 год и современные LLM одновременно:

Читать далее

Telegram BOT API 9.4: цветные кнопки и премиум эмодзи

Время на прочтение5 мин
Охват и читатели18K

Всем привет!

Сегодня Telegram выкатил Bot API версии 9.4. На первый взгляд обновление кажется небольшим, но оно кардинально меняет подход к визуалу ботов. Наконец-то мы получили инструменты для нормального UX/UI дизайна!

Давайте разберем, что нам приготовил Павел Дуров и команда в этот раз.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями.

Читать далее

Agent Skills vs MCP: разбираемся на примере Antigravity

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

Разбираемся с Agent Skills — подходом, который решает проблему разрастания контекста в агентных IDE. Речь пойдёт о том, почему загрузка всех инструментов сразу вредит качеству рассуждений, как Skills отличаются от MCP, Rules и Workflows, и как использовать их на практике в Google Antigravity, чтобы агент делал ровно то, что нужно, и ничего лишнего.

Читать далее

Тестирование в спортивном программировании: приемы и советы

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

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

Читать далее

Git в браузере. Расширяем возможности с помощью LFS

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели6.9K

Привет, Хабр! Я Паша, разработчик Gramax — Open Source платформы для управления документацией в подходе Docs as Code.

В прошлой статье я рассказывал о том, как мы переводили наше приложение с Isomorphic Git на libgit2, как засунули его в веб-версию приложения при помощи Emscripten и с какими трудностями столкнулись в процессе.

На этот раз — как мы оптимизировали хранение файлов ресурсов каталога (в большинстве случаев, изображений) при помощи Git LFS, тем самым ускорив его клонирование и синхронизацию.

Читать далее

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

Рынок промышленности в ближайшие 10-20 лет

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели7.1K

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

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

Здесь будут затронуты как темы классического индастриала, так и направления IIoT, Edge AI, робототехники и других передовых технологий. Мой опыт сложился в области контрактной разработки электроники и основан на многолетнем взаимодействии с заказчиками, большом количестве встреч и реализованных проектов в этой сфере. Поэтому материал будет интересен промышленным интеграторам, производственным предприятиям, продуктовым компаниям, специалистам в области embedded-систем, а также, возможно, разработчикам чипов для индастриал.

Читать далее

Невозможные возможные трюки и интересные алгоритмы на C

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

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

Идея написать эту статью зародилась из моего поста, после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ и битовых трюков.

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

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

Добро пожаловать в новую часть. Прошу под кат — там будет жарко, быстро и очень, очень круто.

Читать далее

Нейросети пока не заменят «кожаных мешков»

Время на прочтение3 мин
Охват и читатели6K

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

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

Читать далее

Не та 1С, которую вы знали: Полный гайд по технологии 1С: Элемент

Время на прочтение11 мин
Охват и читатели17K

Привет, Хабр! (И тебе, 1С-ник, который привык к «желтой» программке, и тебе, веб-разработчик, который до сих пор думает, что 1С - это только про накладные и бухгалтеров.)

В прошлой серии мы выяснили, что «1С:Предприятие.Элемент» - это не та «желтая программа», к которой привыкли бухгалтеры, а вполне себе модный cloud-native зверь с IDE в браузере. Но слова - это дешево. Разработчику нужно видеть код, архитектуру и понимать, как это соотносится с тем, что он уже знает (будь то 1C, Python или JavaScript).

Сегодня мы лезем под капот. Мы разберем синтаксис, систему типов, декларативный UI и узнаем, как 1С реализовала ORM, который (спойлер) удобнее многого, что вы знали, но не без своих 1С-овских замашек.

Поехали.

Читать далее

Как я писал библиотеку для локализации на Rust

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.8K

Эта статья посвящена тому, как я делал библиотеку локализации на Rust. От разработки для своего приложения до полноценного универсального решения.

Читать далее

Как сделать программиста счастливее

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

Я много-много лет работал программистом и тимлидом, видел некоторое дерьмо. Честно скажу, иногда просто диву даёшься, насколько порой игнорируются психологические моменты работы. Особенно в больших организациях. На практике это порой влияет на продуктивность чуть ли не в разы, без шуток. И буквально на ровном месте.

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

Читать далее

Как обстоят дела с WebAssembly?

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

Когда заходит разговор про WebAssembly, где-нибудь в начале дискуссии обычно появляется комментарий в духе «А что, собственно, произошло?»

Этот язык преподносили как нечто поворотное. Неужели это просто был яркий маркетинг? А может, очередной случай с обречённым на провал апплетом JVM?

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

Читать далее