Обновить
1094.09

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

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

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

Как системщику остаться в живых: харденинг, который не убьет ваш перфоманс

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

Здравствуйте, меня зовут Анна Мелехова. Я старший архитектор в отделе развития архитектуры KasperskyOS. В статье я хочу поделиться практическим опытом системной разработки, которой я занималась сначала в проекте по виртуализации, а теперь в «Лаборатории Касперского», где мы делаем микроядерную операционную систему с повышенными требованиями к безопасности – KasperskyOS. Когда вы работаете в такой среде, быстро понимаете: харденинг – это не красивые галочки в чек-листе, а набор очень конкретных, очень практических решений, которые должны и защищать, и минимально снижать производительность. О них я и расскажу, а в конце дам личный топ самых полезных харденингов, которые бустят security и не снижают performance.

Читать далее

Новости

Мой опыт парного программирования с Chat GPT-5

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

Привет, Хабр! Про модели искусственного интеллекта сейчас не говорит только ленивый. Высказывается множество мнений и нередко они оказываются на противоположных полюсах: от полного скепсиса до убеждённости, что произошла новая научно-техническая революция. Жизненный опыт подсказывает, что истина где-то по-середине и инструмент будет полезным ровно настолько, насколько ты умеешь им пользоваться. В относительно недавнем интервью генеральный директор Microsoft Сатья Наделла заявил, что примерно 20-30 % кода в Microsoft уже сейчас генерируется ИИ и разработчикам надо будет адаптироваться. Мне тоже захотелось попробовать внедрить такого помощника в свои рабочие процессы и посмотреть, что из этого получится.

Читать далее

Ультимативный Spring-бульдозер на базе GigaIDE

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

Недавно вышел новый релиз GigaIDE, c момента прошлого релиза прошло значительное количество времени, а значит, команда создающая инструмент, скорее всего не сидела без дела, а неустанно штормила и реализовывала фичи. Завариваем чаю и пробуем. Тем более выход новой версии сопровождался новостями на различных медиа площадках и ребята обещают нам свой собственный маркетплейс.

Читать далее

Многие сложные задачи на LeetCode — это простые задачи на ограничения

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

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

Разбираем, как привычные «найди максимум при таких-то условиях» превращаются в компактные декларативные модели, зачем вообще нужны такие упражнения, что они говорят о собеседованиях и о нашем отношении к алгоритмам — и где у подхода с MiniZinc/constraint solving проходят естественные границы.

Смотреть подход

Project Cognition Layer: Почему AI-агенту нужна не только векторная БД, а Git. Архитектура долговременной памяти проекта

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

За полгода активного использования Cursor IDE я была поражена тем, насколько этот инструмент изменил мой подход к работе. Разработка превратилась в удовольствие: поэтапное планирование, реализация, умные подсказки – агент выполняет задачи активно, быстро и, что самое главное, практически именно так, как я хочу.

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

Казалось бы, недостатков почти нет. Однако, всякий раз, приступая к новой задаче, я начинала новый чат. Мне не хотелось перечитывать свои диалоги недельной давности, искать там контекст. Но настоящая проблема возникает, когда задача переходит ко мне от другого разработчика. У меня нет доступа к его диалогу с чатом. Я не знаю, почему он принял те или иные решения, какие варианты он и AI отбросили. Мне приходится заново вводить Cursor в суть задачи, тратя время на объяснение того, что AI-агент моего коллеги уже знал.

Еще одной проблемой всегда остается отсутствие наглядного понимания хода проекта. Глядя на код, я вижу результат, но не процесс. Я не вижу, как менялась логика принятия решений и куда движется архитектура. Git Log дает мне сухие факты ("изменен файл X"), но не дает ментальной модели.

Получается парадокс: наши локальные AI-агенты умнеют с каждым днем, но как команда мы страдаем от "коллективной амнезии" и отсутствия единой картины мира. Именно это натолкнуло меня на идею Когнитивного слоя проекта (Project Cognition Layer). Если у нас уже есть инструмент, который идеально хранит историю всех изменений (Git), почему бы не "накинуть" на него когнитивный слой, понятный и человеку, и AI?

Читать далее

Топ-10 бесплатных нейросетей для создания и редактирования фото

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

Признайтесь, бывало так, что для поста или презентации нужна идеальная картинка, а в итоге вы тратите полвечера, перескакивая между стоками, редакторами и сомнительными PNG из Google? И всё равно выходит не то, что было в голове.

С появлением нейросетей этот круг ада можно смело вычеркивать. Теперь идея появляется сначала в голове, а через пару секунд уже на экране. Хотите бизона в короне, киберпанковскую библиотеку или фэнтези-кофемашину на паровом ходу? Никаких фотографов, художников и бесконечных правок, только текст и немного фантазии.

Кстати, видели обложку с Наполеоном, который скачет верхом на динозавре и размахивает саблей, пока флаг с черепом развивается у него за спиной? Да, это не отрывок из учебника альтернативной истории. Это пример того, как нейросети умеют превращать абсолютно безумные образы в настоящие картинки.

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

Пристегивайтесь, будет интересно!

Читать далее

Как старые учебники по программированию объясняли сложные вещи проще нас — и что будет, если решать задачи их методами

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

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

Читать далее

Как выбраться из гравитации фреймворков

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему веб-команды застревают на орбите фреймворков и забывают о возможностях самой платформы. Автор убеждён: браузеры развиваются быстрее, чем экосистемы вокруг них, а зависимость от React и других инструментов тормозит инновации. Пора снова смотреть на веб как на платформу, а не как на “внутренность” фреймворка.

Читать далее

Object Pool коротко: экономим память в C# без лишнего мусора

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

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

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

Читать далее

Антипаттерн LLM-приложений: Когда модель игнорирует контекст. Часть 1

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

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

Как разработчикам нам обычно говорят: «давайте максимально быстро и топорно соберём proof‑of‑concept (PoC)». Мы собираем PoC на костылях, а дальше слышим: «отлично, теперь давайте из этого сделаем MVP». Времени на переорганизацию и реинжиниринг архитектуры никто не даёт. В итоге недели и месяцы работы превращают проект в тупиковую поделку — груду классов, методов и промптов, к которой страшно прикасаться.

С LLM эта история становится ещё болезненнее. В работе у меня было несколько показательных проектов с LLM в роли основного движка (RAG, Q&A‑системы), на которых я очень наглядно увидел, как делать не стоит. Эти «шишки» превратились в набор антипаттернов проектирования LLM‑приложений, о которых я хочу поговорить в серии статей.

В этой части — антипаттерн взаимодействия с LLM, когда модель игнорирует контекст: важные детали промпта, куски документов и даже прямые инструкции.

Представьте ситуацию: вы даёте модели текст, в котором прямо содержится ответ на вопрос, но она отвечает что‑то совсем не то. Вы прописываете инструкции, как именно нужно вести диалог и решать задачу, но они стабильно игнорируются. Вы добавляете новые чанки с данными, дописываете всё более подробные правила и уточнения — а качество ответов только падает.

Читать далее

Почему агенты НЕ пишут основную часть нашего кода

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

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

У нас есть веские причины на то, чтобы пока не присоединяться к таким компаниям, как Anthropic (генерируется 80%)Microsoft (30%) и Google (25%).  

‍‍Пока нам недостаёт в них некоторых жизненно важных элементов. В статье мы расскажем, почему это важно, и что нужно, чтобы закрыть эту нехватку.‍‍

Читать далее

This is JavaScript: методы объектов и контекст «this»

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

Привет, Хабр. Я Саша, разработчик, пишу на JS. Ранее я рассказывал о callback-функциях, деструктуризации, операторах и многом другом. Если вы уже успели познакомиться с основами JavaScript, то наверняка вам знакомы такие понятия, как объекты и функции.

В этой статье мы двинемся дальше и соберем эти знания воедино. Я расскажу вам о методах объектов и загадочном слове this. Разберемся, для чего они нужны, как сделать объекты по-настоящему живыми и как избежать частых ошибок. Ну что, начнем. 

Читать далее

Серия книг «Грокаем» от издательства «Питер»

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

Привет, Хаброжители!

Сейчас отличное время, чтобы погрузиться в серию книг «Грокаем»!

Серия книг «Грокаем» ориентирована на разработчиков и содержит доступные руководства по сложным технологиям, используя визуальный подход и реальные примеры для лучшего понимания.

Читать далее

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

10 приёмов профессионала для ускорения кода на Python

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

Команда Python for Devs подготовила перевод статьи о том, как делать код на Python быстрее без переписывания проектов с нуля. В статье 10 практичных приёмов — от sets и bisect до локальных функций и предвыделения памяти — которые дают реальный прирост скорости в типовых сценариях.

Читать далее

Сравнение LLM-кодеров: GPT-5.1, Grok, DeepSeek, «Алиса» и GigaChat

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

Привет, Хабр! Сегодня проверим, какая нейросеть лучше помогает в программировании. На дворе 2025 год у нас подоспел GPT-5.1, подтянулись конкуренты вроде Grok от xAI и DeepSeek из Поднебесной, а на отечественной сцене выступают обновлённая Алиса от Яндекса и сберовский GigaChat.

Читать далее

Поделюсь с вами всем, что успел изучить о градиентном шуме

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

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

Чтобы глубже и результативнее понять градиентный шум, мы сначала изучим его одномерную версию (в литературе этот случай обычно не рассматривается), а затем медленно пойдём вверх по лестнице измерений в сторону усложнения задачи. Эту тему мы будем рассматривать с точки зрения графического процессора (GPU), а не с точки зрения обычного ЦП. Все примеры кода и анимации, приведённые в этой статье, реализованы на WebGL2/GLSL (надеюсь, это будет не слишком сильно сказываться на производительности). Примеры должны работать на большинстве современных устройств.

Читать далее

Почему LLM врут настолько убедительно?

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

Команда AI for Devs подготовила перевод статьи о том, как быстро растущие AI-ассистенты меняют саму природу разработки. Их код выглядит безупречно — но всё чаще решает не ту задачу, что стоит перед нами. Где проходит граница между ускорением и самообманом, и какую новую ответственность это накладывает на инженеров?

Читать далее

ShadowRealm API: изоляция исполнения кода в JavaScript

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

Джаваскриптеры давно мечтают о безопасной изоляции кода, чтобы можно было выполнить сторонний скрипт или библиотеку в своём песочном замке, без риска повредить глобальные объекты или залезть друг другу в прототипы. Сейчас для этого есть костыли, либо создавать скрытый <iframe> (у которого свой глобальный контекст), либо городить сложные рентаймы. В Node.js есть модуль vm и контексты, но и они далеки от идеала. Но на горизонте замаячило штатное решение от TC39, ShadowRealm API. От названия веет чем-то мистическим, но по сути это просто способ создать новый глобальный JavaScript-контекст в рамках текущего потока, и исполнить в нём код изолированно от основного.

Читать далее

Создаём DSL на C#

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

Создаю собственный DSL на C#: рассказываю о том, как закладывается фундамент языка и как подойти к проекту подобного масштаба.

Читать далее

Современный подход к предотвращению CSRF/CORF-атак в Go

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

Команда Go for Devs подготовила перевод статьи о новом подходе к защите Go-приложений от CSRF/CORF-атак. Автор разбирает, как связка TLS 1.3, SameSite cookies и http.CrossOriginProtection из стандартной библиотеки позволяют отказаться от токенов — но только если соблюдены важные условия. Насколько безопасен такой подход? Разбираемся.

Читать далее

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