Обновить
1020.93

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

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

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

Один из крупнейших взломов NPM: более 18 пакетов были скомпрометированы

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

8 сентября в 13:16 UTC система мониторинга Aikido зафиксировала подозрительные действия: в npm начали публиковаться новые версии популярных пакетов, содержащие вредоносный код.

Читать далее

Как победить циклические импорты в Python простым способом

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

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

Читать далее

Повышаем производительность Redis: советы для начинающих

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

Привет всем, меня зовут Дмитрий Шитиков, я – бэкенд-разработчик в ПСБ.

Статья будет полезна тем начинающим, которые уже знают типы данных в Redis и уже в принципе сталкивались с ним в работе.

Читать далее

Thing — Model — View — Editor

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

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

Содержание этого документа интересно и с исторической точки зрения (а как там “деды” воевали программировали), так и в плане уточнения некоторых современных представлений об этом паттерне и программной архитектуре в целом.

Иллюстрации по максимуму сохранены как в оригинале. По ходу есть сноски с подробностями и ассоциации редактора в конце.

СУЩНОСТЬ-МОДЕЛЬ-ВЬЮ1-РЕДАКТОР

на примере из системы планирования2


Кому: LRG3

От: Тригве Реенскауг4

Файл: [IVY]<Reenskaug>SMALL>TERMINOLOGY2.DOC

Дата: 12 мая 19795

Цель данной заметки - исследовать метафоры thing-model-view-editor через последовательный набор примеров. Все примеры взяты из моей системы планирования и иллюстрируют вышеуказанные четыре понятия. Все примеры были реализованы, хотя и не в рамках чистой структуры классов, описанной здесь. Метафоры соответствуют real world-Model-view-Tool, предложенным в заметке о требованиях DynaBook ([Ivy]<Reenskaug>DynaBook.doc).


THING (СУЩНОСТЬ)

ОПИСАНИЕ ТЕРМИНА

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

ПРИМЕР: КРУПНЫЙ ПРОЕКТ

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

Читать далее

Неожиданный скачок продуктивности благодаря Rust

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

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

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

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

Читать далее

Java Digest #28

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

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

Соскучились по AoT-компиляции? Даже если нет, упоминаний о ней не избежать. Java 25, Spring 7, Spring Boot 4, Gradle 9.0.0, Intellij IDEA 2025.2, Amplicode 2025.2, что-то релизнулось, что-то только собирается, но обо всем уже нашли статьи и собрали для вас. 

А теперь к громким новостям. Нидерландские ученые убили SQL — именно так мог бы звучать заголовок к научной статье о том, как 2,5 млн строк кода на PL/SQL переводили на Java с помощью LLM.

Читать далее

Статический анализ в open source проектах с помощью PVS-Studio

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

Хотите, чтобы ваш open source проект был чище и безопаснее? Рассказываем, как использовать PVS-Studio для регулярного анализа кода, внедрить его в CI и находить баги до их попадания в релиз. И да, лицензия для открытых проектов у нас бесплатная.

Читать далее

Разворачиваем онлайн-игру на виртуальном сервере

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

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

Вступление

Будучи большим любителем Guild Wars 2, однажды я написал прототип с минимальной реализацией похожей системы боя. Мне хотелось, чтобы можно было самим создавать и настраивать бои. Недавно я добавил к прототипу редактор данных игры, веб-клиент и сервер для мультиплеера. После этого я арендовал сервер и загрузил туда игру, чтобы можно было поиграть с друзьями.

Читать далее

Будущее джунов в эпоху ИИ: угроза или шанс?

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

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

Читать далее

Google Chrome исполнилось 17 лет: история браузера и его будущее

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

Команда JavaScript for Devs подготовила перевод статьи Адди Османи к 17-летию Google Chrome. За эти годы браузер прошёл путь от «минималистичного проекта с комиксом» до полноценной платформы для приложений с ИИ. Скорость, безопасность, стабильность и простота остаются его основными принципами, а впереди — новая эра с локальными AI-API и встроенным ассистентом Gemini.

Читать далее

Множество Мандельброта

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

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

Первая - множество Мандельброта идеальное - самостоятельное нематериальное начало, существующее вне пространства и времени. Вот так. Проверить никак. Пусть не веру. То есть пусть в совсем другом веке, в другой галактике. Пусть он другой мозг. А множество одинаковое. Оно минует абсолютно все. Все миллиардов световых лет...

Читать далее

Иногда ядра CPU ведут себя странно: о чётном и нечётном

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

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

Сегодня хочу рассказать об ошибке, которая была исправлена путём редактирования одной строчки кода. Это исправление избавило людей, работающих на огромном количестве устройств, от странных ошибок, которые очень трудно воспроизвести. Речь идёт о ситуациях, в которых Anubis не давал пользователям смотреть сайты, при том что никаких веских причин для этого у него не было. Не переключайтесь. Будет интересно.

Читать далее

Как мы выследили регрессию использования памяти в продакшен-сервисах на Go 1.24

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

Команда Go for Devs подготовила перевод статьи о том, как команда инженеров выявила регрессию использования памяти в Go 1.24. Оказалось, что всего одна оптимизация в аллокаторе памяти, случайно потерянная при рефакторинге, заставляла Go «съедать» сотни мегабайт RAM. Но сообщество Go-разработчиков быстро нашло и устранило проблему.

Читать далее

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

Деструктуризация в JavaScript

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

Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов стала деструктуризация — способ получения данных

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, как работает синтаксис и как деструктуризировать массив. Подробности под катом!

Читать далее

Zen of Python: философия языка

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

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

Читать далее

Где поток ненужного софта? Почему заявления об ИИ-ассистентах не сходятся

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

Я в бешенстве. Я реально зол. Зол настолько, что хочется сносить чужие песочные замки, зарядить Дэниэлю ЛаРуссо по физиономии и поливать его грязью перед его девушкойa.

Вообще-то я не из тех, кого легко разозлить, но ситуация в индустрии достала окончательно.

Читать далее

Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI

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

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

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

Читать далее

Пет-проект с AI-помощником: мой первый опыт вайбкодинга

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

Как и многие начинающие разработчики, я давно мечтал сделать свой первый pet-проект — чтобы почувствовать себя «настоящим программистом» и перестать бояться собеседований. В итоге решился: буду писать веб-приложение для личных заметок.

На самом деле я не совсем новичок. Раньше у меня уже были попытки освоить разные языки программирования, но дальше пары строчек кода дело редко заходило. Умение «гуглить правильно» и искать ответы на StackOverflow пока давалось тяжело, поэтому довести что-то до результата было сложно.

В этот раз я решил пойти по трендам и подключить в процесс AI. Спасибо Хабру, что в нужный момент подкинул статью про Koda. С неё и начался мой эксперимент. А команде Koda хочу выразить респект за то, что всё бесплатно.

Читать далее

Next.js меня окончательно достал

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

Наконец, настал этот момент, и я решился написать статью. Давно хотел, но как-то не хватало мотивации. А ведь, знаете, как говорят: «гнев — лучший мотиватор». Есть же такое выражение?

Предыстория

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

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

Читать далее

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

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

Несмотря на высокий интерес компаний к генеративному ИИ и его потенциал для роста выручки, подавляющее большинство корпоративных проектов терпит неудачу. Новый отчёт MIT указывает, что только 5% пилотных внедрений приносят ощутимый финансовый эффект. В переводе от команды Spring АйО рассмотрим основные причины, которые кроются не в самих моделях, а в ошибочной интеграции, неправильных приоритетах и нехватке адаптации под бизнес-процессы.

Читать далее

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