Обновить
1024K+

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

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

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

Микросервисы или Low-code? Разбираем возможности Nuxeo на примере ипотечного конвейера

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

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

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

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

Читать далее

Concepts в C++: шаблоны, которые наконец‑то понятны

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

Ошибки шаблонов в C++ — отдельный жанр: вы ожидаете простой контракт к типу, а получаете десятки строк из глубин STL. Проблема не в компиляторе, а в том, что сами требования к типам в классических шаблонах долгое время оставались неявными. Concepts это меняют: они позволяют формализовать ожидания к типу прямо в коде, сделать перегрузку осмысленной, а ошибки — читаемыми. В этой статье разберём, как работают concepts, зачем они действительно нужны и как использовать их не как «синтаксический сахар», а как инструмент проектирования.

Читать далее

Разбираем подводные камни, ошибки и лучшие практики при разработке Kubernetes-операторов. Часть 3

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

Привет! Это снова Стас Иванкевич, техлид в команде разработки управляющего слоя Platform V DropApp в СберТехе. Наши операторы продолжают бороздить просторы K8s, а инсталляторы — разворачивать новые кластеры, и мы готовы поделиться с вами новыми полезностями.

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

Читать далее

37 советов и приемов по написанию качественных тестов для фронтенда

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

Мне нравится писать тесты. Написание теста и последующее обновление кода для его прохождения — всегда увлекательный процесс.

Но нет ничего хуже, чем выяснение того, что проверяют существующие тесты (раньше я сам часто был автором таких тестов).

Представляю вашему вниманию мои советы по написанию высококачественных тестов для фронтенда.

Читать далее

Да-машина: почему ваш AI никогда не скажет что код — отстой

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

Пользователь спросил ChatGPT про бизнес-идею «говно на палке». Ответ: «It’s not just smart - it’s genius». Stanford замерил: AI соглашается с вами на 49% чаще, чем живой человек - даже когда вы очевидно неправы. Для разработчиков это значит: ваш AI-ассистент никогда не скажет что архитектура - мусор.

Читать далее

Структуры данных на практике. Глава 11: Префиксные деревья и базисные деревья

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

Кошмар с автозавершением

Наше префиксное дерево было в 8 раз медленнее хэш-таблицы. И оно потребляло 128 МБ памяти, в отличие от хэш-таблицы с 24 МБ.

Такого не должно было произойти. Префиксные деревья — стандартное решение для автозавершения: поиск за O(k), где k — длина строки вне зависимости от размера датасета. Идеально подходит для сопоставления префиксов. Обычно всегда используется для автозавершения, проверки правописания и таблиц IP-маршрутизации.

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

Поэтому мы реализовали префиксное дерево. Результаты бенчмарка оказались ужасными:

Префиксное дерево было в 8 раз медленнее простой хэш-таблицы. И оно использовало 128 МБ памяти, в то время как хэш-таблица — всего 24 МБ.

Где мы ошиблись?

Читать далее

Делегаты и Лямбды: От тайного знания к повседневному инструменту

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

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

Читать далее

Долг понимания — скрытая цена кода, сгенерированного искусственным интеллектом

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

“Долг понимания” (comprehension debt) — это скрытая цена, которую человеческий интеллект и память платят в результате чрезмерной зависимости от ИИ и автоматизации. Для инженеров это особенно актуально в сфере разработки агентных систем.

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

Читать далее

Парсер‑комбинаторы «с нуля»

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

Привет, Хабр!

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

Эту статью я позиционирую как введение в парсер‑комбинаторы «для чайников» (или «для самых маленьких» — как вам больше нравится). Цель: попытаться рассказать простым языком и с примерами так, чтобы Вы могли после прочтения написать свой парсер без какого‑либо предварительного опыта и знаний в области синтаксического анализа.

Приятного чтения!

Читать далее

Структуры данных на практике. Глава 10: B-деревья и деревья, эффективно использующие кэш

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

Загадка базы данных

Вся наша база данных находилась в памяти, однако операции поиска по ней занимали 12 тысяч тактов. При миллионе показаний датчика IoT-устройства с 64 КБ кэша реализация красно-чёрного дерева оказалась слишком медленной для запросов в реальном времени.

«Давайте попробуем B-дерево», — предложил я.

«Разве они нужны не только для баз данных на дисках? — спросил лид, — У нас всё находится в памяти. Чем нам будет полезно B-дерево?»

Вопрос был вполне разумным. B-деревья были придуманы для доступа к диску; каждый узел в них — это блок диска. Однако паттерны промахов кэша выглядели подозрительно похожими на паттерны дискового ввода-вывода — всего в 100 раз, а не в 100000 раз быстрее.

В итоге мы реализовали B-дерево. Результаты удивили всех...

Читать далее

Машина Тьюринга в Minecraft

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

Что если взять одну из базовых концепций computer science и построить её прямо внутри игры — из пикселей, блоков и виртуальных проводов? Именно это я и сделал. Машина Тьюринга — теоретическая модель, которая лежит в основе всех современных компьютеров. Она читает символы, записывает их и переходит между состояниями по заданной программе. Майнкрафт позволяет симулировать электрические сигналы с помощью редстоуна. Из этого материала можно собирать настоящие логические схемы — и в итоге целые вычислительные устройства. Получился полностью рабочий механизм: машина читает данные, выполняет команды и останавливается по завершении программы.

Делаем интересную Майнкрафт штуку

Go, TUN и UDP: пишем сетевой relay с гибкой конфигурацией

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

Продолжаю пилить на Go утилиту для работы с TUN-интерфейсами. В предыдущей версии пакеты проходили путь system <-> tun10 <-> go app <-> tun11 <-> inet. Основная цель тогда была одна — разобраться с TUN-интерфейсами и сетевыми настройками. В текущей версии я добавил простейший udp relay, вынес сложность в конфиг и в целом переработал проект.

Читать далее

project-graph-mcp: навигация по проекту для ИИ-агента

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

Мы написали project-graph-mcp - MCP-сервер для структурного анализа кода. Агент работает зная полную архитектуру проекта, не тратя на это лишние токены. Сервер строит граф зависимостей и отдает минифицированный JSON.

Читать далее

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

Довели. Поднял корпоративный мессенджер локально

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

Не шучу, правда довели. Одни уходят, другие замедляют. И у меня начала мелькать шальная мысль: а что, если взять и поднять свой корпоративный чат?

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

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

Читать далее

Где же все эти приложения, создаваемые с помощью ИИ?

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

Любители вайбкодинга и агентного программирования говорят, что работают в 2, 10, а то и в 100 раз продуктивнее! Один даже разработал с нуля целый браузер. Невероятно!

И скептики задают правомерный вопрос: «А где же все эти приложения?» Если пользователи ИИ становятся пусть хотя бы вдвое продуктивнее, то где искать этот двухкратный прирост созданных программ? Все подобные вопросы исходят из предположения, что миру нужно больше ПО, и если оно станет дешевле в производстве, то и создавать его будут больше. Так что, если вы с этим предположением согласны, то где же все эти дополнительные программы, которые можно было бы отнести к «эффекту ИИ»?

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

Читать далее

Возврат значений из функций в x86-64: регистры, память и скрытые аргументы

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

Наверняка многие и не задумываются: а как на самом деле происходит возврат структур и других типов значений из функций? Что происходит под капотом, какие приемы задействует компилятор? В данной статье я постараюсь дать ответы на эти вопросы и сделать это просто и понятно.

Читать далее

Образовательные программы CS/AI в Германии без немецкого языка: варианты, о которых мало кто знает

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

В 2023 году JetBrains запустил стипендиальную программу в немецком частном университете — с полным покрытием tuition fee, жилья и проживания для студентов CS/AI. Университет этот русскоязычным абитуриентам почти не известен. Ниже — разбор того, что это за место, какие там программы и стоит ли его рассматривать всерьёз.

Читать далее

Как получить безлимитный доступ к Claude Sonnet 4.5 бесплатно и без VPN

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

Нашёл способ использовать Claude Sonnet 4.5 бесплатно. В статье — пошаговая инструкция и реальные настройки для быстрого запуска. Подойдёт тем, кто хочет быстро начать работать с моделью и не платить лишнее.

Читать далее

Вайбкодим .EXE под Windows с GUI на AutoHotkey v2

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

История о том, как превратить консольный скрипт в полноценное Windows приложение с GUI на AutoHotkey v2 при помощи нейросетей и вайбкодинга.

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

Читать далее

Советы тем, кто боится поступать в ШАД (на своём примере)

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

Советы тем, кто боится поступать в ШАД (на своём примере)

Всем привет! В предыдущей статье я рассказывала о своём пути поступления в ШАД. Сейчас я уже закончила первый семестр и учусь на втором. В этой статье хочу поделиться впечатлениями об учёбе: как выстроен процесс, насколько велика нагрузка и с какими сложностями можно столкнуться.

Немного о себе

Хоть я и закончила два курса ВМК МГУ, я не считаю себя сильным студентом. Я из обычной школы Калининграда, олимпиадами стала заниматься поздно, и результатов хватило только на 100 баллов ДВИ при поступлении (льгота олимпиадникам). На ВМК я училась не в самой сильной группе. Уровень курсов в ШАДе оказался для меня совершенно новым — такого насыщенного и глубокого материала у меня раньше не было.

Окружение

В ШАДе много действительно сильных ребят: всероссы, межнарники, студенты ПМИ ФКН, физтехи и другие, которые многие темы уже проходили в рамках своих вузовских программ. Я не раз наблюдала, как едва открывалась задача в домашнем задании, а её уже кто‑то сдавал. Сначала это пугало, я чувствовала себя не в своей тарелке. Но оказалось, что, помимо таких звёзд, есть и простые студенты, как я. Есть даже ребята с гуманитарным бэкграундом, их пример вдохновляет.

Выбор направления

В ШАДе несколько направлений. Я выбрала Data Science. Откровенно говоря, решение было скорее интуитивным: мне всегда была ближе математика, чем жёсткая разработка, поэтому направления «Разработка машинного обучения» или «Инфраструктура больших данных» казались сложнее и не совсем моими. Остальные направления ощущались для меня немного абстрактными.

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

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

Читать далее