Pull to refresh
-2
0
Send message

Сгенерированный ИИ код сделает вас плохим программистом

Level of difficultyEasy
Reading time7 min
Reach and readers10K

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

Для начала уточню, что под использованием сгенерированного ИИ кода я подразумеваю ситуацию, когда ИИ пишет код за вас, а не когда вы используете ИИ как инструмент обучения, чтобы лучше познать тонкости языков программирования и библиотек (по этому поводу у меня тоже есть своё мнение). Но если вы когда-нибудь применяли эти инструменты для того, чтобы ИИ писал код на основании имён методов или комментариев с нечётко описанной функциональностью, или вы используете ИИ для изучения и понимания собственной кодовой базы, чтобы не делать этого самостоятельно, то эта статья — про для вас.
Читать дальше →

Как запрогать сайт другу и не поссориться

Reading time3 min
Reach and readers989

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

Читать далее

Сборка Python проекта с uv и Docker

Level of difficultyMedium
Reading time12 min
Reach and readers9.1K

Привет, Хабр! Меня зовут Денис Савран. Я старший разработчик направления серверной разработки на интерпретируемых языках и работаю в компании «Криптонит». В этой статье я хочу поделиться опытом сборки проектов на Python с использованием самых современных инструментов.

Читать далее

Использование статических анализаторов кода при разработке безопасного ПО

Level of difficultyMedium
Reading time9 min
Reach and readers1.8K

Как часто анализировать проект? Сколько анализаторов использовать? Как размечать полученные предупреждения? Отвечаем на эти и другие вопросы, разбираясь в подробностях свежего ГОСТ Р 71207–2024, посвящённого статическому анализу.

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers29K

За 16 лет работы в компаниях разного масштаба, размаха и уровня корпоративного бескультурья мне приходилось видеть весьма экзотические причины увольнения. В топ-3 уверенно попадают увольнение из-за недостаточной высоты двери в туалете, из-за вызова скорой помощи на работу и из-за исчезновения булочек с курагой в меню столовой, отсутствия отдельного кабинета или парковочного места. Я однажды уволилась после фразы замдиректора: «И это последнее китайское предупреждение!» Не зная настоящего смысла этой идиомы, я как истинный самурай совершила карьерное харакири. Но, как нас учили на уроках истории, у каждого события есть причины, а есть повод — последняя капля, после которой срывает резьбу и вершится что-то необратимое. Конечно, булочки, такси не того класса, искры в микроволновке и проч — это всё повод. И часто бывает так, что о причинах никто ничего не знает или все узнают, но слишком поздно. 

Читать далее

Полное руководство по обработке ошибок в Python

Reading time15 min
Reach and readers14K

Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы:

  • Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно?
  • Как узнать, какие классы исключений нужно перехватывать?
  • Что нужно делать при перехвате исключений для их «обработки»?
  • Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо?

Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!
Читать дальше →

Полное руководство по модулю asyncio в Python. Часть 1

Reading time11 min
Reach and readers221K

Python-модуль asyncio позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio.

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее

SQLAlchemy 2.0 + Python Generic, или как создать универсальный репозиторий для работы с БД

Level of difficultyEasy
Reading time5 min
Reach and readers4.3K

Доброго времени суток, товарищи, эта статья, так скажем, продолжение предыдущей статьи об SQLAlchemy 2.0 для новичков, в этой статье мы узнаем что такое Python Generic и как его можно использовать в наших целях при взаимодействии с БД.

Читать далее

Как жить без IntelliJ IDEA? Часть №1. Собери сам

Level of difficultyEasy
Reading time9 min
Reach and readers43K

На российском рынке сложилась сложная ситуация с IDE для Java-разработчиков. Новости, связанные с ограничением скачивания IntelliJ IDEA Ultimate, недоступностью JetBrains маркетплейса и блокировкой лицензий, которые использовались на территории РФ порождают огромное количество вопросов, на которые не у всех есть ответы.

Команда Spring АйО подготовила цикл статей, в которых постарается ответить на все вопросы, связанные с уходом IntelliJ IDEA из России.

Читать далее

Ручное восстановление БД PostgreSQL после аппаратного сбоя

Level of difficultyHard
Reading time28 min
Reach and readers2.7K

В очередной рабочий день поступила задача обновить Gitlab. Задача в общем-то не сложная, ни смотря на то, что там он установлен в докере из многим знакомого образа от sameersbn, что впоследствии было переделано на omnibus (что бы это не значило), т.к. по моему опыту omnibus версия (установка на чистый линукс) гораздо проще и предсказуемей в эксплуатации. Впрочем статья совсем не об этом.

Но как можно понять из наличия этой статьи, что-то пошло не так...

Читать далее

SOLID на котиках

Reading time7 min
Reach and readers30K


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →

Почему AI не заменит программистов

Level of difficultyEasy
Reading time4 min
Reach and readers19K

В эпоху быстрого развития AI и LLM я все чаще вижу, что многие люди думают AI заменят всех программистов и они будут не нужны. Такую мысль высказывал даже CEO Nvidia - Jensen Huang.

Читать далее

Зачем и где нужен API Gateway

Reading time6 min
Reach and readers10K

Елизавета Акманова, старший аналитик ГК Юзтех, снова на связи. Сегодня у меня в планах обсудить, зачем и где нужны API Gateway. Для этого верхнеуровнево пройдём по архитектуре этого паттерна, рассмотрим решаемые задачи. Ключевой вопрос на сегодня: Когда стоит использовать эту технологию? Это полезный инструмент но, увы, не всегда.

Читать далее

Прокачиваем бюджетный семиструн

Level of difficultyEasy
Reading time7 min
Reach and readers6.1K


Привет, Хабр! Сегодня я продемонстрирую на примере электрогитары Harley-Benton R-457MN, насколько широкую палитру звучаний можно получить, имея в распоряжении всего-навсего два дешёвых китайских хамбакера.

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

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

Туториал по Spring Data Envers для начинающих

Level of difficultyEasy
Reading time9 min
Reach and readers5.3K

Команда Spring АйО перевела статью, которая отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.

Читать далее

Лучший способ создания нескольких окружений для Spring Boot приложения с помощью Docker Compose

Level of difficultyEasy
Reading time10 min
Reach and readers3.4K

В новой статье от команды Amplicode я расскажу, как можно создать несколько Docker Compose файлов для разных нужд. Например, для продакшена и разработки, и при этом не утонуть в копипасте.

Читать далее

1001-ый способ миграции на асинхронный Python

Level of difficultyMedium
Reading time5 min
Reach and readers5.5K

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

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

Читать ещё одну статью про GIL и asyncio

Django приложение в докере. Логирование и мониторинг (тоже в докере)

Level of difficultyEasy
Reading time2 min
Reach and readers1.4K

Обещанная вторая часть. Первая часть здесь.

Основной идеей было настроить все с минимальным количеством ручных действий для работы легирования и мониторинга.

Одно ручное действие все же потребуется — указать хост (или ip), по которому Prometheus будет собирать метрики. В остальном все заработает просто по docker-compose up.

Читать далее

Подготовка Django приложения для локальной разработки и деплоя

Reading time3 min
Reach and readers1.4K

Поговорим про настройку приложения для двух сред «разработки» local и условного прода. Локально приложение будет запускаться с установкой всего необходимого на компьютер, то, что дальше я буду именовать продом будет представлять из себя запуск через docker-compose.

Что это за приложение по сути значения не имеет, из особенностей — там будет celery поверх redis и Postgres, как персистентное хранилище. Код приложения можно посмотреть здесь.

Настроим переменные окружения для двух разных сред и подготовим код под это.

Настроим логирование через Loki и Grafan-у. Настроим мониторинг через Prometheus в ту же Grafan-у.

Поехали

Как паровой человек не пришёл к успеху

Reading time5 min
Reach and readers5.6K
image
Источник

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

Казалось бы — ну, паровая машина. Дальше-то что?

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

Что действительно важно — это двухметровый рост этого парового человека, вес свыше 200 килограммов, имя (его звали Дэниел Ламберт) и очень круто продуманные ноги.

Которые его особо никуда не привели.
Читать дальше →

Information

Rating
5,171-st
Registered
Activity