Девман для питонистов
532 subscribers
168 photos
3 videos
235 links
Веб-разработка на Python. Канал от практиков.

Сайт школы Девман: https://dvmn.org/
Контакт для связи: @yulya_devman
Download Telegram
Получили интересный вопрос по ИИ от Ольги. Давайте вместе разбираться!

Какие навыки нужны разработчику, чтобы не тормозить при внедрении ИИ в разработку


Сразу оговоримся — речь не про обучение нейросети на своем сервере, а использование универсальной LLM модели вроде DeepSeek или ChatGPT.

Часть 1. Писать промпты?

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

✍️ Не пишите инструкцию

Надо излагать ценность и проблемы, мешающие ее получить, а не писать ИИ инструкцию что делать. Это базовый прием, повышающий качество работы.

Пример

❌Плохо:
Напиши скрипт, который конвертирует svg картинку в png.


✅Хорошо:
Напиши скрипт, который поможем мне встроить иллюстрации в статью. У меня есть объемные svg файлы. Нужны png. Какие вопросы хочешь обсудить? 


✍️ Не пытайтесь решить сложную задачу в один промпт

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

✍️ Следите за контекстом, избегайте автоматической саммаризации

При заполнении контекста включается саммаризация — данные обобщаются и схлопывается, часто «выплескивая младенца из корыта». Именно в этот момент ИИ начинает чудить. Поможет сохранение промежуточных результатов, чтобы при достижения критического значения просто начать новую сессию. А важное от неважного отделите вы.

Управление контекстом — это ключевой вид активности. Разработчик перестаёт тратить время на написание кода (этим занимается нейросеть), но сосредотачивается на управлении контекстом: накопление, актуализация, регламенты, инструменты навигации. Без этого далеко не уплыть.

📌Да, есть приёмы, которые делают промпты эффективнее, а работу ИИ стабильнее. Приведем пару лайфхаков:

✅ Мотивация ИИ "спереди"

ИИ не читает красивые документы по проекту, которые вы для него заготовили? Что ж, добавьте желтушные заголовки:

Пример
Прочитай файл RULES.md, чтобы узнать о правилах и не переделывать работу.


ИИ не человек, но его отличная имитация. Так что представьте, что работаете со стажёром, который не ест, не спит и офигенно быстро соображает. Но только в рамках сессии😄 Замотивируйте его прочитать все ваши инструкции!

✅ Мотивация ИИ "сзади"

Кто самые четкие сотрудники? Правильно, тревожные перфекционисты с синдромом отличника. Наделите нейросеть неврозом и она будет внимательнее:

Пример
Веди себя как перфекционист, который боится облажаться.


❓А у вас какие любимые приёмы для промптов?

А с нас ещё про ИИ агентов, вайб-кодинг и какие ошибки совершают разработчики при внедрении ИИ. В один пост не уложились🤷‍♀️

👇 Ставьте огоньки и ждите продолжение!

Мы в Макс
🔥5❤1
Продолжаем отвечать на вопрос «Какие навыки нужны разработчику, чтобы писать код нейросетями?»

❓Часть 2. Надо ли создавать ИИ агентов?
Обязательно. Просить ИИ написать код просто в режиме чата неэффективно совсем.

Что такое ИИ агент

Агент = обычный ИИ + инструменты. Инструменты позволяют работать с файловой системой, git, открывать сайты, лазить в БД и т.д. Часть инструментов можно найти готовыми, а часть — придется написать самим.

Старожилы нашего канала точно смогут написать недостающие скрипты на Python для агента! Вообще и нейросеть сама может написать разово, а потом пользоваться скриптом на постоянке. Отревьюить не забудьте😁

Ничего страшного в «создании агентов» нет — сейчас множество платформ создаст их за вас, вы и не заметите. Мы работаем с OpenCode. Можно вести разработку с помощью агентов в VSCode. Вариантов все больше, холиварить не будем — на вкус и цвет все фломастеры разные. В итоге платформа предложит вам готовые скиллы, MCP сервера и много всяких плюшек для работы с агентами.

❌ Не плодите субагентов

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

Использование субагентов радикально снижает качество работы нейросети. Использование субагентов требует очень зрелой продвинутой инфраструктуры. Управление контекстом субагента — задача со звездочкой. А ИИ без корректного контекста — это обезьяна с гранатой. Для новичков это точно антипаттерн.

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

👇 Ставьте огоньки и ждите продолжение! Расскажите в комментариях о своем опыте работы с ИИ-агентами!

Мы в Макс
🔥5
Продолжаем отвечать на вопрос «Какие навыки нужны разработчику, чтобы писать код нейросетями?»

Мы уже рассказали про:
— Нужно ли писать промпты
— Нужно ли создавать ИИ-агентов

Сегодня поговорим про вайбкодинг!

❓Часть 3. Про вайбкодинг и «что-то еще»

Надо ли уметь вайбкодить?

Если речь про «иди, сделай за меня» в один промпт (даже со скиллами и MCP-серверами) — это плохой вариант. В 9/10 случаях руками быстрее. Даже если на старте будет что-то путное, доработать продукт, не сломав еще что-то нейросеть не сможет.

✔️ Подойдет для прототипов. Например, как в уроке по FastAPI с генерацией фронта сайта.
✔️ С натяжкой работает для автотестов.
✔️ Ограниченно работает для обновления версий библиотек.

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

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

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

Человек все еще нужен, но как архитектор и «руководитель». Не надо отдавать ИИ все задачи целиком. Самые сложные решения и задачи остаются под ответственность архитектора, а ИИ выступает как ассистент.

👉 Знаете как проверить качество результата — можно делегировать ИИ

👉 Объясните ИИ в чем ценности результата для пользователя

Нужно ли уметь «что-то еще»?

Да, крайне полезны навыки менеджмента и преподавания.

✏️Пример из обучения. Ученик не может выполнить задачу или выполняет плохо. Нужен дебаг. А теперь ученика заменяем на ИИ — ситуация очень похожая и методы отладки похожие, часто через диалог с агентом. А вот от дебага программного кода отличается значительно и общим подходом, и инструментами.

✏️Пример из управления. Недоверие к результатам нейросети — важная и частая проблема. Именно недоверие заставляет все перепроверять, а проверка съедает все сэкономленное время. Хороший управленец знает куда смотреть, чтобы быстро проверить качество результата задачи, отданной сотруднику. А отличный управленец еще при постановке задаче научит сотрудника, куда смотреть и как самостоятельно проверить результат перед сдачей.

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

Предел сложности

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

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

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

Усиление слабых сторон: Если исходная база знаний или навыков слабая, ИИ не компенсирует её, а начинает выдавать «галлюцинации» и логические ошибки. Пользователь без опыта теряет способность перепроверять информацию, что приводит к ухудшению итогового результата.

👇 Ставьте огоньки и ждите продолжение! Расскажите в комментариях о своем опыте вайбкодинга!

Мы в Макс
🔥9
Продолжаем отвечать на вопрос «Какие навыки нужны разработчику, чтобы писать код нейросетями?»

Мы уже рассказали про:
— Нужно ли писать промпты
— Нужно ли создавать ИИ-агентов
— Про вайбкодинг

❓Часть 4. Мышление

Классический подход к разработке кода — продумать все корнер-кейсы, разработать алгоритм, проанализировать входные и выходные параметры. Интерпретатору Python не надо сообщать что и зачем вы делаете — просто пишите команды, которые надо исполнить. Достигнет ли ваше ПО результата зависит от того, как правильно разработали и реализовали алгоритм.

🌟Но ИИ может круче, если описать что нужно получить и зачем. Нейросеть спросит обо всех важных моментах и предложит решения. При наличии инструментов для тестирования и проверки, ИИ сможет самостоятельно проверить результат. Критерии качества кода должны включать как функциональные требования, так и общие требования к чистоте кода и архитектуре (да-да, то самое ревью Девмана).

👉 Укажите какую задачу нужно решить и зачем, а не давайте простые команды.

Процессы с ИИ сложно тестировать и отлаживать. Причем как элемент в составе ПО, так и как инструмент для написания кода. Отладка принтами уже не поможет, к сожалению😢

👉 Заранее продумайте как вы будете дебажить работу ИИ

С ног на голову меняется процесс разработки — старые подходы начинают рушиться. Скорость написания кода возрастает настолько, что если не подготовиться, то тимлид погибнет в код-ревью. Ну или ваша собственная работа превратиться в постоянное ревью и уточнение задачи. От написания кода избавит, но вряд ли даст ускорение больше, чем на 10-30% (если повезет).

👉 Перестраивайте процессы, внедряйте новые инструменты

❓Наверно, сразу ответим еще на такой вопрос — а когда Devman будет учить кодить с помощью ИИ?

— Уже есть курс для тимлидов, сеньоров и архитекторов, кто готов выстраивать у себя в отделе/компании AI-first процессы разработки и инфраструктуру под них

— А вот как учить начинающих разработчиков и с нуля мы пока не придумали.

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

Причем каждый проект требует донастройки. Как все это впихнуть в курс не на 10 лет для новичков — пока не придумали, но стараемся!

➡️Расскажите в комментариях, каких знаний и навыков работы с ИИ вам не хватает? Какую помощь хотели бы получить?

Мы в Макс
🔥2
🤔 Давайте вместе разберемся, что не так с этим кодом?
constant_number = 15

class some_class():
...

def DO_FUNCTION():
...

Some_VARIABLE = 'value'

👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.

➡️Пишите в комментариях, что можно исправить!

Мы в Макс
Используйте в названиях правильный регистр букв.

UPPER_CASE — для глобальных констант
CamelCase — для названий классов
snake_case — для всех переменных, функций, методов, аргументов, полей

Код из нашего примера может выглядеть так:

CONSTANT_NUMBER = 15

_some_variable = 'value'

class SomeClass():
...


def do_function():
...


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

Если модуль предназначен для импорта с помощью from M import *, PEP 8 советует явно указать, какие глобальные переменные модуль экспортирует. Для этого добавляют префикс из одного подчёркивания (_internal_var) к именам «внутренних» глобальных переменных. Так вы контролируете, что именно будет доступно при импорте.

И спасибо всем за активность в комментариях - вы нашли больше, чем было запланировано!😁

Мы в Макс
🤔 Давайте вместе разберемся, что не так с этим кодом?
from environs import Env

def main():
env = Env()
env.read_env()
token = env.str('TOKEN')

👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.

➡️Пишите в комментариях, что можно исправить!

Мы в Макс
Девман для питонистов
🤔 Давайте вместе разберемся, что не так с этим кодом? from environs import Env def main(): env = Env() env.read_env() token = env.str('TOKEN') 👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана. ➡️Пишите в комментариях…
Без точного названия сложно понять для чего нужен токен. Речь идёт одновременно и про переменные в коде, и про переменные окружения.

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

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

Код из нашего примера может выглядеть так:

from environs import Env

def main():
env = Env()
env.read_env()
geocoder_token = env.str('YANDEX_GEOCODER_TOKEN')


Также хотели бы ответить на комментарии к посту:

1️⃣ Нужно ли задавать значение по умолчанию?
Если такое значение существует или является необязательным, то да, нужно задать. В других случаях, как правильно отметили в комментариях, должно быть исключение, говорящее о невозможности работы программного обеспечения. Лучше узнать об ошибке при деплое, чем через неделю удивиться, что пользователи не могут пользоваться сервисом и уже ушли к конкуренту!

2️⃣ Нужно ли вынести чтение переменных окружения из `main`?
Если речь про вынос из main без обертки, то однозначно нет. Т.к. чтение переменных окружения будет запускаться при импорте модуля. Чтение настроек приведет к ошибки на этапе инициализации модуля. Такие исключения тяжело перехватывать и обрабатывать, поэтому так делать не рекомендуется. Сначала инициализация: какие функции объявлены, какие модули импортированы, потом исполнение, включая чтение переменных окружения и непосредственный вызов функций.

3️⃣ Нужно ли убрать строку `env = Env()`?
По официальной документации, текущий двустрочный вариант рекомендуется для Django. Способ чтения зависит от того, с каким фреймворком используете библиотеку environs.

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

Мы в Макс
👍3
Нужно ли учиться код-ревью❓

Сначала разберёмся, что такое хорошее код-ревью. Это не попытка «кодить руками» разработчика — «замени на», «добавь синглтон», «перемести код в эту функцию». Хороший ревьюер формулирует проблему, которая мешает код читать или пользоваться. Он задаёт наводящие вопросы: «Функция так названа, а по коду делает другое — это так?». Автор сам должен понять замечание, провалидировать его и применить. Критерий качества один: ты не диктуешь решение, а показываешь проблему.

✅Кому и когда это реально нужно:
— Тимлиду, который даёт обратную связь авторам кода;
— Программисту в команде с перекрёстным ревью;
— Каждому, кто работает с нейросетями и по сути становится их тимлидом.

❓Как этому научиться? 
1️⃣ Делать ревью. Чем чаще, тем лучше. Ревьюить код нейросети – отличный вариант для начала. 

2️⃣ Делать ревью — необходимо, но недостаточно. Чтобы замечать больше проблем, нужно качать насмотренность. Нужен либо огромный собственный опыт, либо чужой. 

Где набраться чужого опыта:
— Книги про чистый код, паттерны проектирования и около того. Обращать внимание на кейсы: что доставило проблемы, как исправили;
— каталог улучшений Devman;
— код-ревью, полученные от старших товарищей – свои и чужие, если есть возможность посмотреть.

🎯 Главная трудность — не формулировки, а умение проблему увидеть и осознать. Начинающие обычно говорят: «Я так не делаю, я делаю по-другому», но не понимают, что будет плохого, если оставить текущую реализацию. А это и есть суть ревью.

👉 Статья «Грейд разработчика приходит с годами, но иногда годы приходят одни: зачем вам код-ревью»
👉 Пост «Секретный ингредиент уроков Девман –  код-ревью»

✅Итого: навык сам не появится, если его не качать. Нужна практика + насмотренность. Ну а все курсы Devman заканчиваются код-ревью действующего разработчика — так накопленный опыт команды достаётся вам. Сдавайте уроки — мы уже заждались!

Мы в Макс
👍2🔥2❤1
Может ли нейросеть делать код-ревью❓

Короткий ответ: может. Но из коробки — вряд ли вам понравится качество и ревью вряд ли будет полезно проекту. 

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

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

⚠️ И вот важный нюанс. Как бывает: код написал, отладил, а потом проходишь тернии, угадывая пожелания ревьюера и внося бесконечные правки. Нейросеть этот вред воспроизводит быстрее и в масштабе x 100. Больше добавленных проблем, которых не было, больше времени на их «исправление». Вот уж точно хуже, чем без ревью.

✅ Как сделать, чтобы нейросеть реально помогала? Поднять её скилл. Это делается через регламентацию:
— Пошаговая процедура: шаг 1 — проверили то-то, шаг 2 — то-то;
— Результат упаковывается в шаблон, который не даёт ИИ писать объемную ерунду;
— Провалидированные каталоги типичных проблем с симптомами и сценариями;
— Жёсткие правила под конкретный проект. Например, все входные и выходные данные должны быть зафиксированы в схемах данных;
— Фильтр ложных срабатываний: симптом есть, а проблемы нет.

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

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

🎯 Важно — замечания ситуативные и контекстозависимые. Взять DRY: «не дублируй» — это лишь эвристика. Иногда погоня за DRY делает код невыносимым, и его приходится переписывать. Хорошее ревью — это куча приёмов + понимание, когда приём уместен, а когда нет. Какую конкретно проблему создает код и нужно ли ее решать.

🔧 Какая модель? DeepSeek, GPT — разницы почти нет, подход один, и качество самого ревью ± одинаковое. Разница лишь в качестве сгенерированного кода и объеме кода, который можно закинуть в контекст.

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

Нейросеть не «художник, я так вижу» — она следует процедуре. Дайте ей корректные кейсы и правила – и результат вас приятно удивит!

➡️А вы пробовали делать ревью с помощью нейросети? Делитесь опытом и лайфхаками в комментариях!

Мы в Макс
🔥5
⚡️Изменения в программе обучения «От джуна»

С сентября уроки по Kubernetes перестанут быть обязательными в программе курса. Первый урок станет опциональным. Второй будет закрыт в связи с перестройкой ИТ-инфраструктуры в Яндекс.Облако. Зато теперь у вас будет возможность познакомиться с FastAPI и добавить в портфолио проект с подключением ИИ для генерации сайтов!

✅Для постановки в очередь на стажировку с 1 сентября обязательны:
— Docker, 2 урока
— Django, 3 урока
— FastAPI Начало + FastAPI: Создаем AI генератор сайтов с нуля

Первый урок по Kubernetes можно будет делать после основных уроков, пока ждете начало стажировки.

👉Если у вас возникнут вопросы или сложности при переходе со старой версии программы на новую, напишите нам в Телеграм! Всё решим.

Мы в Макс
👍1
🚀Тренды Kubernetes

📎Kubernetes — один из самых популярных инструментов для оркестрации контейнеров. Еще пять лет назад он считался сложной технологией для бигтехов и гиков, но сегодня является фундаментом для построения инфраструктуры в крупном и среднем бизнесе. Исследование TAdviser показало, что Kubernetes используют более 60% российских компаний с выручкой от 10 млрд рублей и доля только растет. А вот небольшие компании наоборот от технологии отказываются. Прежде всего потому, что поддержка облачной инфраструктуры значительно увеличивает расходы и на сервера, и на высококвалифицированных DevOps инженеров.

📎В основе Kubernetes лежит работа с контейнерами — изолированными средами, в которых запускается приложение со всеми его зависимостями. А главное — технология навязывает язык для эффективного взаимодействия разработчиков и DevOps-инженеров, что снижает риски при релизах веб-приложений и их масштабировании.

🚀Основные тренды на сегодняшний день:

1️⃣ Kubernetes для ИИ и машинного обучения
Обучение и запуск нейросетей требуют мощных вычислительных ресурсов, особенно GPU. Kubernetes позволяет эффективно управлять этими ресурсами: распределять GPU-серверы между задачами, масштабировать инфраструктуру под обучение моделей, автоматически развертывать обученные модели в продакшен.

Растет популярность GPUaaS (GPU as a Service) — сервисов, предоставляющих доступ к профессиональным ускорителям через облако на базе K8s. Это особенно актуально для компаний, которым нужны мощности для обучения моделей эпизодически, без покупки дорогого оборудования.

2️⃣ ИИ-агенты для управления кластерами
Идет активная разработка ИИ-агентов, которые помогают администраторам Kubernetes: анализируют логи, предсказывают проблемы до их возникновения, предлагают оптимизацию конфигураций. Например, агент может заметить, что один из сервисов систематически потребляет больше памяти, и предложит увеличить лимиты или найти утечку памяти.

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

3️⃣ Фокус на безопасность
Растет запрос на повышение безопасности. Модель «нулевого доверия» Zero Trust означает, что система не доверяет никому по умолчанию, даже внутренним сервисам. Каждый запрос проверяется и логируется. В Kubernetes модель реализуется через строгую изоляцию контейнеров, шифрование трафика между сервисами и постоянный мониторинг аномального поведения. Такой подход требует дополнительных ресурсов, но критически важен для финтеха, госсектора и обработки персональных данных.

В 2026 году ожидается появление новых утилит для низкоуровневой работы с Kubernetes, в т.ч на базе новой технологии Linux-ядра eBPF.

➡️А вы уже разобрались как работает Kubernetes? Пишите, если сталкивались с вопросами по технологии на собесах!

Мы в Макс
❤1
🤔 Давайте вместе разберемся, что не так с этим кодом?

class Postcard(BaseModel):
holidayId: str
name_ru: str
body: Union[str, List[str]]



👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.

➡️Пишите в комментариях, что можно исправить!

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

Код из нашего примера может выглядеть так:

class Postcard(BaseModel):
holiday_id: str = Field(alias='holidayId')
name_ru: str
body: Union[str, List[str]]


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

Мы в Макс
👍1
📌Война сертификатов

Многие наверняка заметили, что в последнее время с сертификатами российских сайтов что-то происходит неладное. А в шапке часто маячат напоминалки, что нужно что-то установить в браузер. Платежные формы не грузятся. А вот в Яндекс Браузере почему-то всё работает. Давайте разберемся что произошло.

✍️HTTPS (от англ. HyperText Transfer Protocol Secure) – это безопасный протокол передачи данных, который поддерживает шифрование посредством криптографических протоколов SSL и TLS, и является расширенной версией протокола HTTP. 

Еще десять лет назад никого было не удивить сайтом без шифрования. Сейчас же во все современные браузеры встроена обязательная проверка TLS/SSL сертификата сайта. Так что если вход на сайт через HTTP без сертификата, то пользователь увидит кучу предупреждений о небезопасности сайта, прежде чем на него все-таки попадет.

✍️SSL/TLS-сертификат ― это цифровая подпись сайта. С её помощью подтверждается его подлинность. Перед тем как установить защищённое соединение, браузер проверяет ключи, полученные от центра сертификации, чтобы подтвердить легальность документа. Если он действителен, то браузер считает этот сайт безопасным и начинает обмен данными.

✍️И вот тут корень проблемы. SSL/TLS сертификаты выдают специальные международные и национальные организации — удостоверяющие центры (УЦ), чьи корневые сертификаты изначально встроены в операционные системы и браузеры. 

✍️Международные центры — глобальные компании, например, GlobalSign, Let’s Encrypt, DigiCert, Sectigo, которые подчиняются правилам международного консорциума CA/Browser Forum. О них знают все браузеры и их сертификатами годами пользовались сайты по всему миру, включая российские. 

❗️По новым правилам CA/Browser Forum международные удостоверяющие центры обязаны проверять владельцев сайтов на соответствие санкционным спискам США и ЕС. Подсанкционные российские компании и госструктуры начали массово сталкиваться с принудительным отзывом и отказом в продлении зарубежных SSL-сертификатов.

Чтобы оставаться в безопасности, российские организации, особенно банки, переходят на отечественные сертификаты от НУЦ Минцифры. Российский УЦ запустили еще в 2022 году экстренно из-за первых массовых отзывов сертификатов у банков. 

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

✍️Ресурсы корректно открываются в отечественном Яндекс Браузере, в который российский корневой сертификат встроен по умолчанию. В зарубежных браузерах Chrome, FireFox, Safari и т.д. такой сайт заработает только после после ручной установки сертификатов Минцифры на устройство. 

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

❗️Сайт школы пока работает с международным сертификатом и доступен для всех браузеров. Неделю назад были временные проблемы с платежными шлюзами. Для приема платежей в Точка Банк пришлось доустанавливать сертификаты Минцифры, чтобы взаимодействовать с ним по API. 

А вот платежная форма Т-Банка без донастройки до сих пор работает только в Яндекс.Браузере, т.к. JS скрипт выполняется на стороне клиента и там происходит проверка сертификата. 

Геополитика продолжает менять веб и opensource, ну а нам с вами остается подстраиваться под новые реалии.

Мы в Макс
👍3🔥1
❓Где искать работу сегодня

Еще год назад HH был основной площадкой для ИТ-специалистов. Сегодня там … ничего. Отклики силами ИИ-агентов пачками отправляются в отказ, фиктивные вакансии без ответа, отказы на собесах без указания причины.

🤔Уровень безработицы официально составил 2,2% за 2 квартал 2026 года — это острый дефицит кадров. Но одновременно в последнем обзоре HH портала за август число вакансий снизилось на 13% в годовом сопоставлении, а число активных резюме, напротив, выросло — аж на 25%. Так что на самом деле ИТ-специалистам приходится трудно как никогда. Но это не повод опускать руки!

✍️Ваше оружие, помимо навыка и опыта — реферальные программы и выход на HR. Толковые разработчики все еще нужны.

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

Не стесняйтесь подергать знакомых — во всех крупных компаниях такие программы есть: Авито, 2ГИС, Т-Банк, Сбер и т.д. Если подходящих знакомых не нашлось – посетите митапы для разработчиков и знакомьтесь с участниками, узнавайте полезные контакты. Конференции тоже подойдут, но там сложнее установить контакт, т.к. собирается толпа и знакомств порой слишком много, чтобы кого-то запомнить. Тематические сообщества и каналы тоже в помощь.

✍️Другой вариант – выходить напрямую на HR. На HH контакт обычно не указан, но его не так уж и сложно добыть на самом деле. 

✅Что можно предпринять:

— Для понравившейся вакансии поищите контакты на официальном сайте работодателя (на hh указан): там почта для связи и иногда контакт hr или его почта; 
— Напишите компании в мессенджеры, спросите актуальна ли вакансия и отправить резюме;
— Если есть форма подачи заявки на вакансию на сайте компании, отправьте через нее резюме;
— Если пришел ответ, иногда там есть имя и фамилия HR специалиста, можно найти прямой контакт через ТГ или через Сетку;
— Через Сетку можно искать по названию компании сотрудников;
— Забить вакансию в поиск: вакансия может быть размещена на других площадках с указанием прямых контактов;
— В мессенджерах тоже иногда дублируют вакансии и там есть уже прямой контакт.

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

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

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

Всем удачных собесов!

P.S. Если вы не на Профессии, но хотите пройти мок-интервью или получить консультацию HR по резюме, напишите нам.
🔥4😢4
🤔 Давайте вместе разберемся, что не так с этим кодом?

class Service:
def __init__(self, payment_payload):
self.payment_payload = payment_payload

def process_payment(self):
...


👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.

➡️Пишите в комментариях, что можно исправить!

Мы в Макс