Все потоки
Поиск
Написать публикацию
Обновить
39.32

Качество кода *

Как Макконнелл завещал

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

Интеграция как криптовалюта опыта: как веб-интеграторы майнят ценность в цифровой экосистеме

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

Здравствуйте! Антон Боев, исполнительный директор веб-интегратора DD Planet. В текущей статье поговорим о том, что внутри моей команды вызывает горячие дискуссии практически каждый день. Итак, речь пойдет об ИНТЕГРАЦИЯХ.

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

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

Итак, начнем с анализа изменений в подходах и способах создания интеграций за последнее десятилетие.

Способы интеграций, есть ли изменения?

Организовать взаимодействие двух сервисов можно разными способами:

Читать далее

Новости

Управление результатами статического анализа

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

Статический анализ — это не только запуск проверки. Как обрабатывать отчёты, рассылать предупреждения разработчикам и визуализировать результаты? Рассказываем, как с помощью утилит и интеграций PVS-Studio превратить сырые данные анализатора в эффективный процесс улучшения кода.

Читать далее

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 2: первый запуск и настройка

Время на прочтение5 мин
Количество просмотров866

Продолжаем изучать использование PVS-Studio для бесплатных (и не только) проектов. В этой статье мы разберём основные настройки анализатора и их важность, а также с чего стоит начать знакомство при первом запуске анализа на новом проекте.

Читать далее

Код-ревью — самое узкое горлышко в разработке. И вот цифры, которые это доказывают

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

Код-ревью убивает вашу команду. И вот доказательства.

Мы измерили. Один пулл-реквест крадет у компании 2.5 рабочих дня и 1.5 часа времени senior-разработчика. 70% комментариев в ревью — бесполезные споры о пробелах и запятых. Хватит это терпеть. Читайте мой разбор, почему код-ревью в Nomium стало главным тормозом разработки и что с этим делать.

Читать далее

Команда PVS-Studio просит присылать примеры ошибок, связанные с использованием вайб-кодинга

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

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

Отношение к вайб-кодингу и его вариациям неоднозначное. Я разделяю мнение, что использование сгенерированного кода, особенно без полного его понимания программистом, плохо скажется на надёжности и безопасности приложений. Так что работы у статических анализаторов только прибавляется :)

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

Читать далее

Актуальны ли спустя 40 лет советы из «Жемчужин программирования»?

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

В сентябре 1985 года Джон Бентли опубликовал книгу Programming Pearls — сборник афоризмов об истинах в программной отрасли.

Прошло сорок лет. Наверняка спустя множество революций в нашей отрасли они потеряли актуальность? Эти советы относятся к той же категории, что и «всегда держи при себе пучок сена для лошадей» или «карманный калькулятор не всегда будет под рукой».

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

Читать далее

Как ускорить свою доставку и прокачать этим бизнес и команду

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

🚀 Как перестать бояться релизов и начать жить: практический гайд для тимлидов

Сбор практик для тех, кто хочет сделать доставку кода не болью, а удовольствием

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

Актуальность статьи: в современном мире скорость доставки фич — это не просто модный тренд, а вопрос выживания на рынке. Компании с быстрой доставкой обгоняют конкурентов по доходам на 20–40%.

Цель исследования — показать, как технические и управленческие практики влияют на ключевые бизнес-метрики и уровень счастья команды. Мы делимся реальным опытом из агротех-разработки.

Методология основана на практическом применении DevOps-практик и измерении результатов через метрики DORA. Мы покажем, как:

Trunk-Based Development сокращает время доставки на 30%

Feature Toggles делают релизы безопасными

Left-shifting тестирование снижает время восстановления с 15–20 часов до 1 часа

Kanban превращает хаос в прозрачную систему

Основные результаты демонстрируют, что быстрые релизы = быстрые проверки гипотез, маленькие партии изменений = дешёвые ошибки, частые деплои = счастливая команда.

P.S. Если вы всё ещё релизите раз в квартал — эта статья поможет вам пересмотреть свои подходы к разработке. 🎯

Читать далее

«Трактор или лопата?» — разбираем главные мифы и проблемы low-code платформ

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

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

Продолжаю публиковать наши разговоры из телеграм-канала Dev Q&A. В этот раз собрались обсудить одну из самых спорных тем в российском IT — low-code платформы. Тема настолько горячая, что удалось собрать представителей ведущих российских low-code платформ и практикующих разработчиков.

Читать далее

STM32H745: взлетаем на 480 МГц

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


Речь пойдёт о микроконтроллере (МК) STM32H745IIT6, в корпусе LQFP — 176, с ядрами Cortex‑M4 240 МГц и Cortex‑M7 480 МГц. Далее я буду ссылаться на официальную документацию STM — RM0399 Reference Manual Rev. 4 и DS12923 Rev. 2 Datasheet STM32H745xI/G.

Что тут может быть сложного, спросите вы. В наш век IDE всё же решается автоматически? Нужно лишь нажать на кнопку? Но нет, не в этот раз, и не с родной средой производителя CubeIDE V1.18.0, куда интегрирован конфигуратор CubeMX 6.14.2. Для начала рассмотрим концепт масштабирования напряжения, или Voltage Scaling (VOS). Это означает, что чем выше тактовая частота, тем больше напряжения нужно ядру, и направлено на снижение потребляемой мощности, и соответственно, разогрева чипа. Отключить этот функционал нельзя. Соответствие между напряжением питания ядра VOS и тактовой частотой представлено в Таблице 1 ниже.

Читать далее

Pro Деньги. JSR-354

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

Достаточно часто в реализации сервисов есть необходимость оперировать денежными единицами, хранить их в БД, обмениваться по API и выполнять конвертацию

Читать далее

Зачем CEO рискует всем ради хакатона с AI? История MergeSensei

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

Глубокой ночью CEO инициирует хакатон — за 48 часов команда собирает MVP AI-ревьювера кода. Безумие? Возможно. Но теперь мы ищем CTO и тимлидов, чтобы протестировать MergeSensei и сделать его настоящим помощником в code review. Подключайтесь — и помогите нам улучшить инструмент, который реально снимает боль ревью.

Читать далее

Типы и тесты

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

В статье про тестируемость я косвенно упоминал подход "разработка через тестирование" (TDD); сейчас же хочу поделиться переводом статьи от гуру TDD, Роберта Мартина. Он обсуждает с Марком Симаном, нужно ли при динамической типизации больше тестов. Симан утверждает, что статическая типизация исключает многие недопустимые состояния, и поэтому часть тестов становится просто ненужной. Мартин же доказывает, что тесты необходимы для проверки поведения независимо от языка. При использовании методологии TDD типизация не обеспечивает дополнительной надёжности.

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

Читать далее

It's a match

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

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

Давайте вспомним как мы строим роутинг в наших приложениях. В примере ниже – react-router-dom, но в других фреймворках/библиотеках все примерно также:

Читать далее

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

Вайб-кодинг глазами старого разработчика

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

Здорово, когда ты получаешь готовое работающее приложение с одного запроса. Пусть даже долго оттачиваемого, как меч самурая. Это апофеоз одновременно профессионализма и лени: ты смог сформулировать задачу так, что ИИ тебя понял и с первого раза сделал всё верно.

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

Эта статья содержит разбор эксперимента по вайб-кодингу, проведённого oldschool-разработчиком с 20+ летним стажем (Assembler, 1C, C/C++, Go, Pascal, Perl, PL/SQL, Python). Я покажу:

• В каких случаях вайб-кодеру достаточно минимальных знаний предмета, а в каких необходимы экспертные навыки и опыт?

• Что изменилось в инструментах вайб-кодинга за текущий год, и что изменится в ближайшем будущем?

• Сравним обычные и «премиум» языковые модели.

• Поймём, есть ли предел у диалога с ИИ-ассистентом, и как понять, что он достигнут?

Читать далее

Обработка исключений на JS – неудобная, но не безнадежная

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

Ситуация: пишешь код на JS, хочешь обработать исключение, пробрасываешь throw, ловишь его с помощью try‑catch. Но добавим нюанс: пусть это нужно сделать для setTimeout. Эта функция использует окружения браузера — не JS‑функция, асинхронная.

Загвоздка: catch не сможет поймать ошибку.

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

Давайте разбираться.

Читать далее

Как правильно вайбкодить! Советы от QA, который запустил свою песочницу

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

Привет, заводчане! В этой статье вы найдете реальные технические советы по особенностям общения с бездушными ИИ моделями, в частности я расскажу про GPT 4o и свежую 5, но эти советы также применимы и к другим AI.

‼️Сразу внесу ясность: рекомендации предназначены для личных пет-проектов и
не призывают нарушать политику конфиденциальности вашей компании!

Я инженер по тестированию и уже около года поддерживаю работу своей песочницы по практике тестирования и подготовке к собеседованию на позицию Full Stack QA. Опыт вайбкодинга повлёк за собой понимания работы JS, CSS и HTML, если говорить конкретно про веб-проект. Благодаря такому проекту и подходу вайбкодинга, я собрал технические инструкции и заметки как выжать максимум из ответа ИИ моделей, здесь будет больше технических особенностей работы с моделями, нежели готовые промпты. Ниже указал 12 советов, которые упростят вам написание кода, разработку своего проекта, изучение нового стека или учебную практику.

Читать далее

QA-инженер в продукте: как я ушёл из аутсорса и перестал паниковать перед релизом

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

Полгода назад я испытал культурный шок. Всю карьеру — я QA Automation Engineer — пилил фичи в аутсорсе: стабильно, предсказуемо, местами даже комфортно. Но на январских каникулах впервые за долгое время задумался: мне скоро 30, я уверенный сеньор — а будто бы стою на месте.

Я просто включил «open to work» на LinkedIn — и неожиданно получил оффер в продукт. Пошёл на собеседование «чисто посмотреть» и остался.

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

Читать далее

Если ваш запрос на слияние сгенерирован ИИ, я его отклоню. Объясню, почему

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

Иногда запрос на слияние (merge request) даже не стоит отправлять на код‑ревью, так как при его составлении кто‑то злоупотреблял искусственным интеллектом, и это повредило как проекту, так и команде. Например:

1. Удалив часть кода, можно значительно улучшить запрос на слияние.
2. Вы не знаете основ языка, на котором подавали запрос.
3. Спам в документации.
4. Вопиющая несогласованность материала.
5. Чрезмерно подробно рассмотрены пограничные случаи.
6. Вы добавили бессмысленные или нежелательные зависимости и сами не понимаете, зачем.

Если я прислал вам обратно ваш запрос на слияние с невычищенным ИИ и без всяких прочих комментариев — значит, какие‑то из этих пунктов вы выполнили.

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

Читать далее

TDD и цикл обратной связи

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

Есть небольшая книжка написанная более 20 лет назад, переведенная на русский как «Экстремальное программирование». При обсуждении этой книжки с коллегами я часто встречал мнение, что она только про то, что надо сначала тесты писать, а потом код и больше в ней нет ничего полезного. Когда у самого добрались руки до нее, я понял, что видимо читают выжимки из статей на Хабре или просто статьи википедии, потому что там есть и паттерны проектирования, и правила написания тестов и практические примеры. А все запоминают только мантру «Утром тесты — вечером стулья код».

Читать далее

Как мы автоматизировали код-ревью за 48 часов на хакатоне: от боли техлидов до рабочего MVP

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

«У чат-GPT спросил?» — эта фраза стала мемом в нашей команде. Техлид Иван постоянно экспериментировал с AI, а коллеги подшучивали над его энтузиазмом. Вдохновлённые энтузиазмом техлида, мы решили протестировать возможности искусственного интеллекта для автоматизации код-ревью. За 48 часов хакатона мы создали рабочее MVP, которое уже упрощает работу разработчиков. Читайте, как AI помог нам сократить время на ревью кода и какие результаты мы получили всего за два дня.

Читать далее
1
23 ...

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