Можно вопросы опытным питонистам?
Я с коллегами, за последние несколько месяцев, сделали три не очень сложных проекта на Django. Бэкэнд кода не много, все классненько и быстро написалось, влюбился в язык почти сразу.
За плечами полтора года на Java. Командная разработка там ведется следующим образом:
Разработчики декомпозируют проект на как можно более автономные составляющие. Для каждой части на раннем этапе разработки придумывается API, вход/выход, и строго формализуется в интерфейсах. Каждый разработчик знает что его модуль должен принять и что отдать. Если еще DI/IOC подключить, то зависимость модулей друг от друга можно свести на нет. В итоге приложение одновременно может писать несколько десятков разработчиков, не особо синхронизируюясь с действиями друг друга. Таким образом можно написать приложение любой сложности.
Теперь по Python:
С помощью чего в Python формализуется вход/выход модуля? Интерфейсов ведь нет. С помощью каких инструментов разные модули собираются в готовое приложение (например в Java это Spring)? Есть ли у кого-нибудь опыт написания крупных приложений на Python?
Пока что пишу очень подробные документации, ведь без них мой код это просто набор переменных неизвестно что хранящих, которые вызывают друг у друга какие-то методы и не известно что возвращают. Представляю как через два года приходит разработчик новый, смотрит на метод, а там
return house_note
. И вот думай потом что это за
house_note
и что с ней делать.