Обновить
1277.69

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

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

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

Как обрабатывать исключения в Java

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

Обработка исключений — одна из фундаментальных тем в Java, с которой сталкивается каждый разработчик. Правильная работа с ошибками не только делает приложение стабильным, но и значительно упрощает его отладку и поддержку. В отличие от многих других языков, Java имеет строгую и продуманную систему исключений, которая делит все ошибки на проверяемые (checked) и непроверяемые (unchecked). 

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

Читать далее

Вайбкодинг — советы НЕразработчикам, которые хотят кодить с ИИ

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

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

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

Это статья для НЕразработчиков, которые хотят в паре с ИИ сделать себе полезный скрипт или пет-проект. Я постарался написать ее максимально просто, чтобы даже далекие от разработки люди понимали, что делать и куда копать.

Читать далее

Fizz Buzz на косинусах

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

Fizz Buzz — это игра с числами, которая стала неожиданно популярной в мире компьютерного программирования в качестве простой проверки базовых навыков. Правила игры просты: игроки вслух произносят по порядку числа, начиная с единицы. Если число делится на 3, игрок должен сказать вместо него «Fizz». Если число делится на 5, он должен сказать «Buzz». Если оно делится и на 3, и на 5, игрок говорит «FizzBuzz». Вот типичная программа на Python, выводящая нужную последовательность:

for n in range(1, 101):

if n % 15 == 0:

print('FizzBuzz')

elif n % 3 == 0:

print('Fizz')

elif n % 5 == 0:

print('Buzz')

else:

print(n)

А вот её вывод: fizz-buzz.txt. Можно ли усложнить эту программу? Слова «Fizz», «Buzz» и «FizzBuzz» повторяются в этой последовательности периодически. А что ещё у нас есть периодического? Тригонометрические функции! Возможно, нам удастся при помощи этих функций закодировать все четыре правила последовательности в выражении в аналитическом виде. Именно эту задачу мы и исследуем в статье, получив в конце дискретный ряд Фурье, который может получить любое целочисленное n и выбрать для печати соответствующий текст.

Читать далее

Издательство Питер. Колонка редактора, ноябрь 25 г

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

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

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

Читать далее

Что такое CRUD и почему это важно для всех в IT

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

Неважно, в какой сфере вы работаете: backend-разработчик, frontend, архитектор БД, системный аналитик, тестировщик или кто-то еще. А может, вы только ищете работу в IT? Или просто интересуетесь, как устроен цифровой мир. Эта статья - возможность освежить в памяти базовые концепции программирования, подготовиться к собеседованию (ведь вопрос про CRUD-операции может прозвучать не напрямую, но почти всегда скрыт в других задачах или кейсах) или просто понять, как устроены ваши любимые приложения.

Вопрос на миллион: Знаете ли вы, что общего между созданием поста в Нельзяграм, покупкой на Ozon и обновлением резюме на hh.ru?

Ответ прост: в их основе лежат четыре базовые операции, скрытые за аббревиатурой CRUD. И да, эти операции — первая ступень к пониманию того, как работают современные API.

Читать далее

DeepSeek-OCR + LLama4 + RAG = Революция в мире агентного OCR

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

В выходные я просматривал Твиттер, чтобы узнать, что происходит в сфере ИИ. И снова DeepSeek привлек внимание всего мира.

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

Любой, кто пользовался большой языковой моделью (LLM), сталкивался с такой проблемой:

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

Это происходит потому, что квадратичная сложность длины последовательности по своей сути ограничивает GPT, Gemini и Claude - чем длиннее входные данные, тем больше вычислительной мощности требуется.

Читать далее

Лучшие нейросети для вайбкодинга на 1С 6 (финал)

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

В этой части добавил Claude Opus 4.5 и GPT 5.1-Codex-Max

Предыдущая часть

Для тех, кто не любит читать, результат сразу тут:

Читать далее

Выразительность против разрешимости: почему «мощные» системы тяжело анализировать

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

В программировании мы привыкли торговаться временем против памяти, но есть ещё один, менее очевидный, компромисс — между тем, что система в принципе умеет выражать, и тем, что о ней потом вообще можно строго сказать. Машины Тьюринга, PDA и DFA, Rust и Python, SAT и SMT, системы типов, макросы и метапрограммирование — всё это разные точки в одной и той же решётке «выразительность против разрешимости», просто по разным осям.

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

Читать разбор

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 12. Описываем поведение

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

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

Читать далее

Книга: «Паттерны проектирования Unity. Популярные шаблоны и лучшие практики создания игр на Unity и C#»

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

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

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

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

Читать далее

Как я Rust в Python встраивал

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

Rust все популярней, а вместе c этим создается много библиотек для Python на Rust.
В данной статье узнаем, как создать простенькую библиотеку для Python на Rust на примере кодирования данных в Base 64.

Читать далее

ChatGPT бесполезен? Я взломал мозг ИИ с помощью простого графа. Теперь он учится сам, и это пугает

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

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

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

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

Читать далее

GitOps для конфигураций 1С

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

Привет, Хабр! В этой статье поговорим о том, как принципы GitOps можно применить к разработке конфигураций 1С:Предприятия.

Читать разбор

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

Ловушка No-Code: Как сэкономить $27,000 на старте и чуть не убить стартап на финише (гайд на примере маркетплейса)

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

В мире стартапов есть две религии. Первая молится на «быстро и дешево» (No-Code). Вторая — на «надежно и масштабируемо» (Hard-Code). Адепты первой показывают работающие приложения, собранные за выходные. Адепты второй снисходительно улыбаются, зная, что будет, когда в это приложение зайдет тысячный пользователь.

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

Я не буду занимать ничью сторону, а просто покажу цифры.

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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