vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

вот тут [personal profile] nataraj в очередной раз ругает Python. Но по-моему зря ругает. К сожалению это общее правило. Ежели нечто у нас практически полезное, оно не может быть концептуально чистым. Его задача get things done, а не научить людей правильно мыслить. Нельзя вырезать узор на дереве инструментом, который не позволяет порезаться.

Поэтому, если испольовать для обучения не игрушечные инструменты, а настоящие (кстати perl это касается в примерно той же степени), то нужен какой-то отдельный прибамбас, который будет следить за тем, чтобы ученик учился мыслить правильно, концептуально чисто, а не эклектично. (на следующем этапе обучения ученика надо будет научить когда, как и почему надо уметь отсупать от концептуальной чистоты).

Вот у нас есть такие инструменты как pylint и perlcritic, которые находят разнообразные стилистические и не только погрешности. Я вообще взял себе за правило не коммитить питоновский код, не проходящий pylint и шелловский код, не проходящий shellcheck, Потому что если проанализируешь все ворнинги этих инструментов и некоторые потключаешь управляющим комментарием в конкретном месте кода, будешь по крайней мере уверен что код делает то, что ты имел в виду.

Но для целей (само)обучения нужен инструмент более высокого уровня. Который будет тыкать в нос "вот у тебя 80% кода написано в объектной парадигме, а здесь ты почему-то используешь чисто процедурное решение". То есть отслеживать применение известных парадигм и выдавать предупреждение где происходит переключение с одной на другую. Наверное, с помощью нынешних LLM такое уже можно написать.

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

Date: 2024-07-10 10:28 am (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Хи-хи, pylint. Мы на работе гоняем на проектах isort + pycodestyle + flake8 + mypy + pylint. Первые 3 быстрые, но тоже много чего находят. Последние 2 медленные, зато очень тщательные.

В личных проектах я одним flake8 обхожусь, и то не всё исправляю.

Date: 2024-07-10 04:01 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Это у тебя такой уровень неумения пользоваться питоновскими скриптами? python2.7 -m flake8, python3.7 -m flake8, python3.12 -m flake8. У меня все библиотеки поддерживают Python 2.7 и 3.4+.

Date: 2024-07-10 04:25 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Когда ты в контейнере делаешь pip install flake8, какая тебе разница, какой там Питон?

Date: 2024-07-10 04:46 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Я всегда делаю только pip install. Но, разумеется, не в системный Питон, а в виртуальные среды. В т.ч. и на виртуальных машинах, и в контейнерах. Системный Питон предназначен только для нужд дистрибутива. Два пакета я позволяю себе установить в системный Питон — pip install --break-system-packages virtualenv virtualenvwrapper.

Date: 2024-07-10 04:27 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Дистрибутив Дебиана не содержит очень много нужного или полезного. И содержит много старья, которые приходится обновлять вне дистрибутива. А на работе у меня вообще на виртуалках древний CentOS, туда я всё тащу сам.

Date: 2024-07-10 05:01 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Я ставлю зоопарк Питонов. Некоторые из них не компилируются: а некоторые компилируются, но падают в кору. Приходится ставить из conda-forge.

Некоторые важные питоновские библиотеки и программы рекомендуется обновлять: pip, setuptools, wheel. Иных библиотек вообще нет в дистрибутиве, а я ими пользуюсь. auditwheel, например. wxPython.

Date: 2024-07-10 04:29 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Я не люблю подсветку синтаксиса. Получается попугайский пёстрый разноцветный экран, в глазах рябит,

Исходный текст программы — это текст, а текст должен быть чёрными буками на белом фоне.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 08:10 pm
Powered by Dreamwidth Studios