На определенном этапе осознаешь что чистота кода - плохая самоцель. Достаточно чистый код - вот это да. А понимать ту самую "достаточность" - вот где сила.
чистый код бывает. я его видел. написан как учат в книжках. код был единообразен при том что часть была отдана на аутсорс. все решения были бест практис. код был прозрачный с хорошей читаемостью. это целиком зависело от разраба который последним делал код ревью. в команде должен быть тот кто гик и за ним последнее слово, тогда и код будет чистым. а остальное все оправдания ...
Такие умные ребята кругом публично вещают активно, и Уже должны придумать хотя бы примерную формулу как считать полную стоимость оплаты труда Наёмного работника программиста (и любой полезной профессии) с максимальным учётом всех всех издержек (моральных и физических). И Если наниматели владельцы прибыли не согласны с этой формулой, так пусть они тогда сами сидят на своём предприятии , логично же ⁉️
Я ни на одном проекте не видел документ Стандарты Разработки. В нем приводится глоссарий, как мы бустрапим новые проекты, как мы именуем proto, как бранчуемся, какие среды, как апрувим комиты. И все в том же духе. Документ без воды, страниц на 20-30. Много коммуникационных проблем будет решено!!!
Так. Прекрасные Катя и Женя, легендарный Кирилл, горячая тема, но лайк отгружен до просмотра, даже если в нём будет нещадно подбито моё личное объективно верное ощущение чистого кода!
юзал FSM в бизнес логике до того, как это стало мейнстримом :) я выходец из embedded programming и любую систему/процесс воспринимаю как бесконечный цикл с переключением состояний ) в совеременных реалиях это можно назвать domain events
для того что бы понять конечный автомат и их пользу достаточно просто написать хотя бы одну игру. По сути все и всегда имеет состояния. Вместо того что бы проверять что то мы можем просто не делать то что объект не может делать в том или ином состоянии. Но у нас появляется проблема в виде больших матриц состояний когда у нас большое количество объектов зависят от состояний других объектов. А когда вы поймете что по сути можно стоить целые деревья с под деревьями которые крутятся и сами регулируются вы поймете что вот у вас и модульность подъехала и вообще код стал выглядеть очень просто. Правда почему то забывают о инфраструктурных издержках потому что для этого подхода нужно много всего сделать.
"проблема в виде больших матриц состояний когда у нас большое количество объектов зависят от состояний других объектов" Хммм.... Странно. Вообще-то КА для того и вводятся, чтобы не было несчастья, описанного вами. Если такое есть в проекте, надо просто менять проектировщика. КА не должен зависеть, НИ от "своей истории", НИ от состояния каких-то других объектов. Если этого кто-то не понимает, то это - НЕ недостаток КА, а - у кого-то между ушами неправильная модель внешнего мира сложилась.
Использование статусов для управления состоянием объектов - отличный подход. Но это у меня точно не связывается с конечным автоматом, который для меня какая-то абстрактная научная штука)
ощущение поле выпуска, что все писали и пишут неправильно, но только Кирилл знает как надо ))) Паттерны можно не учить, аббревиатуры неправильные, вообще все лучшие практики прошлых лет не то - Кирилл наш кандидат, приходите к нему, он научит 🙂🙂🙂 P.S. на телегу Кирилла подписался 🙂
отличный подкаст. один из вопросов на одном из собесов - "какой из паттернов реализует одну из букв SOLID - например O". ну и в целом главные требования - знание абсолютное с применением в коде и код ревью SOLID DRY KISS YAGNI и всех паттернов. я в целом понял, что что-то там не то...
"выведенные типы в пуллреквесте не видны" - поздравляю! Твои разрабы тупо профанируют кодревью, делая его в броузере. В подавляющем большинстве случаев это означает, что они либо недостаточно квалифицированы для этого, если не могут побилдить и, как минимум, прогнать тесты локально, либо тупо забили и делают это просто для галочки. Потратьте день, раздайте слонов, настройте тулчейн, и реальная эффективность кодревью возрастёт на порядок 🤷🏻♂️
Хммм... А, по-моему, ведь ведущий (который слева), судя по его фразам о "натягивании" кода на КА, на самом деле не понимает "про конечные автоматы"... Он несколько раз повторил о состоянии всей системы. А это - уже первейший показатель непонимания данной темы. Поправьте, если я не прав.
Да назовите это состоянием и все, у меня код игровой на ecs подразумевает набор состояний, как для игрока в целом так и для элементов общего состояния, и никто такого не боиться, типа норм.
Мда, сейчас пилю фичу в грязном коде. Да, весь код грязный, согласен. Есть грязный как асфальт после ветра и дождя. Есть грязный как выгребная яма. Грязь грязи рознь. Я преисполнился.
Очень странное впечатление. Правила из чистого кода вредные, солид устарел, паттерны не нужны, юнит тесты переоценены. Яркие заявления, а потом примеры которые доказывают что все таки и правила «чистого кода» соблюдать надо, и примеры реализаций паттернов и где они применяются, и как большой класс удобно разбивать по солиду, и важная бизнес логика в юнит тестах. Вот так закопали. А новички наслушаются лозунгов и разгребаем потом год обджекты в 3к строк с переменными в одну букву без тестов.
Я чаще вижу что вместо душнилова на старте/собесе про солид и клин-код лучше работает сложно формулируемый "коммон-сенс", "чувство прекрасного" и обучение в формате подмастерья. Т.е. приходит ждун в команду и его потихоньку за полгода подтягивают в самостоятельного разраба с помощью хардкорного ревью и синков, иногда вставляя базворды типа "паттерн Х", "читаемость", "поддерживаемость", etc для придания своей речи вида объективности Хоть может показаться что это про передачу субъективного видения, но почему то переходя с одного места на другое вижу что все серьезные разрабы приходят к похожим подходам. Видимо хорошие идеи распространяются в индустрии крос-опылением)
Блин, ребят, ну капец слабо, даже грустно как то... Вы позовите меня поговорить за чистый код и SOLID, и я объясню что и как И по каким причинам люди это не понимают или не умеют пользоваться, ну правда грустно что не транслируется реальная суть вещей....
"Чистый код" - не нужен. Но у гостя так сложно формулируются мысли вначале, что очень сложно понять о чем он хочет сказать. Возможно, "чистый код" хорошо помогает понимать чей-то код. Также как и "чистая и структурированная речь"
Предлагаю вам развернуть мысль, воспользовавшись шаблоном: Книги про Гарри Поттера на полке у взрослого человека, безотносительно того как и откуда они там взялись, это плохо, потому что… (продолжите мысль)
Когда я вырасту, то хочу быть таким же крутым как Кирилл, только мне уже 35 :(
Мне 21 и тоже так думаю😅
надо было начинать учить SOLID в 11 лет
Когда вырастет борода.
Никогда не поздно
@@alexjegor Не бывает "поздно". Бывает "уже не надо".
Как фсм проще, чем многие думают, так и принцип лисков проще, чем звучит. Оверрайды не должны ломать работу программы. Используется примерно всегда
А выпуск про SOLID я обязательно бахну! :)
На определенном этапе осознаешь что чистота кода - плохая самоцель. Достаточно чистый код - вот это да. А понимать ту самую "достаточность" - вот где сила.
Вы - не правы. Это - НЕ перфекционизм. Просто - нормальные природные требования: код должен быть чистым и красивым.
Моё уважение этому господину. Слушая как он объясняет сложные вещи простыми словами - понимаешь что он все понимает
Мокевнин это всегда топ, спасибэйро!!!
Кирюха изобретает монады, пайплайны, тройки Хоара и спеки на функции :) Кирюха молодец! :)
чистый код бывает. я его видел. написан как учат в книжках.
код был единообразен при том что часть была отдана на аутсорс.
все решения были бест практис. код был прозрачный с хорошей читаемостью.
это целиком зависело от разраба который последним делал код ревью.
в команде должен быть тот кто гик и за ним последнее слово, тогда и код будет чистым.
а остальное все оправдания ...
Такие умные ребята кругом публично вещают активно, и Уже должны придумать хотя бы примерную формулу как считать полную стоимость оплаты труда Наёмного работника программиста (и любой полезной профессии) с максимальным учётом всех всех издержек (моральных и физических).
И Если наниматели владельцы прибыли не согласны с этой формулой, так пусть они тогда сами сидят на своём предприятии , логично же ⁉️
Отличный получился выпуск, спасибо🙏
Охренеть! 2024 год. А человек вынужден объяснять, что, по сути, в программинге НИЧЕГО, кроме конечных автоматов, не существует! Я - в шоке.
Я ни на одном проекте не видел документ Стандарты Разработки. В нем приводится глоссарий, как мы бустрапим новые проекты, как мы именуем proto, как бранчуемся, какие среды, как апрувим комиты. И все в том же духе. Документ без воды, страниц на 20-30. Много коммуникационных проблем будет решено!!!
Чистый и никому не нужный - идеальное текущее описание меня =D
Кирилл как всегда крут!) Послушал с кайфом!
Так. Прекрасные Катя и Женя, легендарный Кирилл, горячая тема, но лайк отгружен до просмотра, даже если в нём будет нещадно подбито моё личное объективно верное ощущение чистого кода!
Шикарный видос, спасибо большое, Кирилл - мощь, конечно
юзал FSM в бизнес логике до того, как это стало мейнстримом :) я выходец из embedded programming и любую систему/процесс воспринимаю как бесконечный цикл с переключением состояний ) в совеременных реалиях это можно назвать domain events
В ФП Continuations и Continuation-Passing Style - обобщение автоматного программирования - существует где-то с середины прошлого века
спасибо большое за выпуск, было интересно!
для того что бы понять конечный автомат и их пользу достаточно просто написать хотя бы одну игру. По сути все и всегда имеет состояния. Вместо того что бы проверять что то мы можем просто не делать то что объект не может делать в том или ином состоянии. Но у нас появляется проблема в виде больших матриц состояний когда у нас большое количество объектов зависят от состояний других объектов. А когда вы поймете что по сути можно стоить целые деревья с под деревьями которые крутятся и сами регулируются вы поймете что вот у вас и модульность подъехала и вообще код стал выглядеть очень просто. Правда почему то забывают о инфраструктурных издержках потому что для этого подхода нужно много всего сделать.
"проблема в виде больших матриц состояний когда у нас большое количество объектов зависят от состояний других объектов"
Хммм.... Странно. Вообще-то КА для того и вводятся, чтобы не было несчастья, описанного вами. Если такое есть в проекте, надо просто менять проектировщика. КА не должен зависеть, НИ от "своей истории", НИ от состояния каких-то других объектов. Если этого кто-то не понимает, то это - НЕ недостаток КА, а - у кого-то между ушами неправильная модель внешнего мира сложилась.
Использование статусов для управления состоянием объектов - отличный подход.
Но это у меня точно не связывается с конечным автоматом, который для меня какая-то абстрактная научная штука)
ощущение поле выпуска, что все писали и пишут неправильно, но только Кирилл знает как надо )))
Паттерны можно не учить, аббревиатуры неправильные, вообще все лучшие практики прошлых лет не то - Кирилл наш кандидат, приходите к нему, он научит 🙂🙂🙂
P.S. на телегу Кирилла подписался 🙂
а я отписался 😀
@@spacerecluseвозможно и так поступлю ) пока наблюдаю
> Подкаст про чистый код
Позвали чела который не работал ни в одной серьёзной технической компании.
Код Мартина можно посмотреть на гитхабе, он об этом пишет в своих же книгах. Например, Fitnesse, написанный на Java
Хороший выпуск, классный гость
отличный подкаст.
один из вопросов на одном из собесов - "какой из паттернов реализует одну из букв SOLID - например O". ну и в целом главные требования - знание абсолютное с применением в коде и код ревью SOLID DRY KISS YAGNI и всех паттернов. я в целом понял, что что-то там не то...
А что не так? Не нужно знать и уметь использовать принципы SOLID? Нужно, при том что обычно мы их используем, не зная об этом
Не увидел в ссылках про доклад, о котором Кирилл говорил в конце. Так вот, доклад: «Снесите это немедленно» - Аксенов
Чтобы разблокировать персонажа Кирилл Макевнин нужно дослушать до 25й минуты
"выведенные типы в пуллреквесте не видны" - поздравляю! Твои разрабы тупо профанируют кодревью, делая его в броузере. В подавляющем большинстве случаев это означает, что они либо недостаточно квалифицированы для этого, если не могут побилдить и, как минимум, прогнать тесты локально, либо тупо забили и делают это просто для галочки. Потратьте день, раздайте слонов, настройте тулчейн, и реальная эффективность кодревью возрастёт на порядок 🤷🏻♂️
Забыл Эванса посоветовать, хотя в процессе ссылался)
(Не является инвестиционной рекомендацией)
Кирилл потихоньку делает из себя кумира)
ифы vs конечные автотматы - "было бы все немножко по-другому". И какие преимущества были бы у автоматов?
Single Responsibility- хрень собачья. Но конечные автоматы - наше всё. Ничего не смущает? Нет ли между этими двумя концепциями связи?… 🤔 🙃
Читаю книгу гроккаем алгоритмы, написана индусом, противоречит себе через каждые 2 страницы, думаю, это его фишка, не советую😂
primeagen с bob martin хорошее интервью да.
Ссылка на тг канал Кирилла будет?
Организованное программирование
Добавили в описание к видео!
Хммм... А, по-моему, ведь ведущий (который слева), судя по его фразам о "натягивании" кода на КА, на самом деле не понимает "про конечные автоматы"... Он несколько раз повторил о состоянии всей системы. А это - уже первейший показатель непонимания данной темы. Поправьте, если я не прав.
Да назовите это состоянием и все, у меня код игровой на ecs подразумевает набор состояний, как для игрока в целом так и для элементов общего состояния, и никто такого не боиться, типа норм.
Clean codeR - тоже книга Мартина
Мутный гость какой-то
Это вначале. Затем его нормально видно :D
@@unitydude казалось что его лицо скрывают, как в репортажей про жертв преступников))
@@artishoo интересный эффект получился с рассветом :)
Максимально спорный выпуск от «просветленных» программистов
Мда, сейчас пилю фичу в грязном коде.
Да, весь код грязный, согласен.
Есть грязный как асфальт после ветра и дождя.
Есть грязный как выгребная яма.
Грязь грязи рознь.
Я преисполнился.
Очень странное впечатление. Правила из чистого кода вредные, солид устарел, паттерны не нужны, юнит тесты переоценены.
Яркие заявления, а потом примеры которые доказывают что все таки и правила «чистого кода» соблюдать надо, и примеры реализаций паттернов и где они применяются, и как большой класс удобно разбивать по солиду, и важная бизнес логика в юнит тестах. Вот так закопали.
А новички наслушаются лозунгов и разгребаем потом год обджекты в 3к строк с переменными в одну букву без тестов.
Я чаще вижу что вместо душнилова на старте/собесе про солид и клин-код лучше работает сложно формулируемый "коммон-сенс", "чувство прекрасного" и обучение в формате подмастерья. Т.е. приходит ждун в команду и его потихоньку за полгода подтягивают в самостоятельного разраба с помощью хардкорного ревью и синков, иногда вставляя базворды типа "паттерн Х", "читаемость", "поддерживаемость", etc для придания своей речи вида объективности
Хоть может показаться что это про передачу субъективного видения, но почему то переходя с одного места на другое вижу что все серьезные разрабы приходят к похожим подходам. Видимо хорошие идеи распространяются в индустрии крос-опылением)
Блин, ребят, ну капец слабо, даже грустно как то... Вы позовите меня поговорить за чистый код и SOLID, и я объясню что и как
И по каким причинам люди это не понимают или не умеют пользоваться, ну правда грустно что не транслируется реальная суть вещей....
еще один сектант
Хороший гость. Зовите ещё.
Кайф
Вся наша жизнь .... игра, тьфу конечный автомат конечно же
Где код? Развели тут болтанку, понимаешь.
Вы просто не сталкивались с настоящим говнокодом
+
"Чистый код" - не нужен. Но у гостя так сложно формулируются мысли вначале, что очень сложно понять о чем он хочет сказать. Возможно, "чистый код" хорошо помогает понимать чей-то код. Также как и "чистая и структурированная речь"
Чистый код - чисто инфоциганаская тема. Эта книга скорее мотивационная какая-то, нежели что-то применимое в реальной жизни.
мусорное видео
Как можно серьезно воспринимать взрослого человека, когда у него на полке стоят книги про Гарри Поттера?
Исключительно позитивно!
Предлагаю вам развернуть мысль, воспользовавшись шаблоном:
Книги про Гарри Поттера на полке у взрослого человека, безотносительно того как и откуда они там взялись, это плохо, потому что… (продолжите мысль)
@@katellaEvgenii , до того как задавать этот вопрос, мне нужно было подумать кому я его задаю