Как стать автором
Поиск
Написать публикацию
Обновить
1119.48

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

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

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

От React всё так же веет безумием, но все об этом молчат

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

Недавно работал над хобби-проектом, который описал в другой своей статье. В процессе его реализации у меня возникло желание чиркануть пару абзацев о том, почему React — отстой, но в итоге я не смог удержаться и решил высказаться по полной…

Так что вот она полноценная статья, ещё больше той, из которой она родилась. Здесь я подробно опишу все проблемы React и поясню, почему это может не быть виной разработчиков.

Читать далее

Алгоритмы для работы с большими данными в Go: HyperLogLog и Count-Min Sketch

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

Алгоритмы для работы с большими данными

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

Читать далее

Разработка требований к ПО с помощью Markdown, Git и Obsidian

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

Пошаговое руководство по использованию Git, Obsidian, Markdown и любимого IDE для разработки требований и трассируемого в них программного кода.

Читать далее

Исследование METR: использование Cursor замедляет опытных разработчиков на 19 %

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

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

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

Читать далее

От Аристотеля до Тьюринга: что такое функциональное программирование и как оно облегчает жизнь

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

Привет, меня зовут Марат Зимнуров, я тимлид в кросс-функциональной команде HR Admin Tech Авито. Тема функционального программирования не обделена вниманием — и все же тяжело найти действительно понятный и структурно изложенный разбор данного инструмента. Нет нормального гайда для старта — ни у нас, ни на Западе. Многие говорят про иммутабельность и монады, но путаются в основах. В статье разбираю, что такое функциональное программирование на самом деле и зачем оно нужно.

Читать далее

Python в Enterprise-разработке: почему популярность ЯП распространилась и на корпоративный сектор. Часть 1

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

Привет! Это Леша Жиряков, я руководить бэкенд-команды витрины KION и Python-гильдии в МТС. Как раз о Python сегодня и пойдет речь. Обсудим, почему самый популярный ЯП, по версии TIOBE, так востребован в корпоративном секторе: из простого инструмента автоматизации он превратился в полноценную экосистему для создания критически важных продуктов.

Если коротко, причина успеха — в эволюции языка и его экосистемы. Аннотации типов в Python 3.5 сделали доступной статическую проверку кода без потери гибкости динамической типизации. Это решающий фактор для корпоративной разработки, ведь главные требования тут — это надежность и поддерживаемость.

Недавно я уже писал о причинах успеха Python в целом, а сегодня хочу подробно рассмотреть его современные инструменты для предприятий: типизированные структуры данных с dataclasses, высокопроизводительные системы валидации msgspec, pydantic 2 и другие библиотеки. То есть все, что помогло ему стать идеальным выбором для серьезных бизнес-решений. Информации много, так что тему разобью на две части. Погнали!

Читать далее

Маленькое приключение в поиске ошибок. The Battle for Wesnoth

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

В этой статье мы расскажем вам о том, как путешествовали по землям Ирдии. Нас ждали приключения, полные славных сражений, побед и редких наград в виде могущественных артефактов! "Что же это за артефакты такие?" — спросите вы. Конечно же, это ошибки, найденные в коде довольно известной и крайне увлекательной игры "The Battle for Wesnoth".

Читать далее

Используем API Speech2Text для распознавания записей разговоров

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

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

Распознавание аудио решили делать через сервис Speech2Text, пример использования API которого я и покажу в этой статье. В черновом варианте получаем примерно следующую схему работы (нас сейчас интересует прямоугольник с подписью Speech2Text connector):

Читать далее

Функциональный стиль: объясняю как другу

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

«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?

И ты такой: «Что? Можно просто for написать?»

Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим — ты свой. Погнали.

Читать далее

ZFS on Linux: установка Ubuntu с корнем в ZFS, RAID и шифрованием

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

Привет! Меня зовут Ваня, я системный администратор в Selectel. Допустим, вы уже «пришли к просветлению» и признали, что ZFS — удобная, функциональная и вообще единственная правильная файловая система. Осталось только понять, как начать ее использовать. Об этом и поговорим под катом!

Продолжить «просветление»

— Ты там работай, но столько платить мы не можемǃ

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

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

Суть:

Читать далее

Пишем код, который можно бегло просматривать

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

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

Читать далее

Эксперты шокированы: язык программирования на основе кликбейтных заголовков

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

Кликбейтные заголовки, давайте признаемся, надоели всем. Сейчас они встречаются даже на Хабре. Программист Линус Ли, судя по всему, испытывал те же чувства и решил действовать по принципу «не можешь победить — доведи до крайности». В результате он создал Tabloid — полноценный язык программирования, где весь код пишется в стиле сенсационных заголовков.

Представьте язык, где вместо привычного function hello() вы пишете DISCOVER HOW TO HELLO WITH (англ. «узнайте, как сделать... с помощью»), а вместо return используете SHOCKING DEVELOPMENT! (англ. «шокирующее развитие событий»). А еще каждый листинг должен заканчиваться фразой PLEASE LIKE AND SUBSCRIBE.

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

СЕНЬОРЫ СКРЫВАЛИ ЭТОТ ЯЗЫК….

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

Конечный автомат, машина Тьюринга, порождающая грамматика и компьютер: в чём разница

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

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

А в конце мы немного пофилософствуем на тему, что же такое программа и что такое семантика.

Читать далее

Как быстро развернуть приложение в облаке и не потерять данные в S3: туториал

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

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

Я Никита Корольков из Cloud.ru, и сегодня покажу, как без лишних сложностей и запуска виртуальных машин развернуть проект в облаке с помощью Evolution Container Apps и при этом не потерять данные, даже если вы не DevOps.

Узнать больше

IT-пузырь лопнул? Что реально происходит на рынке: мнение Head of Recruitment

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

Все привыкли, что IT-специалистов в России не хватает. Спасибо СМИ, которые говорят о дефиците в 100 тысяч, 600 тысяч и даже миллион айтишников. А ещё — мемам про зарплаты «300 тысяч в секунду» и вездесущей рекламе курсов. 

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

Привет, Хабр. Меня зовут Лена Пыхалова, я Head of Recruitment в Профи.ру. Рассказываю, как вся эта ситуация выглядит со стороны работодателя, как сейчас, в 2025 году, поживает рынок IT в России и кто в найме сильнее — соискатели или работодатели. 

Читать далее

CoreBus: Часть 5 — попытка использования Native AOT

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

CoreBus (старое название «Терминальная программа») — кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII.

Ребрендинг, новые фичи и Native AOT (+ боль и разочарование).

Читать далее

OpenIDE — профессиональные инструменты без ограничений

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

31 июля состоится публичный запуск OpenIDE — новой мультиязычной среды разработки, построенной на базе IntelliJ IDEA Platform. Вместе с ключевыми разработчиками, лидерами и представителями отрасли мы обсудим:

1) Зачем появилась OpenIDE
2) Как она уже сегодня может заменить IntelliJ Platform для Java и Spring
3) В чём её ценность для всей экосистемы
4) Как работать с проектами на Go, Python и TypeScript
5) И расскажем, как присоединиться к сообществу и развитию проекта

Мероприятие пройдет онлайн 31 июля, в 17:00 (МСК), на YouTubeVK и RUTUBE каналах Spring АйО. Участие абсолютно бесплатное.

Главное — зарегистрироваться, чтобы получить на почту ссылки на трансляцию и файл .ics для добавления события в календарь.

Читать далее

Язык программирования Cangjie: китайский вызов Java и Swift

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

Несколько лет назад Huawei решила зайти на территорию языков программирования (ЯП) со своим проектом Cangjie. Сказано — сделано. Новый ЯП впервые показали на HDC 2024. 30 июля 2025 года компания обещает открыть исходный код. Язык заявлен как кроссплатформенный: уже сейчас он поддерживает HarmonyOS и Android, а в перспективе может получить совместимость с iOS. Что в нем интересного и что даст открытие кода, сегодня и разберем.

Читать далее

Локальная разработка с Kubernetes. Немного танцев с бубном

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

На нескольких проектах я сталкивался с ситуацией, когда есть Kubernetes с разными окружениями типа dev, stage, prod и т. д.

Код сервисов в эти самые окружения попадает в процессе CI/CD: то есть мы мержим какую‑то ветку с разрабатываемой фичей или исправлением бага в ветку, которая «привязана» к окружению и дальше наш код деплоится в кластер. Думаю, для многих — это уже стандартная история.

Давайте представим, что нужно сделать задачу, относящуюся к какому‑нибудь микросервису, эта задача подразумевает запрос по сети к другому микросервису, а тот, в свою очередь, посылает запрос к еще другим микросервисам. Как быть, когда мы хотим, чтобы нам были доступны данные из других микросервисов, чтобы протестировать то, что мы сделали не в тестах с моками, а в условиях, похожих на «боевые». Тут самым очевидным, как мне кажется, является разворачивание локально микросервиса, код которого мы «ковыряем» и проброс портов до целевого микросервиса в dev кластере (или в другом кластере, предназначенным для тестирования), например:

Читать далее

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