А где освежиться чистым кодом?

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

Почитать для развития вкуса и мастерства.

Не легаси, а чистого (clean), а ещё лучше — прошедшего свои стадии гниения (rot) и грамотно почищенного.

С тестами, с инфраструктурой, активно развивающегося.

Опенсорс? А какой?

Мой фокус на Python, но в этом треде можно обменяться ссылками и на другие языки.

Чтобы систематически набить глаз на хорошем, а не вариться в собственном опыте (я вот за 20 лет до смешного мало обучался у грамотных лидов, по ряду причин) или адаптировать учебные примеры.

Связанные посты
29 комментариев 👇

Очень рекомендую вот эту книжку: https://www.amazon.com/Exercises-Programming-Style-Cristina-Videira/dp/1482227371/
Она не столько про хороший код, сколько про то что существуют разные стили написания кода, и даже на питоне это очень видно как разный подход влияет на то как код читается и пишется

В книжке берётся вордкаунт и делается 33 разными способами, от гольфинга до мап-редьюса. Такой как бы новый способ смотреть на код

Можно просто в репозитории почитать, но с комментариями интереснее https://github.com/crista/exercises-in-programming-style

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

@shrimpsizemoose, тема!

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

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

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

Что касается конкретно Питона, я вообще нигде не видел хорошего кода. (Кроме того, который пишет мой отдел, конечно.) И стандартная библиотека, и популярные библиотеки. Где-то бывает хороший интерфейс, какие-то очень хорошо помогают для очень стандартных задач, что-то очень хорошо кастомизируется. Но в целом все тухло.

Да и не бывает кода, хорошего для всех. Как и не бывает человека, который всем нравится. Тимлид должен понимать, что от конкретного компонента требовать, какого уровня качества и каких характеристик. Есть разные требования бизнеса, разные аудитории пользователей, разные этапы жизни проекта, разная квалификация разработчиков.

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

@sovetov, я ждал этот комментарий))

А как бы ваш отдел масштабировать?) в смысле распространения доброго и вечного.

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

@KiEwsD6gHcJanH5P, наймите меня консультантом, очевидно же :-)

Масштабирование доброго и вечного — это на порядок более сложная работа.

В чем реальная цель вашего поста, какую проблему вы решаете, @KiEwsD6gHcJanH5P ?

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

@sovetov, собрать полезных ссылок для себя и клуба :)

А нанять потенциально интерсно. Есть КП?)

  Развернуть 1 комментарий
Миша Гусаров , Инженегр-погромист 14 августа 2021

Стандартная библиотека Go.

Исходники Plan 9 также очень освежают.

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

@dottedmag, спасибо! Украл формулировку вопроса ;)

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

Тут скорее про архитектуру, думаю все равно будет полезно http://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/index.html
49 популярных open source проектов

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

https://github.com/topics/yii3 - свеженький Yii в разработке. По нему проходится статанализ, полное покрытие типами, покрытие тестами под 100%, MSI score под 100%, хорошее именование, дока.

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

Запрос немного перекликается с техникой code kata: набивать технику в решении типовых задач снова и снова.

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

@KiEwsD6gHcJanH5P, оооооо, а ты пробовал эти каты прям как Мартин в Clean Coder писал, когда решаешь одну и ту же задачку крестиков-ноликов тысячи раз подряд и задрачиваешь ее до такой степени, что уже сосредоточен не на коде, не на стиле, и даже не на самих комбинациях клавиш, а уже просто на округлости движений пальцев, эти клавиши нажимающих?

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

@ganqqwerty, ох, не настолько))

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

@KiEwsD6gHcJanH5P, я прям в восторг пришёл от того, как это сектантски звучит

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

@ganqqwerty, медитация ;)

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

@KiEwsD6gHcJanH5P, есть еще сборники задач типа project euler или rosalindinfo, после решения задачи открывается доступ на форум с другими решениями, там часто находятся какие-нибудь жемчужны мысли прямо

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

@tiulpin, спасибо за ссылку на инструмент, но эти результаты же самоназвание, а не объективная оценка?)

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

@KiEwsD6gHcJanH5P, оригинальный ответ был немного ироничный... Но я думаю, что там удобно найти хороший код на нужном языке (и там индексируют только популярные проекты). Sentry уже упомянули, наверное, оригинальный запрос еще отлично покрывает репозиторий localstack, реплицирующий сервисы AWS. А еще можно заглядывать в тренды GitHub!

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

Слышал, что https://github.com/scylladb/scylla - хорошее чтиво

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

@edward, да и сама Кассандра мне запомнилась весьма неплохой.

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

Когда-то мне пришлось допиливать драйвер под линукс, код мне тогда понравился, так что рекомендую почитать исходники ядра.

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

Лично мне нравится вот:
https://github.com/real-logic/aeron

и оно работает и популярно для своей аудитории
Ещё можно посмотреть:
https://github.com/OpenHFT (но в открытой, бесплатном репозитории мяса маловато, емнип)

И вот:
https://github.com/jOOQ/jOOQ
очень популярная библиотека, есть платные плагины (кода которых нет, естественно)

  Развернуть 1 комментарий
Pavel Ditenbir , Разработка и консалтинг в области видео, стриминге, кодеках и OTT 17 августа 2021

Так вроде на ГитХабе полно такого кода. Всякого разного полно: хорошего и плохого, старого и нового, с легаси и свежак. В поиске же можно поискать. Наверное, любой проект с +-1000 звезд и с десятками контрибуторов скорее всего будет хорошим "живым" проектом.

Навскидку, вот https://github.com/iterative/dvc. Или тот же код и инфраструктурная обвязка самого питона https://github.com/python.

В целом, очень много достойных проектов. Надо смотреть инетресующую тематику.

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

Sentry? рили? там же адский ад) получилось освежиться кодом?

сейчас распиливаю их onpremise, чтобы работал на много компуктерах с кластерами редисов, кликхаусов и вот это все. Во многих местах адский ад там и больно больно

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

@the_asten, он терпимо работает на одной ноде из коробки)

Кластер не пробовал

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

Ну вот, советуют стандартную библиотеку Python.
Есть крутой опенсорц, который пережил десятилетия и массово здравствует, и поэтому вряд ли убийственно плох: Linux, nginx, Blender, что-нибудь от Apache Foundation.

Django — это все-таки фреймворк, и у него свои интересы, нежели чем у продукта (мне про продукты интереснее).

Sentry?

Zope? (кстати, где он)

Есть массово востребованные вещи типа плагинов и модов (недавно заглядывал в Factorio Paranoidal, где собраны десятки модов), но вряд ли они хороши как код.

Id tech?

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

@KiEwsD6gHcJanH5P, исходники линукса настолько отвратительны, что сразу веришь, что линукс действительно работает. Есть них какая-то суровая правда жизни и след руки Господа, постепенно превращающего жабры в голосовые связки.

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

Похожая тема
https://vas3k.club/question/11398/

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

😎

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

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


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