Существуют ли проекты с хорошей архитектурой?
Публичный постЯ много изучал вопрос, как организовать хороший код и хорошую архитектуру. При этом, несмотря на отдельные красивые решения, я пока ни разу не участвовал в создании проекта кодом которого я даже отдаленно доволен.
В связи с этим, хочется увидеть примеры, а как вообще выглядит этот хороший код. И тут пойнт в том, что сходу, я помню только один достаточно крупный проект на Python (моем основном языке), который я могу назвать качественным. Да есть ребята, которые соблюдают стайлгайды и имеют красивый README - но этого недостаточно.
Что я называю хорошей архитектурой?
Например можно использовать критерии Бека:
https://martinfowler.com/bliki/BeckDesignRules.html
Я бы это описал как требование к созданию PR, от незнакомого с проектом человека.В хорошем проекте, вы можете быстро и самостоятельно разобраться, где находится нужный вам модуль и как он работает, расширить его функиональность и убедиться, что ничего не сломалось, а тех. долг проекта не увеличился.
Все это, конечно, без какой-либо коммуникации с людьми.
Если что бы корректно изменить код нужно задавать вопросы людям, долго тупить, дебажить, разбираться с неписанными правилами -- этот проект неидеальный.
Какие мне известны примеры?
wemake-python-styleguide очень крут. Так же есть отдельные небольшие Python библиотеки, которые хотя и неидеальны, при их размере все равно просто разобраться.
Кажется что проекты Егора Бугаенко вполне прозрачные. Например. Но я недостаточно хорошо знаю джаву, что бы разобраться в них целиком.
Вроде как много крутых проектов и архитектурных идей на Haskell. Кажется что он намного сильнее поощряет красивый код по дефолту. Но так как я почти не запускал этих библиотек и не разбирался детально, я не увере, что не упустил чего-то.
Что я ищу?
Больше всего хочется увидеть проекты с открытым кодом, которые прямо красивые.
Истории про закрытые проекты, где по вашему мнению, все получилось круто, тоже интересны.
Пробовали почитать что-то из этого: https://www.aosabook.org/en/index.html?
Чтиво стоящее! Проекты рассматриваются самые разные, реализованные на разных стеках, решающие совершенно разные задачи. Есть, например, статейка про Yesod - web-фреймворк для Haskell :)