да если делать вызов системных утилит - какой смысл использовать что-то другое) как я уже писал в другом комментарии выше - все можно сделать как угодно, все это будет компромисс, как хочется так и делай
можно придумать такие кейсы. Например: считать информацию о загрузке процессора (CPU load) для каждого пользователя из /proc/loadavg и отсортировать их по убыванию средней нагрузки за последние 15 минут.
для меня в python видится использование библиотеки psutil (не входит в стандартную бибиотеку), а в bash это `awk '{for(i=1;i<=NF-2;i++) print $i}' /proc/loadavg | sort -nr`
ну тут go больше python уже подойдет, чтобы меньше телодвижений было. Дело, конечно, каждого, как извращаться. Как говорится "можно и зайца научить курить, но нафига?". Так и тут: bash - понятный POSIX инструмент, здесть P (Portable) является ключевым. Для каждой задачи должен подходить свой инструмент. Если задача требует программирования, то надо смотреть на накладные расходы. Никогда нет супер правильного решения - есть только компромиссы, с которыми мы готовы мириться
Не зря это считается бэд практис. Самый простейший пример: нужен какой-то пакет не ниже какой-то версии, а этот пакет уже установлен для системных нужд, а ты взял и обновил этот пакет и все, в системе что-то сломал
нет, дорогой друг, ставить какой-то пакет питона в "стандартное" окружение ОС - это путь в никуда, если вы собираетесь прожить с этой системой хоть пару лет (со всеми обновлениями безопасности и т.д,) Никогда! Повторю, НИКОГДА, не нужно ставить какие-то пакеты в окружение python вашего дистрибутива. Нет, я не выпендриваюсь, честно, просто это - опыт. P.S. python - мой рабочий инструмент более 10 лет, я его искренне люблю и лелею, но нет - для задач переносимой автоматизации он подходит едва ли...
У Python есть один явный минус в сравнении с bash - это виртуальное окружение. Далеко не все скрипты можно "вот так взять и просто написать" без использования сторонних библиотек, а для этого нужно создавать виртуальное окружение, прописывать полный путь к интерпретатору в этом окружении... То есть речи о переносимости "из коробки" тут быть не может.
docker-compose.yml с описанным самими сервисом и нужными ему службами по дефолту находится в репозитории с сервисом для быстрого "поднятия" его (сервиса) локально, все тесты гоняются в контенере. Откуда он взялся я писал в разделе "мы имеем"
я не знаю, какие кейсы у вас были в работе с сообщениями к коммитам, но я часто собирал релизы, и мне было очень полезно видеть не только ссылку на задачу ("зачем это изменение"), но и фактически короткое описание того, что изменилось для общего понимания картины
Как по мне, проблема круговых импортов - это проблема выделения ответственности частям кода. А это уже проблема проектирования. Конечно, можно "вылечить" костыляими наподобие локального импорта, но в долгосрочной перспективе это будет только вредить проекту, по моему опыту. Лучше на бумажке нарисовать граф зависимостей и вынести общие зависимости. Понятное дело, что не так мног опроектов, придерживающихся принципов чистой архитектуры, но все же можно что-то придумать. Лучше помучиться "на берегу", чем потом "спасать утопающих" :)
Позволю себе немного критики: на мой взгляд, в этом коде много "ошибок начинающих" от повсеместного использования глобальных переменных, обработки всех подряд исключений (except без указания конкретного) до стилистических (одновременное использование "наравне" одинарных и двойных кавычек), банально pep8 тут не соблюдено... Также совершенно непонятно, почему в примерах есть закоментированный код: если он был нужен при отладке, в результирующем примере его следовало бы убрать.
Это вы про что: если про Линукс - я в статье писал, что был приятно удивлен, как он поменялся для десктопа, если про виндоуз - я его не использую не по причине отсутствия драйверов
кажется, вы не понимаете термин "прокрастинация"... скорее, мое увлечение инструментами и их настройкой - хобби, так как в конечном итоге мне это приносит удовлетворение и занимаюсь я этим в нерабочее время :)
Этот материал больше для поста, а не для статьи, как по мне. Думал под катом будет какая-то невероятная или, по крайней мере, поучительная история
да если делать вызов системных утилит - какой смысл использовать что-то другое) как я уже писал в другом комментарии выше - все можно сделать как угодно, все это будет компромисс, как хочется так и делай
можно придумать такие кейсы. Например: считать информацию о загрузке процессора (CPU load) для каждого пользователя из
/proc/loadavg
и отсортировать их по убыванию средней нагрузки за последние 15 минут.для меня в python видится использование библиотеки
psutil
(не входит в стандартную бибиотеку), а в bash это `awk '{for(i=1;i<=NF-2;i++) print $i}' /proc/loadavg | sort -nr`А тут подробности нужны, я, как искренний любитель Ansible, не сталкивался с какими-то трудностями
ну тут go больше python уже подойдет, чтобы меньше телодвижений было. Дело, конечно, каждого, как извращаться. Как говорится "можно и зайца научить курить, но нафига?". Так и тут: bash - понятный POSIX инструмент, здесть P (Portable) является ключевым. Для каждой задачи должен подходить свой инструмент. Если задача требует программирования, то надо смотреть на накладные расходы. Никогда нет супер правильного решения - есть только компромиссы, с которыми мы готовы мириться
Не зря это считается бэд практис. Самый простейший пример: нужен какой-то пакет не ниже какой-то версии, а этот пакет уже установлен для системных нужд, а ты взял и обновил этот пакет и все, в системе что-то сломал
нет, дорогой друг, ставить какой-то пакет питона в "стандартное" окружение ОС - это путь в никуда, если вы собираетесь прожить с этой системой хоть пару лет (со всеми обновлениями безопасности и т.д,) Никогда! Повторю, НИКОГДА, не нужно ставить какие-то пакеты в окружение python вашего дистрибутива. Нет, я не выпендриваюсь, честно, просто это - опыт.
P.S. python - мой рабочий инструмент более 10 лет, я его искренне люблю и лелею, но нет - для задач переносимой автоматизации он подходит едва ли...
У Python есть один явный минус в сравнении с bash - это виртуальное окружение. Далеко не все скрипты можно "вот так взять и просто написать" без использования сторонних библиотек, а для этого нужно создавать виртуальное окружение, прописывать полный путь к интерпретатору в этом окружении... То есть речи о переносимости "из коробки" тут быть не может.
docker-compose.yml с описанным самими сервисом и нужными ему службами по дефолту находится в репозитории с сервисом для быстрого "поднятия" его (сервиса) локально, все тесты гоняются в контенере. Откуда он взялся я писал в разделе "мы имеем"
ну, как говорится, на вкус и цвет фломастеры у всех разные :)
я не знаю, какие кейсы у вас были в работе с сообщениями к коммитам, но я часто собирал релизы, и мне было очень полезно видеть не только ссылку на задачу ("зачем это изменение"), но и фактически короткое описание того, что изменилось для общего понимания картины
Как по мне, проблема круговых импортов - это проблема выделения ответственности частям кода. А это уже проблема проектирования. Конечно, можно "вылечить" костыляими наподобие локального импорта, но в долгосрочной перспективе это будет только вредить проекту, по моему опыту. Лучше на бумажке нарисовать граф зависимостей и вынести общие зависимости. Понятное дело, что не так мног опроектов, придерживающихся принципов чистой архитектуры, но все же можно что-то придумать. Лучше помучиться "на берегу", чем потом "спасать утопающих" :)
Позволю себе немного критики: на мой взгляд, в этом коде много "ошибок начинающих" от повсеместного использования глобальных переменных, обработки всех подряд исключений (
except
без указания конкретного) до стилистических (одновременное использование "наравне" одинарных и двойных кавычек), банально pep8 тут не соблюдено... Также совершенно непонятно, почему в примерах есть закоментированный код: если он был нужен при отладке, в результирующем примере его следовало бы убрать.ну, я бы не был так категоричен :)
Это вы про что: если про Линукс - я в статье писал, что был приятно удивлен, как он поменялся для десктопа, если про виндоуз - я его не использую не по причине отсутствия драйверов
я как-то пробовал гонять модели локально, но что-то совсем слабенько, вот Qwen3 не пробовал, надо это исправить, спасибо за наводку
Я не пользуюсь windows примерно с 2006 года
кажется, вы не понимаете термин "прокрастинация"... скорее, мое увлечение инструментами и их настройкой - хобби, так как в конечном итоге мне это приносит удовлетворение и занимаюсь я этим в нерабочее время :)
я сразу написал, что меня вдохновляют инструменты ;)
мне кажется, закон 80/20 или "правило Парето" несколько о другом ;)