Существуют ли проекты с хорошей архитектурой?

 Публичный пост

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

В связи с этим, хочется увидеть примеры, а как вообще выглядит этот хороший код. И тут пойнт в том, что сходу, я помню только один достаточно крупный проект на Python (моем основном языке), который я могу назвать качественным. Да есть ребята, которые соблюдают стайлгайды и имеют красивый README - но этого недостаточно.

Что я называю хорошей архитектурой?

Например можно использовать критерии Бека:
https://martinfowler.com/bliki/BeckDesignRules.html

Я бы это описал как требование к созданию PR, от незнакомого с проектом человека.В хорошем проекте, вы можете быстро и самостоятельно разобраться, где находится нужный вам модуль и как он работает, расширить его функиональность и убедиться, что ничего не сломалось, а тех. долг проекта не увеличился.

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

Какие мне известны примеры?

wemake-python-styleguide очень крут. Так же есть отдельные небольшие Python библиотеки, которые хотя и неидеальны, при их размере все равно просто разобраться.

Кажется что проекты Егора Бугаенко вполне прозрачные. Например. Но я недостаточно хорошо знаю джаву, что бы разобраться в них целиком.

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

Что я ищу?

Больше всего хочется увидеть проекты с открытым кодом, которые прямо красивые.

Истории про закрытые проекты, где по вашему мнению, все получилось круто, тоже интересны.

6 комментариев 👇
Aleksei Pirogov вебинарю, менторствую 4 июня 2020

Пробовали почитать что-то из этого: https://www.aosabook.org/en/index.html?

Чтиво стоящее! Проекты рассматриваются самые разные, реализованные на разных стеках, решающие совершенно разные задачи. Есть, например, статейка про Yesod - web-фреймворк для Haskell :)

  Развернуть 1 комментарий

Да, про эту книгу (и серию) знаю, она крутая. У GHC очень интересная архитектура напрмер.

Но все таки там про интересные и красивые решения в архитектуре, а не про целиком понятный и чистый проект.

Например из их примеров их примерах Python Packaging код почти наверняка ужасный (тот что я смотрел был), и Selenium WebDriver тот что питоновый весьма плох.

  Развернуть 1 комментарий

@uhbif19, так воспринимайте эти проекты как

  • примеры того, как не стоит делать;
  • доказательства того, что даже очень большие проекты могу существовать и быть успешными "не благодаря, но вопреки" хорошей архитектуре :)
  Развернуть 1 комментарий

@astynax, Так не только большая часть IT, но и всего мира существуют вопреки, в таком смысле. Это неудевительно.

А примеры в книжке как стоит делать, хорошие, но не про мой запрос. Большая часть того что я там читал, рассказывают действительно крутые вещи.

Например прекрасная архитектура GHC, которую еще и полностью рефакторили много-много раз за прошедшие 30 лет, что бы он оставался в хорошей форме.

  Развернуть 1 комментарий
Yury Katkov в шаббатикале 7 июня 2020

Vim достаточно неплох.

  Развернуть 1 комментарий

Хорошо, посмотрю.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб