Как называть переменные, методы и классы? Чистый код (Clean Code)

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

Комментарии • 254

  • @SergeyNemchinskiy
    @SergeyNemchinskiy  Месяц назад

    💪Новый поток advanced тренинга Enterprise patterns стартует 2.12.
    Получите скидку -15% для ранних пташек только до 15.11 - go.foxminded.ua/3ZV8z4R

  • @GinJouGames
    @GinJouGames 3 года назад +135

    Супер! Было бы круто если бы были примеры кода. правильно неправильно для лучшего понимания) спасибо!

    • @user-san-chous
      @user-san-chous 3 года назад

      @Ivan Petrov а есть такой? Именно в записи и по улучшению кода?

    • @user-san-chous
      @user-san-chous 3 года назад

      @Ivan Petrov ну они проводят обучение, насколько я знаю, а не продают курсы в записи. Такой вариант не подходит. А за graps спасибо. Посмотрю что это за книга.

    • @даниилпавленко-ъ2з
      @даниилпавленко-ъ2з 2 года назад

      Так он же приводил примеры

  • @phantomlannister1104
    @phantomlannister1104 3 года назад +56

    Никто уже не сомневается, что это Сергей Немчинский? 😃 Очень классная идея для серии, спасибо Вам! И да, серию коротких видео смотреть в разы проще, чем одно большое, чисто психологически информация укладывается лучше.

    • @phantomlannister1104
      @phantomlannister1104 3 года назад +3

      Ну и обложка видео огонь, сразу бросилось в глаза в релэйтеде.

    • @alexxEquinox
      @alexxEquinox 3 года назад +2

      Phantom LANNISTER Плюс можно более детально углубиться в каждый аспект. Это лучше чем пробежаться по верхам в одном большом энциклопедическом видео.
      Такие короткие более детальные выпуски лучше во всех смыслах.

  • @Bakatkin
    @Bakatkin 3 года назад +54

    Ну вот не надо, что никто не смотрит 2-часовое видео по Clean Code - я буквально сегодня смотрел)

    • @doopath8737
      @doopath8737 3 года назад +13

      Та серия видео по паттернам ГоФ и ГРАСП настолько хороша, что я смотрел ее больше 3-х раз, заставил посмотреть всех моих родных и друзей, планирую показывать ее своим детям. Спасибо Сергею за такие прекрасные уроки!

    • @rumartru
      @rumartru 3 года назад

      Спасибо, надо посмотреть, главное чтобы мозги не закипели к концу, чтобы хоть что-нибудь запомнить)

    • @ИванЗарембовский
      @ИванЗарембовский 3 года назад +3

      Скиньте ссылку на 2-х часовое видео

    • @БендерЗадунайский-щ9ы
      @БендерЗадунайский-щ9ы 3 года назад

      Сергей, стату по просмотру того видео в студию! пипл негодуэ!😀

    • @hallgamal6302
      @hallgamal6302 3 года назад

      Если видио 2 часа я его смотреть не буду
      Если инструкция длиннее страницы читать не буду
      Тот кто делает такие длинные вещи наверное считает себя сильно умным

  • @DefinitelyNeslide
    @DefinitelyNeslide 3 года назад +10

    Смотреть короткие ролики действительно проще чем длинную лекцию(да и закрепить материал проще). Жду продолжения

  • @simonmarenkov1459
    @simonmarenkov1459 3 года назад +17

    16:30 - движуха вокруг master/slave вспомнилась сразу

  • @Guitarist138
    @Guitarist138 3 года назад +58

    Заказчик называет какой-то компонент "эта ху%ня". Придётся называть так класс.

  • @MrRomanvideo
    @MrRomanvideo 3 года назад +6

    Супер, отлично! Пожелание только одно - максимально полно раскрыть эту тему.

  • @k.safonov
    @k.safonov 3 года назад +27

    Когда Немчинский с укоризной посмотрел в экран, мне показалось, что это я был тем, кто назвал метод init. Стыдно стало.

  • @АннаВотинова-в3э
    @АннаВотинова-в3э 3 года назад +2

    Здорово! Очень жду следующие видео ❤️

  • @alexanderraf5553
    @alexanderraf5553 3 года назад +18

    Сразу ставлю лайк) В разработке не первый день, но бывает в проектах очень сложно имена дать сущностям.

    • @0imax
      @0imax 3 года назад +2

      Особенно когда есть несколько похожих сущностей, и различия между ними надо бы отразить в названии, но получается длиннющая хрень)

  • @АндрейГорбунов-ш5л
    @АндрейГорбунов-ш5л 3 года назад +2

    Спасибо Сергей. Разумно короткие сжатые ролики легче усваиваются. 2 часа не всегда есть время просмотреть и осмыслить.

  • @khayolnoranjov918
    @khayolnoranjov918 3 года назад +1

    Спасибо Сергей.
    Очень просто и очень продуктивно.

  • @yabarm
    @yabarm 3 года назад +3

    Продолжай дальше про клин код. Очень актуально)

    • @maxlich9139
      @maxlich9139 3 года назад

      клин клином вышибать)

  • @nobodydoe
    @nobodydoe 3 года назад

    Это видео обязательно к просмотру любому, кто входит в программирование

  • @cnTrueLight
    @cnTrueLight 3 года назад +10

    Чистый код Мартина - одна из самых полезных книг о программировании. И при этом достаточно легко читается. Неоднократно видел, как код людей заметно меняется в лучшую сторону после прочтения этой книги.
    По содержанию ролика - не хватает одной важной вещи. Не помню было это у Мартина или нет, возможно вывел это правило сам - относитесь к названиям как к терминам. Это значит, что одна и та же сущность в проекте везде должна называться одинаково. При этом разные сущности - по-разному. Общие и неоднозначные термины использовать не нужно - manager, game в игровом проекте, proxy если пишете проски-сервер и т.д.

    • @enkryp
      @enkryp 3 года назад +1

      А вот это про что было? 17:08​ - одна вещь - одно название

    • @cnTrueLight
      @cnTrueLight 3 года назад

      @@enkryp Возможно и имелось в виду то же самое, но выражено не достаточно чётко. Правила использования терминов относятся не только к тому, что говорит заказчик, а вообще ко всем сущностям в коде.

  • @Kekht
    @Kekht 3 года назад +4

    Отличная идея - разбить на "разделы". Кстати, с кодом весело разбираться, когда писавший его не знал английского (знал французкий) и не использовал словарь для проверки: messege, baze, resive и прочее

  • @dimitridoroshko
    @dimitridoroshko 3 года назад +5

    Интересно всё!) Продолжайте в этом же духе, Сергей. Однозначно лайк и колокольчик))

  • @anastasiarose9781
    @anastasiarose9781 3 года назад +2

    Отличное видео. Не знала что переменные должны быть существительными, а методы глаголами 😬 я ещё только учусь.

  • @torrvic1156
    @torrvic1156 2 года назад

    Сергей, большое Вам спасибо за ваши видео! Очень много о мире программирования узнал именно от Вас.
    С ностальгией вспоминаю, как на машине ехали с папой (когда он был жив) на работу и слушали ваши видео.

  • @scad_
    @scad_ 3 года назад +1

    как раз недавно прочитал по рекомендации одного из преподавателей. Отличная книга. А сейчас ещё и видео от Вас с пояснениями, просто пушка-гонка:)

  • @vitalijdao724
    @vitalijdao724 3 года назад

    Спасибо большое за такие видео. Всегда не хватало терпения смотреть ваши длинные лекции про клинкод. Так что приходилось искать в интернете коротко обо всем. А этот формат очень правильный и мне нравится

  • @Petr_Sergeev
    @Petr_Sergeev 3 года назад

    Здравствуйте, Сергей Немчинский, спасибо Вам за вашу работу! Я смотрел уже некоторые другие ваши видео и нахожу их и это видео весьма полезным! Удачи Вам в Ваших проектах!!!

  • @lev736
    @lev736 3 года назад

    Только прочитал Clean Code, и вы сразу выпустили ролик про него)

  • @mironovsergey
    @mironovsergey 3 года назад +3

    11:01 Получилось даже лучше, чем вся "модная" музыка

  • @Rokinso
    @Rokinso 3 года назад +2

    Спасибо за полезную информацию. Как раз то, что я искал.

  • @valerautukin5854
    @valerautukin5854 3 года назад +1

    Я пару месяцев назад начинал её читать. Добрался до функций и потом отложил её. Так что я за последующие видосы! Если уж не читаю, то хоть послушаю)

  • @Sergey.Aleksandrovich.P-37rus
    @Sergey.Aleksandrovich.P-37rus 3 года назад +1

    как всегда интересно слушать.... лайк 👍

  • @stanislavyermolenko6315
    @stanislavyermolenko6315 3 года назад +1

    Спасибо, очень интересно, жду продолжения

  • @Nickola_United
    @Nickola_United 3 года назад +1

    Тема очень актуальная. Го еще)

  • @dmitriy9232
    @dmitriy9232 3 года назад +2

    Спасибо за годный и полезный контент. Все супер. В этом плане, к примеру в SAP ERP на ABAP печалька. Длинна названий объектов (классов/методов/переменных и пр.) ограничена. Кроме того, у многих заказчиков в регламентах префиксы, чуть ли не основное требование. К примеру для класса префикс может быть таким: Z(пользовательская область имен)CL(префикс класса)NN(модуль)_NNNN(номер разработки)_. И выглядит это примерно так: ZCL_HR_D501_*. Т.е. 12 знаков только по регламенту.

  • @espressivo5747
    @espressivo5747 3 года назад

    Сергей, спасибо большое за новую рубрику! Очень интересно и познавательно:)

  • @dmitrypichugin7449
    @dmitrypichugin7449 3 года назад

    Спасибо.
    Читал много книг Мартина и других, повторение полезно.

  • @Zohan136
    @Zohan136 2 года назад

    Спасибо большое за поддержку и понимание ❤️‍🔥❤️‍🔥❤️‍🔥

  • @анимекот-ш1т
    @анимекот-ш1т 3 года назад +1

    Придумывать название переменных это целое искусство

  • @sergijbondarenko716
    @sergijbondarenko716 3 года назад +2

    Послушал и сразу же исправил название класса, ответственного за навигацию, с глагола на существительное.. ))

  • @beykoney2353
    @beykoney2353 3 года назад +1

    Здесь как и в остальных областях общественных отношений. Если думать об удобстве других людей, а не только о своём, то эти рекомендации будут почти очевидны.
    Все мы - человеки.)

  • @МежрёбернаяНевралгия

    Кайф формат! Всё ещё отличный канал) На работе учит тимлид, по дороге Сергей. =)

  • @iurchenko
    @iurchenko 3 года назад

    Круто! Жду продолжения....

  • @SergeiAndruhovich
    @SergeiAndruhovich 3 года назад

    Очень интересно, так держать, спасибо огромное

  • @gemwarden
    @gemwarden 3 года назад +3

    Спасибо за видеоролик

  • @bardovskiyevgeniy7204
    @bardovskiyevgeniy7204 3 года назад +2

    Как раз у меня скоро семинар по книге Чистый Код )

  • @at0m1x191919
    @at0m1x191919 3 года назад +1

    Супер. Спасибо!

  • @andreyvanakoff9412
    @andreyvanakoff9412 3 года назад

    По Swift'у Эппл рекомендуют совсем длинные названия (eg. var enterUserFirstName, func clickToSubmitLoginForm, class vehiclesInEuropeanUnion). Позже привыкаешь и читаешь как цельное предложение (на самом деле просто привыкаешь). Удобно. Постепенно сокращаешь до самых нужных ключевых слов кэмэлКейсом и крутяк (eg. var userFirstName, func clickToSubmit, class vehiclesInEurope).

  • @chesy2286
    @chesy2286 3 года назад

    Продолжайте по теме clean code

  • @anymko3931
    @anymko3931 3 года назад +2

    Очень интересно, очень полезно

  • @ivankobyuk8385
    @ivankobyuk8385 3 года назад +1

    дякую за відео, адже зараз (при відсутності достатнього досвіду) дійсно складно з назвами на всіх рівнях, але "батя, я стараюсь")

  • @drovoseg
    @drovoseg 3 года назад +8

    Как enterprise разработчики называют своих собак?
    WoofServiceHelperManager

  • @Boyanist_so_stagem
    @Boyanist_so_stagem 3 года назад

    Шикарное видео, спасибо. А ещё улыбнул значок орды на футболке в рекламе))))

  • @edgull_tlt
    @edgull_tlt 3 года назад

    Спасибище огромное!

  • @prizrakkommunizma8750
    @prizrakkommunizma8750 3 года назад +1

    Про "не используй сокращения" и "не используй лишний контекст". Я программирую на С и там если ты не назовёшь свой тип PWM_HeaderTypeDef (что нарушает оба этих правила), то попытка глобально использовать твой тип в большом проекте вызовет кучу вопросов у того, кто будет потом читать код. А что делает этот тип? Для чего он? И так далее.

  • @qq-dq3tb
    @qq-dq3tb 3 года назад +2

    Наконец, годнота

  • @AlexandrSpirit
    @AlexandrSpirit 3 года назад

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

  • @olegborisov9100
    @olegborisov9100 3 года назад +1

    Хороший видос, спасибо

  • @PairWords
    @PairWords 3 года назад

    У меня был недавно выбор: или разбираться, почему исходники с гитхаба на TypeScript не компилятся или расковырять и переделать минифицированный код готового приложения. Второй вариант оказался проще :).

  • @mykola-rohoza
    @mykola-rohoza 3 года назад +5

    То чувство когда назвал класс ИндексКонтроллер
    А как вы относитесь к стандартным сокращениям типа tmp

  • @Csenonify
    @Csenonify 3 года назад +1

    Спасибо большое:)

  • @enigma_mysterium
    @enigma_mysterium 2 года назад

    Где же знаменитое 2-хчасовое видео? Столько раз на него ссылались.

  • @alehasmalouski6146
    @alehasmalouski6146 3 года назад

    Интересно! Построим стайл гайд команды на основе видео)

  • @VikaVikaification
    @VikaVikaification 3 года назад +3

    Сергей, сделайте, пожалуйста, видео (или серию видео) о том, какие продукты сделаны украинскими айтишниками для Украины. Да, я прекрасно понимаю, что в основном все идет для американских и европейских компаний, там платят больше и т.п. Тем не менее, у нас столько талантливых программистов, что не может не быть своего чего-то классного, мирового уровня. Очень бы хотелось показать дочери, а то пока у нее в голове только выучиться здесь и уехать

  • @yakut54
    @yakut54 3 года назад +3

    Как называть? Так, чтобы никто не догадался!

    • @max_mgtow
      @max_mgtow 3 года назад +1

      Чётко 😆

  • @fidelfidel668
    @fidelfidel668 3 года назад +1

    Роберт Мартин в помощь)

  • @endgameagain
    @endgameagain 3 года назад

    как раз пишу задание по clean code из курса java spring. соответственно, дальше про декомпозицию на пальцах хотелось бы)

  • @ДанилоНовосад-ь7х
    @ДанилоНовосад-ь7х 3 года назад +2

    11:58 на фоне уже везут программиста, который пришел в команду где так делают.

  • @ЮрийПлохов-к2в
    @ЮрийПлохов-к2в 3 года назад

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

  • @gaitavr1992
    @gaitavr1992 3 года назад +1

    Пользу от этого видео сложно переоценить

  • @javavlogger9409
    @javavlogger9409 3 года назад +6

    @Sergey Nemchinskiy
    А как правильно называть классы в паттерне команда?
    DoSomething, как я понял, не годится, а DoSomethingAction норм?

  • @Yurec10
    @Yurec10 3 года назад

    Хотелось бы видео о том, когда лучше применять mvc, а когда mvt

  • @vm_raccoon
    @vm_raccoon 3 года назад +6

    По поводу "не кодируйте" 12:25
    А что скажете про использование переменных i18n, l10n и g11n?

    • @enkryp
      @enkryp 3 года назад +1

      Это устоявшиеся сокращения, которых единицы. "Не кодируйте" - про частое использование в коде импровизированных замен и сокращений.

    • @maksk5017
      @maksk5017 3 года назад

      А что все это значит? :)

    • @vm_raccoon
      @vm_raccoon 3 года назад

      @@maksk5017
      i18n - интернационализация.
      l10n - локализация.
      g11n - глобализация.

    • @maksk5017
      @maksk5017 3 года назад +1

      @@vm_raccoon Воу, я не знал, спасибо, но я думаю это не лучшая идея для наименования.

  • @MainDenHub
    @MainDenHub 3 года назад

    Хотел поставить лайк, а он уже стоял

  • @veronica2487
    @veronica2487 2 года назад

    Ролик надо было назвать 10 способов вывести сеньора из себя если ты Джун

  • @AltSerega
    @AltSerega 3 года назад

    В нумерации пропущена 9, 17:08​ - одна вещь - одно название (8)
    19:51​ - включайте названия в контекст (10)

  • @rockstar8996
    @rockstar8996 3 года назад +1

    Лайк за Сильвану)

  • @IPWchild
    @IPWchild 3 года назад +1

    Мое самое нелюбимое слово из области бухгалтерии, которое непонятно как перевести для нейминга - "ведомость". Есть и другие слова: отработки, начисления, ... Придумывание названий для таких вещей иногда бывает сложнее написания самой логики.

    • @МихаилКрамер-н7ш
      @МихаилКрамер-н7ш 3 года назад

      А когда "лещадность" (одна из характеристик щебня) в предметной области. И заказчик русскоязычный. Во я запарился тогда перевод искать :)))

  • @malferov
    @malferov 3 года назад +1

    Префиксы в названиях классов, вероятно, лепят, когда пишут код без неймспейсов.

  • @АлександрЧеботарев-щ4м

    Можно было бы 2 лайка поставить, я бы поставил)

  • @chimax4713
    @chimax4713 3 года назад

    Давно не смотрел видео с Сергеем. Не узнал его. Сергей, что с твоей внешностью? Ты помолодел!

  • @mo_on1ight340
    @mo_on1ight340 3 года назад +9

    нужно больше примеров, а то иногда есть 1, а иногда даже 1 нет

    • @maitreeee
      @maitreeee 3 года назад

      В clean code достаточно примеров

  • @ЯковЛазоренко
    @ЯковЛазоренко 3 года назад

    Глаголы вообще нельзя использовать для наименования классов? А если они будут вместе с существительными, например, UpdateOrderInCache или DatabaseQueryBuilder?

  • @Jure1234567
    @Jure1234567 3 года назад

    Может смысл начинать названия классов на Server в том, чтобы выскакивал список подсказок при начале набора? Иначе нужно всегда помнить названия классов, по крайней мере их начало.

  • @0imax
    @0imax 3 года назад

    Слушаю видос, дописывая класс PacketBuilder))

    • @infinitynoir5441
      @infinitynoir5441 3 года назад +1

      Вот хоть убей, не вижу ничего плохого в этом названии. Мне даже со своей колокольни уже примерно понятно, что там внутри.
      Плюс я почитал комменты под двухчасовым видосом и там есть такие же мнения на этот счёт. Имхо слепо следовать правилам тоже плохо. Может мне конечно недостаточно опыта, но можно назвать класс очевидно, в виде того же PacketBuilder'a, а можно придумать какую-нибудь дрисню, которая только запутает окончательно

    • @0imax
      @0imax 3 года назад

      @@infinitynoir5441 Ну я ничего лучше не придумал для класса, который из данных формирует пакет для отправки (добавляет служебную инфу к данным) и из принятой побайтово инфы формирует пакет, проверяет его корректность и отдаёт данные из него. Ну и кода там 100 строчек, всё банально.

  • @max_mgtow
    @max_mgtow 3 года назад +5

    Всё ещё Сергей Немчинский 😄

  • @DiabloZq
    @DiabloZq 3 года назад

    Спасибо!

  • @Philip_Just
    @Philip_Just 3 года назад +1

    заказал Мартина Чистый код

  • @андрейхоменко-и5я
    @андрейхоменко-и5я 3 года назад

    Очень полезная информация. Пойду свои краказябы менять. Только вот вопрос возник... Насколько длинные названия методов, классов допускается..

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  3 года назад +1

      я считаю, что не более че 3 слова

  • @nmodonov
    @nmodonov 3 года назад +1

    ++
    Годно, полезно.

  • @st-time6394
    @st-time6394 3 года назад +1

    А можно узнать как правильно рефакторить?

  • @agentr227
    @agentr227 3 года назад +15

    private int i;
    public int i1;
    public int peremennaya_dlya_metoda_pereopred
    🌚

    • @purplep3466
      @purplep3466 3 года назад +11

      var zashkvar = 1.0;

    • @Proto_Astartes
      @Proto_Astartes 3 года назад

      Как бы это парадоксально не звучало, но третья переменная самая понятная(Ясно для чего она нужна), а первые две реально BullShit. У нас в проекте есть классы в которых сотни методов и 15 тыс строк кода и поверь пусть имя будет длиным чем коротким и хз что и в каком контексте оно используется, овер дохера ошибок из-за путаницы контекста смысла переменных.

    • @БендерЗадунайский-щ9ы
      @БендерЗадунайский-щ9ы 3 года назад +1

      @@Proto_Astartes имхо: если у вас в классе СОТНИ методов,... че то не то вы делаете...

    • @Proto_Astartes
      @Proto_Astartes 3 года назад

      @@БендерЗадунайский-щ9ы если проект уровня андроид приложения , то я с вами согласен, но т.к. у нас проект уровня ентерпрайз и несколько десятков клиентов обслуживает наш проект и у каждого своя специализация , то часть методов используется для одного клиента часть для другого.

    • @drovoseg
      @drovoseg 3 года назад +1

      @@Proto_Astartes Судя по описанию их стоит разнести на разные классы

  • @systemify
    @systemify 3 года назад +1

    Так а в чем проблема с классами контролл-ерами, рид-ерами и менедж-ерами?
    Как их называть рекомендуется?

    • @maxlich9139
      @maxlich9139 3 года назад

      вот реально. Если класс не содержит состояние или почти не содержит, и только что-то делает, то как его еще называть!?

  • @bobnutner2478
    @bobnutner2478 Год назад

    Thanks, it was interesting

  • @Kolianus625
    @Kolianus625 3 года назад +2

    Пошел смотреть двухчасовое видео, которое никто не смотрит😁

  • @Code.bless_you
    @Code.bless_you 3 года назад

    Я когда слышу, что это все еще Сергей Немчинский, аж выдыхаю с облегчением

  • @victorbrylew1775
    @victorbrylew1775 3 года назад +1

    З тезою про закінчення '-er' не згоден. Це вже надмірний пуризм. class User ще нікому ніколи не зашкодив, а перейменовування Adapter чи Wrapper у щось інше лише зменшить читабельність коду.

  • @TheDustyChannel3334
    @TheDustyChannel3334 2 года назад +1

    Нужны примеры

  • @flamberkruds7912
    @flamberkruds7912 3 года назад

    1 вопрос, кто те люди что ставят дизлайк, что сказал Лис не так? По мне все по существу, и правильно. Может я чего-то не понимаю? в комментариях на данный момент не заметил не одного сообщения, что в ролике было не верно. странно...

  • @Шурикпубличный
    @Шурикпубличный 3 года назад

    когда ютуб будет делать чистку видосов, это видео не удалять.

  • @Samurai-w4x9g
    @Samurai-w4x9g 3 года назад

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

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  3 года назад

      это вам не поможет, мы в Украине :)

  • @4w1de
    @4w1de 3 года назад

    В 21 год узнал, что медведь от "ведает где мед"...

  • @MrJloa
    @MrJloa 4 месяца назад

    items = []
    👍 numItems = items.length
    ❤ itemsLen = items.length
    -----
    Интересно, сколько адептов разных подходов. Голосуем эмодзями

  • @s_bandera
    @s_bandera 3 года назад

    По поводу поиска по названию, а то пример показался невыразительным... Мы в нашей компании в Spring именуем классы начиная с домена нп User..., Organization..., System..., BussinesUnit... и заканчиваем типом нп ...DAO, ...Repository, ...Service, ...Controller, ...DTO и довольно легко все ищется))