Могу поделиться с вами большой радостью!) Выпустил первое видео на YouTube. Сделать всё в первый раз - целое приключение, но всё получилось.
Поддержите подпиской.
https://www.youtube.com/watch?v=s9weaYfkkv4
Поддержите подпиской.
https://www.youtube.com/watch?v=s9weaYfkkv4
YouTube
Fullstack разработка - плохая идея
Топ причин не становится фулл стек разработчиком.
Телеграм: t.me/kisel_it
VK: https://vk.com/kisel_it
Instagram: instagram.com/kisel_s
Телеграм: t.me/kisel_it
VK: https://vk.com/kisel_it
Instagram: instagram.com/kisel_s
10🔥11👍4🎉3
Самые "любимые" грабли. Сделал фичу, гоняешь локально - всё супер. Позже приходит тестировщик — “там твоё говно пятисотит, вернул в бэклог”. Ну класс, приехали 🫡
Проблема всегда одна - в БД у разработчиков обычно весьма ограниченное сочетание данных. Часто вообще заводится один объект под конкретную фичу. А на тестовых/продовых стендах ситуация совсем другая, там всякого добра навалом. И каждый раз там находится что-нибудь, до чего бы я даже не догадался Чем меньше знаешь проект - тем чаще попадаешься на такие сюрпризы.
В итоге закрыл для себя эту проблему полным дампом БД с тестового стенда, который содержит все возможные извращения, которые только можно придумать. Ну и соответственно локальная проверка кода стала в разы объективнее.
P.S А как вы решаете эту проблему?
Проблема всегда одна - в БД у разработчиков обычно весьма ограниченное сочетание данных. Часто вообще заводится один объект под конкретную фичу. А на тестовых/продовых стендах ситуация совсем другая, там всякого добра навалом. И каждый раз там находится что-нибудь, до чего бы я даже не догадался Чем меньше знаешь проект - тем чаще попадаешься на такие сюрпризы.
В итоге закрыл для себя эту проблему полным дампом БД с тестового стенда, который содержит все возможные извращения, которые только можно придумать. Ну и соответственно локальная проверка кода стала в разы объективнее.
P.S А как вы решаете эту проблему?
3👍7🔥4
Лучшие модели для кодинга на 23.05.2025 (самый свежий отчёт)😎
Claude 4 Sonnet, Claude 4 Opus и Claude 3.7 Sonnet [Reasonable] делят три первых места.
За ними с небольшим отставанием OpenAI o3, OpenAI o4-mini.
Всё отсортировано по колонке SWE Bench (Data from the SWE Benchmark that evaluates if Lms can resolve GitHub Issues. It measures agentic reasoning). Насколько я понимаю это самый достоверный бенч для кодинга на данный момент.
Claude 4 Sonnet, Claude 4 Opus и Claude 3.7 Sonnet [Reasonable] делят три первых места.
За ними с небольшим отставанием OpenAI o3, OpenAI o4-mini.
Всё отсортировано по колонке SWE Bench (Data from the SWE Benchmark that evaluates if Lms can resolve GitHub Issues. It measures agentic reasoning). Насколько я понимаю это самый достоверный бенч для кодинга на данный момент.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥2
Кто что сейчас читает/планирует начать? 👍
Поделитесь в комменты.
Сам начал недавно Влада Ханонова "Изучаем DDD".
Позади 40% и это интереснее, чем я думал.
Поделитесь в комменты.
Сам начал недавно Влада Ханонова "Изучаем DDD".
Позади 40% и это интереснее, чем я думал.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓2👍1
Как-то раз отправился я разбираться с сертификатами на одном из прод-стендов. А там 9 папок с сертификатами на любой вкус: certs, new_certs, certs_new, possible_new_certs, certs_certs и так далее. Кто-то несколько лет обновлял серты вручную, оставляя старые сертификаты "на всякий случай" 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁14🥴2
Недавно читал статью про оптимизацию PostgreSQL. Там была фраза "Пишите запросы вручную, ORM переоценён". Причём статейка подаётся как от "разработчика к разработчикам", но как такой "совет" может дать человек в здравом уме - не понимаю. Тут мол вам и n+1, и кривые джойны, и магия "под капотом". Ну чтож, разберёмся чуть подробнее.
Проблема с N+1 - явно надуманная и решается на любой ORM без танцев с бубном. Джойнится всё в большинстве случаев самым оптимальным образом. Если вдруг нет - обычно всё решается небольшими изменениями в коде и достаточно предсказуемо. Вот про магию под капотом так вообще хохма. Давайте вспомним зачем нужна ORM? Для работы с данными, как с объектами. Это абстракция над SQL. Чтобы думать про то, что сделать, а не "как". Это буквально придумали для того, чтобы снизить сложность.
В тот момент, когда человек по любому чиху бежит писать запросы на чистом SQL мы буквально гвоздями себя приколачиваем к текущей схеме данных. Редачить даже десяток сырых запросов после каждого изменения схемы - вот это настоящий ад. Даже если всё покрыто тестами (а оно не всегда покрыто). В добавок сырые запросы дико проиграют по читаемости. Попробуй еще сообрази, что там происходит и что мы получим. А что получаем в замен? Возможно ощущение, что "мы молодцы, умеем в sql", ну и собственно всё.
Так что перед тем, как писать сырой SQL нужно явно убедиться, что задача реально недостижима при помощи ORM. Иначе - это неоправданное переусложнение.
Проблема с N+1 - явно надуманная и решается на любой ORM без танцев с бубном. Джойнится всё в большинстве случаев самым оптимальным образом. Если вдруг нет - обычно всё решается небольшими изменениями в коде и достаточно предсказуемо. Вот про магию под капотом так вообще хохма. Давайте вспомним зачем нужна ORM? Для работы с данными, как с объектами. Это абстракция над SQL. Чтобы думать про то, что сделать, а не "как". Это буквально придумали для того, чтобы снизить сложность.
В тот момент, когда человек по любому чиху бежит писать запросы на чистом SQL мы буквально гвоздями себя приколачиваем к текущей схеме данных. Редачить даже десяток сырых запросов после каждого изменения схемы - вот это настоящий ад. Даже если всё покрыто тестами (а оно не всегда покрыто). В добавок сырые запросы дико проиграют по читаемости. Попробуй еще сообрази, что там происходит и что мы получим. А что получаем в замен? Возможно ощущение, что "мы молодцы, умеем в sql", ну и собственно всё.
Так что перед тем, как писать сырой SQL нужно явно убедиться, что задача реально недостижима при помощи ORM. Иначе - это неоправданное переусложнение.
2👍5❤2🔥2
В Python 3.14 появились
Вот небольшой пример того, как литерал t преобразует строку в объект Template, тем самым давая нам доступ к объекту шаблона:
Рендеринг t-строк выглядит страшновато:
В голове ноль идей, где бы я мог это применить. Но и особого вреда они тоже не принесут.
Полный текст PEP 750: https://peps.python.org/pep-0750/
#python #python3_14
t-строки. Да, мало нам было f-строк. Теперь еще и строки-шаблоны. Для того, чтобы понять зачем они вообще появились стоит вспомнить основной недостаток наших любимых f-строк. По сути всё исходит из невозможности перехватить и дополнительно обработать переданное значение. Всё потому что сразу собирается итоговая строка. А вот t-строка возвращает нам сырой шаблон и мы сами решаем, как его рендерить.Вот небольшой пример того, как литерал t преобразует строку в объект Template, тем самым давая нам доступ к объекту шаблона:
from string.templatelib import Template
name = "World"
template = t"Hello {name}"
isinstance(template, Template) # 👉 True
print(template.values) # 👉 ("World",)
Рендеринг t-строк выглядит страшновато:
from string.templatelib import Template, Interpolation
def lower_upper(template: Template) -> str:
"""Render static parts lowercased and interpolations uppercased."""
parts: list[str] = []
for item in template:
if isinstance(item, Interpolation):
parts.append(str(item.value).upper())
else:
parts.append(item.lower())
return "".join(parts)
name = "world"
assert lower_upper(t"HELLO {name}") == "hello WORLD"
В голове ноль идей, где бы я мог это применить. Но и особого вреда они тоже не принесут.
Полный текст PEP 750: https://peps.python.org/pep-0750/
#python #python3_14
8🤔3😁1
Интересное: ChatGPT периодически фантазирует вокруг PEP. Про некоторые PEP'ы он очень уверенно рассказывает полную чушь.
К примеру:
К примеру:
- Что за pep 758? В одном предложении
- PEP 758 вводит системный мониторинг зависимостей Python через pip, позволяя пользователям получать уведомления о уязвимостях и обновлениях через pip audit.
Созвоны, созвоны, созвоны... Увидел тут очередную рекламу "волшебной методики созвонов". Какой то карго-культ, ей богу. Если со всеми созвониться — всё автоматически станет хорошо.
Вот так ходишь с созвона на созвон пол дня. А потом сидишь и понимаешь, что не сказал за всё это время ни слова. Если бы не пришел - ничего бы не изменилось. Потраченного времени жаль.
До сих пор все как-то умалчивают, ночем больше созвонов, тем меньше их кто-то серьезно слушает. Настоящие ценители созваниваться устроились в колл-центр и живут свою лучшую жизнь.
И у этого есть еще один минус - любые созвоны всегда выше самых приоритетных задач. Подключишься ты или нет определяется по свободным слотам в расписании. Я еще ни разу не видел ситуации, когда кто-то сказал "У Васи очень важная задача, давайте не будем его отвлекать, нужно успеть к концу спринта". Так и получается - два часа обсуждали задачу, к которой приступим через пол года. А то, что нужно доделать уже завтра - на паузе. И задача, которую планировали сделать за неделю растянулась на две.
В жизни редко ситуации, где необходимо собраться всей командой/отделом. Есть проблема? Ну, пинганите человека в мессенджере, накиньте задачку, он в порядке приоритета ей займётся. Нужно срочно? А очень? У нас тут весь бэклог в "срочно"😂
Вот так ходишь с созвона на созвон пол дня. А потом сидишь и понимаешь, что не сказал за всё это время ни слова. Если бы не пришел - ничего бы не изменилось. Потраченного времени жаль.
До сих пор все как-то умалчивают, но
И у этого есть еще один минус - любые созвоны всегда выше самых приоритетных задач. Подключишься ты или нет определяется по свободным слотам в расписании. Я еще ни разу не видел ситуации, когда кто-то сказал "У Васи очень важная задача, давайте не будем его отвлекать, нужно успеть к концу спринта". Так и получается - два часа обсуждали задачу, к которой приступим через пол года. А то, что нужно доделать уже завтра - на паузе. И задача, которую планировали сделать за неделю растянулась на две.
В жизни редко ситуации, где необходимо собраться всей командой/отделом. Есть проблема? Ну, пинганите человека в мессенджере, накиньте задачку, он в порядке приоритета ей займётся. Нужно срочно? А очень? У нас тут весь бэклог в "срочно"
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6💯2👻1
Еще кое что про Python 3.14. В нём же появился PEP 758. Теперь можно перечислять группу эксепшнов без скобок. Проще показать:
Раньше только так:
Теперь можно и так:
Полный текст PEP 758: https://peps.python.org/pep-0758/
#python #python3_14
Раньше только так:
try:
...
except (ExceptionA, ExceptionB, ExceptionC):
...
Теперь можно и так:
try:
...
except ExceptionA, ExceptionB, ExceptionC:
...
Полный текст PEP 758: https://peps.python.org/pep-0758/
#python #python3_14
❤4
Очень интересная статья от Сэма Альтмана про "Мягкую сингулярность". Советую почитать, она не очень длинная.
https://blog.samaltman.com/the-gentle-singularity
Могу выделить:
- Будущее намного ближе, чем кажется. То, что казалось безумием и удивляло нас 5 лет назад - уже обыденная реальность.
- AI уже ускорил большинство научных исследований во много раз. Больше научных достижений = лучше AI = ещё больше научных достижений.
- Каждый шаг в сфере AI будет экспоненциально ускорять общую скорость прогресса.
В целом вся статья о том, что мы уже вошли в сингулярность и кто его знает, что там дальше будет🤨 Но надеемся, что будет лучше... Правда?
https://blog.samaltman.com/the-gentle-singularity
Могу выделить:
- Будущее намного ближе, чем кажется. То, что казалось безумием и удивляло нас 5 лет назад - уже обыденная реальность.
- AI уже ускорил большинство научных исследований во много раз. Больше научных достижений = лучше AI = ещё больше научных достижений.
- Каждый шаг в сфере AI будет экспоненциально ускорять общую скорость прогресса.
В целом вся статья о том, что мы уже вошли в сингулярность и кто его знает, что там дальше будет
Please open Telegram to view this post
VIEW IN TELEGRAM
Sam Altman
The Gentle Singularity
We are past the event horizon; the takeoff has started. Humanity is close to building digital superintelligence, and at least so far it’s much less weird than it seems like it should be. Robots...
1👍4🔥2
А вы знали, что в Python есть группы исключений и возможность зайти в каждый except блок, а не только в первый?
Я об этом узнал совсем недавно. И до сих пор не видел, чтобы кто то такую конструкцию использовал.
Представьте, каких ужасов можно наворотить с неограниченной вложенностью групп исключений. Но если использовать правильно - то весьма наглядно и удобно.
#python #python3_11
Я об этом узнал совсем недавно. И до сих пор не видел, чтобы кто то такую конструкцию использовал.
try:
raise ExceptionGroup("eg",
[ValueError(1), TypeError(2), OSError(3), OSError(4)])
except* TypeError as e:
print(f'caught {type(e)} with nested {e.exceptions}')
except* OSError as e:
print(f'caught {type(e)} with nested {e.exceptions}')
# caught <class 'ExceptionGroup'> with nested (TypeError(2),)
# caught <class 'ExceptionGroup'> with nested (OSError(3), OSError(4))
# + Exception Group Traceback (most recent call last):
# | File "<stdin>", line 2, in <module>
# | ExceptionGroup: eg
# +-+---------------- 1 ----------------
# | ValueError: 1
# +------------------------------------
Представьте, каких ужасов можно наворотить с неограниченной вложенностью групп исключений. Но если использовать правильно - то весьма наглядно и удобно.
#python #python3_11
1🔥4😱4🤔2
Последнее время прям дико прут настоящие бумажные книги. Это я старею? Или это у всех так?
Всегда устраивали электронные. Дешево, сердито, практично. Но бумажные... Это что то другое. Сейчас пока была хорошая погода брал с собой книжку про DDD в парк рядом с домом. Приземляешься на лавочку, солнце греет, ну вообще песня.
На фото так сказать "чтение на лето" из трех книг. DDD, кабанчик и (внезапно) постгрес. Но что-то мне подсказывает, что за лето я не успею...
DDD вот почти победил, надеюсь на выходных получится дочитать и потом поделиться с вами самым интересным 👍
P.S Делитесь, что читаете? 👇
Всегда устраивали электронные. Дешево, сердито, практично. Но бумажные... Это что то другое. Сейчас пока была хорошая погода брал с собой книжку про DDD в парк рядом с домом. Приземляешься на лавочку, солнце греет, ну вообще песня.
На фото так сказать "чтение на лето" из трех книг. DDD, кабанчик и (внезапно) постгрес. Но что-то мне подсказывает, что за лето я не успею...
DDD вот почти победил, надеюсь на выходных получится дочитать и потом поделиться с вами самым интересным 👍
P.S Делитесь, что читаете? 👇
3👍4❤3✍3
Наконец то встретил достойное определение для флоу, где всё построено вокруг Excel. Поприветствуем Excel-driven development 😂
Это кстати не шутка. До сих пор можно встретить:
- Макеты в Excel (где то плачет Figma)
- База данных в Excel (ну а чего, колонки есть, ячейки тоже...)
Для такого решения явно нужна по настоящему сильная аура. Мне бы духа не хватило даже озвучить такое предложение.
А сколько существует ужасов, о которых я просто еще не слышал)
Это кстати не шутка. До сих пор можно встретить:
- Макеты в Excel (где то плачет Figma)
- База данных в Excel (ну а чего, колонки есть, ячейки тоже...)
Для такого решения явно нужна по настоящему сильная аура. Мне бы духа не хватило даже озвучить такое предложение.
А сколько существует ужасов, о которых я просто еще не слышал)
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁8
Иногда кажется, что винда не так уж плоха. Все что нужно есть, работает из коробки. Одно удовольствие!
Обычно после такой мысли на меня падает задачка связанная... ну конечно же с виндой. И каждый раз прохожу это в адских муках. Все ломается, ничего не работает. В winapi вообще черт ногу сломит. Иногда даже документация написана настолько загадочно, что понятнее не становится...
В общем берегите себя, пишите под linux🤬
Обычно после такой мысли на меня падает задачка связанная... ну конечно же с виндой. И каждый раз прохожу это в адских муках. Все ломается, ничего не работает. В winapi вообще черт ногу сломит. Иногда даже документация написана настолько загадочно, что понятнее не становится...
В общем берегите себя, пишите под linux
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6💯4👍3😢2
OpenAI судя по всему не поспевает за конкурентами. Даже начали пытаться удержать пользователей на подписке скидкой.
По ощущениям даже самая сильная модель o4 сильно глупее той же Gemini по многим вопросам.
Сам вот сегодня переехал на Grok 4, скоро станет понятно что за зверь и правда ли он так хорош.
По ощущениям даже самая сильная модель o4 сильно глупее той же Gemini по многим вопросам.
Сам вот сегодня переехал на Grok 4, скоро станет понятно что за зверь и правда ли он так хорош.
2👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁6