Grigory Petrov
886 posts

Grigory Petrov
@grigoryvp
Software developer, Technical writer, DevRel at #Evrone
Moscow, Russia Katılım Kasım 2010
141 Takip Edilen1.2K Takipçiler

@rd_prog @mokevnin Придерживаюсь вот точно такого подхода. Функции больше экрана не помещаются не только на экране, но и в моей голове😎 экран 13 дюймов, если что
Про когнитивную сложность и читаемость кода есть много докладов @grigoryvp , рекомендую посмотреть. Он нейрофизиолог-любитель
Русский

Какая должна быть длина у функций?
Щас скажу кое-что неочевидное. На эту проблему нельзя смотреть в статитке. Вот правильно 4 строки, 10, 100, поэтому разбиваем как-только доходим до предела. Я смотрю на это в динамике.
Когда мы только что-то пишем и это не очевидная абстракция вроде проверки числа на простоту, то разбивать на функции не надо, до тех пор пока вы не начнете упираться во что-то начиная от необходимости повторного использования (а значит выделения доп абстракций) до большого количества состояний, которые делают анализ функции слишком сложным. Какой при этом получится размер? Да хрен его знает, в реальной жизни функции бывают очень разные, это легко проверить если походить по опенсорсу на гитхабе. И мы говорим про очень успешные продукты и проекты.
Главное здесь не размер, а то что существует закон распределения, который звучит так: не распределяй. Рефакторить монолит в подавляющем большинстве случаев проще, чем рефакторить распределенную систему будь то функции, компоненты реакта или микросервисы. И когда мы пишем что-то новое, не важно это либа с функциями внутри или сервис с возможными микросервисами внутри, мы изначально не знаем во что это выродится и с какими проблемами мы столкнемся. И слишком ранее разбиение может привести к тому, что придется переписывать все, либо будем страдать, потому что уже поздно.
Есть такой архитектурный принцип, что принятие ключевых решений нужно откладывать как можно дольше (пока не накопится достаточно кейсов и понимания). Да, при этом надо учитывать, что можно слишком затянуть, но на уровне функций, все же сложно довести систему до состояния невозможности рефакторинга.
Поэтому если мы пишем что-то новое, где мы не до конца понимаем все текущие или будущие кейсы, лучше не пытаться все разносить до минимума, достаточно выносить только самые больные очевидные технические элементы. А вот дальше, в процессе работы, доуточнения и отработке пограничных случаев, пожалуйста, мы можем разбивать и разбивать в соответствии с получаемыми смыслами.

Русский


I’m verifying my Twitter account with #rarible. Check out my profile: rarible.com/grigoryvp
English

My new VSCode extension for Python REPL code blocks within markdown: marketplace.visualstudio.com/items?itemName…

English

The Layered Rails book is available now!
Grab it here and share your thoughts:
packt.link/97LoK

Seattle, WA 🇺🇸 English
Grigory Petrov retweetledi

Cookpad has decided to discontinue support for the Ruby interpreter development team, and Endoh-san @mametter and I have been advised for resignation. Therefore, we are looking for positions. If you are interested in supporting us, please contact us.
_ko1@_ko1
クックパッドはRubyインタプリタ開発チームのサポートの停止を決定し、私と遠藤さん @mametter は退職勧奨を受けることになりました。そのため、次のポジションを探しています。Rubyインタプリタに対する貢献をサポートしてくださる組織がありましたらご連絡頂けますと幸いです。
English
Grigory Petrov retweetledi

TypeScript sucked out much of the joy I had writing JavaScript. I’m forever grateful that @yukihiro_matz didn’t succumb to the pressure of adding similar type hints to Ruby. May we forever enjoy this beloved language without 🙏 zverok.space/blog/2023-05-0…
English

HighLoad++ team has been holding conferences for IT specialists for more than 15 years.
See you in Yerevan on December 15 and 16: bx.vc/y6fns8

English

With my keynote 😊 4K video, nice sound and camera, lots of neurophysiology. English subs to come 😇
HolyJS@HolyJSconf
Привет! Мы выложили в открытый доступ записи выступлений с HolyJS 2022 Spring. Посмотреть их можно здесь: youtube.com/playlist?list=…
English

@Hateman311 @JeffCHawkins Редозубова еще не всего посмотрел. С книги Хокинса "On Intelligence" в 2004 году начался мой интерес к нейрофизиологии. А вот "A Thousand Brains" я еще не читал, она в пайплайне, keep tuned!
Русский

@grigoryvp спасибо за крутой доклад.
Хоть кто-то в индустрии проснулся.
Что думаете про концепцию @JeffCHawkins "thousand of brains" ? Что думаете о "Логике мышления" Алексея Редозубова ?
Русский


@bruno_gelb Уменьшить быстрые углеводы (мучное и сладкое), не есть вечером - с этого удобно начинать. Далее можно калораж уменьшать.
Русский

Best article about terminals and shell I have read for the last few years: itnext.io/unix-shells-an…

English
Grigory Petrov retweetledi

Григорий Петров поговорит о том, как работает мозг в вопросах понимания понятия сложности и написания понятного читаемого кода. Вас ждут дерево когнитома, облака кога и много разного кода.
Подробности и билеты: bit.ly/3EHvUKN

Русский





