Редактировать: С тех пор, как был задан этот вопрос, в стандартных научных библиотеках Python (которые были целевой областью) произошло значительное улучшение. Например, проект numpy приложил большие усилия для улучшения строк документации. Можно до сих пор спорить, можно ли было бы постоянно решать эти проблемы с самого начала.
У меня такой несколько еретический вопрос: почему так много библиотек Python имеют грязный код и не следуют стандартным рекомендациям? Или вы думаете, что это наблюдение абсолютно не соответствует действительности? Как ситуация сравнивается с другими языками? Мне интересно ваше мнение об этом.
Некоторые причины, по которым у меня сложилось впечатление, что качество не хватает:
Строки документации часто полностью отсутствуют или неполны, даже для общедоступного API. Больно, когда метод принимает *args
и **kwargs
, но не документирует, какие значения могут быть заданы.
Плохие практики кодирования Python, такие как добавление новых атрибутов за пределы __init__
. Подобные вещи делают код трудным для чтения (или сопровождения).
Вряд ли какие-либо библиотеки следуют правилам кодирования PEP8. Иногда соглашения даже не согласованы в одном файле.
Общий дизайн грязный, без чёткого API. Похоже, что рефакторинг выполнен недостаточно.
Плохое покрытие юнит тестов.
Не поймите меня неправильно, Я очень люблю Python и его экосистему . И хотя я боролся с этими библиотеками , они обычно выполняют свою работу, и я благодарен за это . Но я также думаю, что в итоге из-за этих проблем теряется время разработчиков. Возможно, это из-за того, что Python дает вам такую свободу, что очень просто написать плохой код .