А где освежиться чистым кодом?
Публичный постПочитать для развития вкуса и мастерства.
Не легаси, а чистого (clean), а ещё лучше — прошедшего свои стадии гниения (rot) и грамотно почищенного.
С тестами, с инфраструктурой, активно развивающегося.
Опенсорс? А какой?
Мой фокус на Python, но в этом треде можно обменяться ссылками и на другие языки.
Чтобы систематически набить глаз на хорошем, а не вариться в собственном опыте (я вот за 20 лет до смешного мало обучался у грамотных лидов, по ряду причин) или адаптировать учебные примеры.
Очень рекомендую вот эту книжку: https://www.amazon.com/Exercises-Programming-Style-Cristina-Videira/dp/1482227371/
Она не столько про хороший код, сколько про то что существуют разные стили написания кода, и даже на питоне это очень видно как разный подход влияет на то как код читается и пишется
В книжке берётся вордкаунт и делается 33 разными способами, от гольфинга до мап-редьюса. Такой как бы новый способ смотреть на код
Можно просто в репозитории почитать, но с комментариями интереснее https://github.com/crista/exercises-in-programming-style
А не существует хорошего кода. Либо он бестолковый и никому не нужный, но нравится автору, либо оброс кучей обременений совместимости и техническим долгом. Возможно, где-то его пишут, но уж точно не в опенсорс.
Обычно у авторов опенсорс-проектов потребность и запал пропадают очень быстро, и когда проект становится востребованным, автору до него нет дела. В него вяло делают пулл-реквесты разработчики со стороны, и никто не обладает достаточным желанием и знанием кодовой базы, чтобы это все отрефакторить.
Что касается конкретно Питона, я вообще нигде не видел хорошего кода. (Кроме того, который пишет мой отдел, конечно.) И стандартная библиотека, и популярные библиотеки. Где-то бывает хороший интерфейс, какие-то очень хорошо помогают для очень стандартных задач, что-то очень хорошо кастомизируется. Но в целом все тухло.
Да и не бывает кода, хорошего для всех. Как и не бывает человека, который всем нравится. Тимлид должен понимать, что от конкретного компонента требовать, какого уровня качества и каких характеристик. Есть разные требования бизнеса, разные аудитории пользователей, разные этапы жизни проекта, разная квалификация разработчиков.
Тут скорее про архитектуру, думаю все равно будет полезно http://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/index.html
49 популярных open source проектов
https://github.com/topics/yii3 - свеженький Yii в разработке. По нему проходится статанализ, полное покрытие типами, покрытие тестами под 100%, MSI score под 100%, хорошее именование, дока.
Запрос немного перекликается с техникой code kata: набивать технику в решении типовых задач снова и снова.
https://sourcegraph.com/search?q=context:global+good+code&patternType=literal
Слышал, что https://github.com/scylladb/scylla - хорошее чтиво
Когда-то мне пришлось допиливать драйвер под линукс, код мне тогда понравился, так что рекомендую почитать исходники ядра.
Лично мне нравится вот:
https://github.com/real-logic/aeron
и оно работает и популярно для своей аудитории
Ещё можно посмотреть:
https://github.com/OpenHFT (но в открытой, бесплатном репозитории мяса маловато, емнип)
И вот:
https://github.com/jOOQ/jOOQ
очень популярная библиотека, есть платные плагины (кода которых нет, естественно)
Так вроде на ГитХабе полно такого кода. Всякого разного полно: хорошего и плохого, старого и нового, с легаси и свежак. В поиске же можно поискать. Наверное, любой проект с +-1000 звезд и с десятками контрибуторов скорее всего будет хорошим "живым" проектом.
Навскидку, вот https://github.com/iterative/dvc. Или тот же код и инфраструктурная обвязка самого питона https://github.com/python.
В целом, очень много достойных проектов. Надо смотреть инетресующую тематику.
Sentry? рили? там же адский ад) получилось освежиться кодом?
сейчас распиливаю их onpremise, чтобы работал на много компуктерах с кластерами редисов, кликхаусов и вот это все. Во многих местах адский ад там и больно больно
Ну вот, советуют стандартную библиотеку Python.
Есть крутой опенсорц, который пережил десятилетия и массово здравствует, и поэтому вряд ли убийственно плох: Linux, nginx, Blender, что-нибудь от Apache Foundation.
Django — это все-таки фреймворк, и у него свои интересы, нежели чем у продукта (мне про продукты интереснее).
Sentry?
Zope? (кстати, где он)
Есть массово востребованные вещи типа плагинов и модов (недавно заглядывал в Factorio Paranoidal, где собраны десятки модов), но вряд ли они хороши как код.
Id tech?
Похожая тема
https://vas3k.club/question/11398/