@Ivan Petrov ну они проводят обучение, насколько я знаю, а не продают курсы в записи. Такой вариант не подходит. А за graps спасибо. Посмотрю что это за книга.
Никто уже не сомневается, что это Сергей Немчинский? 😃 Очень классная идея для серии, спасибо Вам! И да, серию коротких видео смотреть в разы проще, чем одно большое, чисто психологически информация укладывается лучше.
Phantom LANNISTER Плюс можно более детально углубиться в каждый аспект. Это лучше чем пробежаться по верхам в одном большом энциклопедическом видео. Такие короткие более детальные выпуски лучше во всех смыслах.
Та серия видео по паттернам ГоФ и ГРАСП настолько хороша, что я смотрел ее больше 3-х раз, заставил посмотреть всех моих родных и друзей, планирую показывать ее своим детям. Спасибо Сергею за такие прекрасные уроки!
Если видио 2 часа я его смотреть не буду Если инструкция длиннее страницы читать не буду Тот кто делает такие длинные вещи наверное считает себя сильно умным
Чистый код Мартина - одна из самых полезных книг о программировании. И при этом достаточно легко читается. Неоднократно видел, как код людей заметно меняется в лучшую сторону после прочтения этой книги. По содержанию ролика - не хватает одной важной вещи. Не помню было это у Мартина или нет, возможно вывел это правило сам - относитесь к названиям как к терминам. Это значит, что одна и та же сущность в проекте везде должна называться одинаково. При этом разные сущности - по-разному. Общие и неоднозначные термины использовать не нужно - manager, game в игровом проекте, proxy если пишете проски-сервер и т.д.
@@enkryp Возможно и имелось в виду то же самое, но выражено не достаточно чётко. Правила использования терминов относятся не только к тому, что говорит заказчик, а вообще ко всем сущностям в коде.
Отличная идея - разбить на "разделы". Кстати, с кодом весело разбираться, когда писавший его не знал английского (знал французкий) и не использовал словарь для проверки: messege, baze, resive и прочее
Сергей, большое Вам спасибо за ваши видео! Очень много о мире программирования узнал именно от Вас. С ностальгией вспоминаю, как на машине ехали с папой (когда он был жив) на работу и слушали ваши видео.
Спасибо большое за такие видео. Всегда не хватало терпения смотреть ваши длинные лекции про клинкод. Так что приходилось искать в интернете коротко обо всем. А этот формат очень правильный и мне нравится
Здравствуйте, Сергей Немчинский, спасибо Вам за вашу работу! Я смотрел уже некоторые другие ваши видео и нахожу их и это видео весьма полезным! Удачи Вам в Ваших проектах!!!
Спасибо за годный и полезный контент. Все супер. В этом плане, к примеру в SAP ERP на ABAP печалька. Длинна названий объектов (классов/методов/переменных и пр.) ограничена. Кроме того, у многих заказчиков в регламентах префиксы, чуть ли не основное требование. К примеру для класса префикс может быть таким: Z(пользовательская область имен)CL(префикс класса)NN(модуль)_NNNN(номер разработки)_. И выглядит это примерно так: ZCL_HR_D501_*. Т.е. 12 знаков только по регламенту.
Здесь как и в остальных областях общественных отношений. Если думать об удобстве других людей, а не только о своём, то эти рекомендации будут почти очевидны. Все мы - человеки.)
По Swift'у Эппл рекомендуют совсем длинные названия (eg. var enterUserFirstName, func clickToSubmitLoginForm, class vehiclesInEuropeanUnion). Позже привыкаешь и читаешь как цельное предложение (на самом деле просто привыкаешь). Удобно. Постепенно сокращаешь до самых нужных ключевых слов кэмэлКейсом и крутяк (eg. var userFirstName, func clickToSubmit, class vehiclesInEurope).
Про "не используй сокращения" и "не используй лишний контекст". Я программирую на С и там если ты не назовёшь свой тип PWM_HeaderTypeDef (что нарушает оба этих правила), то попытка глобально использовать твой тип в большом проекте вызовет кучу вопросов у того, кто будет потом читать код. А что делает этот тип? Для чего он? И так далее.
Как хорошо что в пайтоне есть встроенный мощный докстринг. Конечно, нужно писать так что бы всем было понятно из названия что оно делает... Но в докстринг можно и пример запихнуть. Ну и везде где можно проставлять анатации (аля типизация языка). Тогда не нужно делать проверку типа входящих данных. Да и IDE подсветит что функция ожидает, и что вы на выходе получите.
У меня был недавно выбор: или разбираться, почему исходники с гитхаба на TypeScript не компилятся или расковырять и переделать минифицированный код готового приложения. Второй вариант оказался проще :).
Сергей, сделайте, пожалуйста, видео (или серию видео) о том, какие продукты сделаны украинскими айтишниками для Украины. Да, я прекрасно понимаю, что в основном все идет для американских и европейских компаний, там платят больше и т.п. Тем не менее, у нас столько талантливых программистов, что не может не быть своего чего-то классного, мирового уровня. Очень бы хотелось показать дочери, а то пока у нее в голове только выучиться здесь и уехать
Мое самое нелюбимое слово из области бухгалтерии, которое непонятно как перевести для нейминга - "ведомость". Есть и другие слова: отработки, начисления, ... Придумывание названий для таких вещей иногда бывает сложнее написания самой логики.
Глаголы вообще нельзя использовать для наименования классов? А если они будут вместе с существительными, например, UpdateOrderInCache или DatabaseQueryBuilder?
Может смысл начинать названия классов на Server в том, чтобы выскакивал список подсказок при начале набора? Иначе нужно всегда помнить названия классов, по крайней мере их начало.
Вот хоть убей, не вижу ничего плохого в этом названии. Мне даже со своей колокольни уже примерно понятно, что там внутри. Плюс я почитал комменты под двухчасовым видосом и там есть такие же мнения на этот счёт. Имхо слепо следовать правилам тоже плохо. Может мне конечно недостаточно опыта, но можно назвать класс очевидно, в виде того же PacketBuilder'a, а можно придумать какую-нибудь дрисню, которая только запутает окончательно
@@infinitynoir5441 Ну я ничего лучше не придумал для класса, который из данных формирует пакет для отправки (добавляет служебную инфу к данным) и из принятой побайтово инфы формирует пакет, проверяет его корректность и отдаёт данные из него. Ну и кода там 100 строчек, всё банально.
Как бы это парадоксально не звучало, но третья переменная самая понятная(Ясно для чего она нужна), а первые две реально BullShit. У нас в проекте есть классы в которых сотни методов и 15 тыс строк кода и поверь пусть имя будет длиным чем коротким и хз что и в каком контексте оно используется, овер дохера ошибок из-за путаницы контекста смысла переменных.
@@БендерЗадунайский-щ9ы если проект уровня андроид приложения , то я с вами согласен, но т.к. у нас проект уровня ентерпрайз и несколько десятков клиентов обслуживает наш проект и у каждого своя специализация , то часть методов используется для одного клиента часть для другого.
З тезою про закінчення '-er' не згоден. Це вже надмірний пуризм. class User ще нікому ніколи не зашкодив, а перейменовування Adapter чи Wrapper у щось інше лише зменшить читабельність коду.
1 вопрос, кто те люди что ставят дизлайк, что сказал Лис не так? По мне все по существу, и правильно. Может я чего-то не понимаю? в комментариях на данный момент не заметил не одного сообщения, что в ролике было не верно. странно...
Здравствуйте, Сергей. В связи с последними новостями об суверенном интернете, можете, пожалуйста, сделать на сайте пакет оффлайн уроков, которые можно будет изучать без интернета?
По поводу поиска по названию, а то пример показался невыразительным... Мы в нашей компании в Spring именуем классы начиная с домена нп User..., Organization..., System..., BussinesUnit... и заканчиваем типом нп ...DAO, ...Repository, ...Service, ...Controller, ...DTO и довольно легко все ищется))
💪Новый поток advanced тренинга Enterprise patterns стартует 2.12.
Получите скидку -15% для ранних пташек только до 15.11 - go.foxminded.ua/3ZV8z4R
Супер! Было бы круто если бы были примеры кода. правильно неправильно для лучшего понимания) спасибо!
@Ivan Petrov а есть такой? Именно в записи и по улучшению кода?
@Ivan Petrov ну они проводят обучение, насколько я знаю, а не продают курсы в записи. Такой вариант не подходит. А за graps спасибо. Посмотрю что это за книга.
Так он же приводил примеры
Никто уже не сомневается, что это Сергей Немчинский? 😃 Очень классная идея для серии, спасибо Вам! И да, серию коротких видео смотреть в разы проще, чем одно большое, чисто психологически информация укладывается лучше.
Ну и обложка видео огонь, сразу бросилось в глаза в релэйтеде.
Phantom LANNISTER Плюс можно более детально углубиться в каждый аспект. Это лучше чем пробежаться по верхам в одном большом энциклопедическом видео.
Такие короткие более детальные выпуски лучше во всех смыслах.
Ну вот не надо, что никто не смотрит 2-часовое видео по Clean Code - я буквально сегодня смотрел)
Та серия видео по паттернам ГоФ и ГРАСП настолько хороша, что я смотрел ее больше 3-х раз, заставил посмотреть всех моих родных и друзей, планирую показывать ее своим детям. Спасибо Сергею за такие прекрасные уроки!
Спасибо, надо посмотреть, главное чтобы мозги не закипели к концу, чтобы хоть что-нибудь запомнить)
Скиньте ссылку на 2-х часовое видео
Сергей, стату по просмотру того видео в студию! пипл негодуэ!😀
Если видио 2 часа я его смотреть не буду
Если инструкция длиннее страницы читать не буду
Тот кто делает такие длинные вещи наверное считает себя сильно умным
Смотреть короткие ролики действительно проще чем длинную лекцию(да и закрепить материал проще). Жду продолжения
16:30 - движуха вокруг master/slave вспомнилась сразу
Заказчик называет какой-то компонент "эта ху%ня". Придётся называть так класс.
во во!
заказчик: хочу чтоб этот йопаный перечень услуг..
я(пишу): fuckingEnumераторсервисесблеать......
😎
Блядь це лол
Супер, отлично! Пожелание только одно - максимально полно раскрыть эту тему.
стараюсь :)
Когда Немчинский с укоризной посмотрел в экран, мне показалось, что это я был тем, кто назвал метод init. Стыдно стало.
Здорово! Очень жду следующие видео ❤️
Сразу ставлю лайк) В разработке не первый день, но бывает в проектах очень сложно имена дать сущностям.
Особенно когда есть несколько похожих сущностей, и различия между ними надо бы отразить в названии, но получается длиннющая хрень)
Спасибо Сергей. Разумно короткие сжатые ролики легче усваиваются. 2 часа не всегда есть время просмотреть и осмыслить.
Спасибо Сергей.
Очень просто и очень продуктивно.
Продолжай дальше про клин код. Очень актуально)
клин клином вышибать)
Это видео обязательно к просмотру любому, кто входит в программирование
Чистый код Мартина - одна из самых полезных книг о программировании. И при этом достаточно легко читается. Неоднократно видел, как код людей заметно меняется в лучшую сторону после прочтения этой книги.
По содержанию ролика - не хватает одной важной вещи. Не помню было это у Мартина или нет, возможно вывел это правило сам - относитесь к названиям как к терминам. Это значит, что одна и та же сущность в проекте везде должна называться одинаково. При этом разные сущности - по-разному. Общие и неоднозначные термины использовать не нужно - manager, game в игровом проекте, proxy если пишете проски-сервер и т.д.
А вот это про что было? 17:08 - одна вещь - одно название
@@enkryp Возможно и имелось в виду то же самое, но выражено не достаточно чётко. Правила использования терминов относятся не только к тому, что говорит заказчик, а вообще ко всем сущностям в коде.
Отличная идея - разбить на "разделы". Кстати, с кодом весело разбираться, когда писавший его не знал английского (знал французкий) и не использовал словарь для проверки: messege, baze, resive и прочее
Интересно всё!) Продолжайте в этом же духе, Сергей. Однозначно лайк и колокольчик))
Отличное видео. Не знала что переменные должны быть существительными, а методы глаголами 😬 я ещё только учусь.
Сергей, большое Вам спасибо за ваши видео! Очень много о мире программирования узнал именно от Вас.
С ностальгией вспоминаю, как на машине ехали с папой (когда он был жив) на работу и слушали ваши видео.
как раз недавно прочитал по рекомендации одного из преподавателей. Отличная книга. А сейчас ещё и видео от Вас с пояснениями, просто пушка-гонка:)
Спасибо большое за такие видео. Всегда не хватало терпения смотреть ваши длинные лекции про клинкод. Так что приходилось искать в интернете коротко обо всем. А этот формат очень правильный и мне нравится
Здравствуйте, Сергей Немчинский, спасибо Вам за вашу работу! Я смотрел уже некоторые другие ваши видео и нахожу их и это видео весьма полезным! Удачи Вам в Ваших проектах!!!
Только прочитал Clean Code, и вы сразу выпустили ролик про него)
11:01 Получилось даже лучше, чем вся "модная" музыка
Спасибо за полезную информацию. Как раз то, что я искал.
Я пару месяцев назад начинал её читать. Добрался до функций и потом отложил её. Так что я за последующие видосы! Если уж не читаю, то хоть послушаю)
как всегда интересно слушать.... лайк 👍
Спасибо, очень интересно, жду продолжения
Тема очень актуальная. Го еще)
Спасибо за годный и полезный контент. Все супер. В этом плане, к примеру в SAP ERP на ABAP печалька. Длинна названий объектов (классов/методов/переменных и пр.) ограничена. Кроме того, у многих заказчиков в регламентах префиксы, чуть ли не основное требование. К примеру для класса префикс может быть таким: Z(пользовательская область имен)CL(префикс класса)NN(модуль)_NNNN(номер разработки)_. И выглядит это примерно так: ZCL_HR_D501_*. Т.е. 12 знаков только по регламенту.
Сергей, спасибо большое за новую рубрику! Очень интересно и познавательно:)
Спасибо.
Читал много книг Мартина и других, повторение полезно.
Спасибо большое за поддержку и понимание ❤️🔥❤️🔥❤️🔥
Придумывать название переменных это целое искусство
Послушал и сразу же исправил название класса, ответственного за навигацию, с глагола на существительное.. ))
Здесь как и в остальных областях общественных отношений. Если думать об удобстве других людей, а не только о своём, то эти рекомендации будут почти очевидны.
Все мы - человеки.)
Кайф формат! Всё ещё отличный канал) На работе учит тимлид, по дороге Сергей. =)
Круто! Жду продолжения....
Очень интересно, так держать, спасибо огромное
Спасибо за видеоролик
Как раз у меня скоро семинар по книге Чистый Код )
Супер. Спасибо!
По Swift'у Эппл рекомендуют совсем длинные названия (eg. var enterUserFirstName, func clickToSubmitLoginForm, class vehiclesInEuropeanUnion). Позже привыкаешь и читаешь как цельное предложение (на самом деле просто привыкаешь). Удобно. Постепенно сокращаешь до самых нужных ключевых слов кэмэлКейсом и крутяк (eg. var userFirstName, func clickToSubmit, class vehiclesInEurope).
Продолжайте по теме clean code
Очень интересно, очень полезно
дякую за відео, адже зараз (при відсутності достатнього досвіду) дійсно складно з назвами на всіх рівнях, але "батя, я стараюсь")
Как enterprise разработчики называют своих собак?
WoofServiceHelperManager
Шикарное видео, спасибо. А ещё улыбнул значок орды на футболке в рекламе))))
Спасибище огромное!
Про "не используй сокращения" и "не используй лишний контекст". Я программирую на С и там если ты не назовёшь свой тип PWM_HeaderTypeDef (что нарушает оба этих правила), то попытка глобально использовать твой тип в большом проекте вызовет кучу вопросов у того, кто будет потом читать код. А что делает этот тип? Для чего он? И так далее.
Наконец, годнота
Как хорошо что в пайтоне есть встроенный мощный докстринг. Конечно, нужно писать так что бы всем было понятно из названия что оно делает... Но в докстринг можно и пример запихнуть.
Ну и везде где можно проставлять анатации (аля типизация языка). Тогда не нужно делать проверку типа входящих данных. Да и IDE подсветит что функция ожидает, и что вы на выходе получите.
Хороший видос, спасибо
У меня был недавно выбор: или разбираться, почему исходники с гитхаба на TypeScript не компилятся или расковырять и переделать минифицированный код готового приложения. Второй вариант оказался проще :).
То чувство когда назвал класс ИндексКонтроллер
А как вы относитесь к стандартным сокращениям типа tmp
Спасибо большое:)
Где же знаменитое 2-хчасовое видео? Столько раз на него ссылались.
Интересно! Построим стайл гайд команды на основе видео)
супер, такова была идея :)
Сергей, сделайте, пожалуйста, видео (или серию видео) о том, какие продукты сделаны украинскими айтишниками для Украины. Да, я прекрасно понимаю, что в основном все идет для американских и европейских компаний, там платят больше и т.п. Тем не менее, у нас столько талантливых программистов, что не может не быть своего чего-то классного, мирового уровня. Очень бы хотелось показать дочери, а то пока у нее в голове только выучиться здесь и уехать
Как называть? Так, чтобы никто не догадался!
Чётко 😆
Роберт Мартин в помощь)
как раз пишу задание по clean code из курса java spring. соответственно, дальше про декомпозицию на пальцах хотелось бы)
11:58 на фоне уже везут программиста, который пришел в команду где так делают.
Книгу читал и то двухчасовое видео смотрел. Но все равно видео было полезно, так как узнал почему же медведя зовут медведь
Пользу от этого видео сложно переоценить
@Sergey Nemchinskiy
А как правильно называть классы в паттерне команда?
DoSomething, как я понял, не годится, а DoSomethingAction норм?
А почему бы не просто something?
SendData? ExecuteShell?
Хотелось бы видео о том, когда лучше применять mvc, а когда mvt
По поводу "не кодируйте" 12:25
А что скажете про использование переменных i18n, l10n и g11n?
Это устоявшиеся сокращения, которых единицы. "Не кодируйте" - про частое использование в коде импровизированных замен и сокращений.
А что все это значит? :)
@@maksk5017
i18n - интернационализация.
l10n - локализация.
g11n - глобализация.
@@vm_raccoon Воу, я не знал, спасибо, но я думаю это не лучшая идея для наименования.
Хотел поставить лайк, а он уже стоял
Ролик надо было назвать 10 способов вывести сеньора из себя если ты Джун
В нумерации пропущена 9, 17:08 - одна вещь - одно название (8)
19:51 - включайте названия в контекст (10)
Лайк за Сильвану)
Мое самое нелюбимое слово из области бухгалтерии, которое непонятно как перевести для нейминга - "ведомость". Есть и другие слова: отработки, начисления, ... Придумывание названий для таких вещей иногда бывает сложнее написания самой логики.
А когда "лещадность" (одна из характеристик щебня) в предметной области. И заказчик русскоязычный. Во я запарился тогда перевод искать :)))
Префиксы в названиях классов, вероятно, лепят, когда пишут код без неймспейсов.
Можно было бы 2 лайка поставить, я бы поставил)
Давно не смотрел видео с Сергеем. Не узнал его. Сергей, что с твоей внешностью? Ты помолодел!
усы сбрил :)
нужно больше примеров, а то иногда есть 1, а иногда даже 1 нет
В clean code достаточно примеров
Глаголы вообще нельзя использовать для наименования классов? А если они будут вместе с существительными, например, UpdateOrderInCache или DatabaseQueryBuilder?
Может смысл начинать названия классов на Server в том, чтобы выскакивал список подсказок при начале набора? Иначе нужно всегда помнить названия классов, по крайней мере их начало.
Слушаю видос, дописывая класс PacketBuilder))
Вот хоть убей, не вижу ничего плохого в этом названии. Мне даже со своей колокольни уже примерно понятно, что там внутри.
Плюс я почитал комменты под двухчасовым видосом и там есть такие же мнения на этот счёт. Имхо слепо следовать правилам тоже плохо. Может мне конечно недостаточно опыта, но можно назвать класс очевидно, в виде того же PacketBuilder'a, а можно придумать какую-нибудь дрисню, которая только запутает окончательно
@@infinitynoir5441 Ну я ничего лучше не придумал для класса, который из данных формирует пакет для отправки (добавляет служебную инфу к данным) и из принятой побайтово инфы формирует пакет, проверяет его корректность и отдаёт данные из него. Ну и кода там 100 строчек, всё банально.
Всё ещё Сергей Немчинский 😄
Спасибо!
заказал Мартина Чистый код
Очень полезная информация. Пойду свои краказябы менять. Только вот вопрос возник... Насколько длинные названия методов, классов допускается..
я считаю, что не более че 3 слова
++
Годно, полезно.
А можно узнать как правильно рефакторить?
private int i;
public int i1;
public int peremennaya_dlya_metoda_pereopred
🌚
var zashkvar = 1.0;
Как бы это парадоксально не звучало, но третья переменная самая понятная(Ясно для чего она нужна), а первые две реально BullShit. У нас в проекте есть классы в которых сотни методов и 15 тыс строк кода и поверь пусть имя будет длиным чем коротким и хз что и в каком контексте оно используется, овер дохера ошибок из-за путаницы контекста смысла переменных.
@@Proto_Astartes имхо: если у вас в классе СОТНИ методов,... че то не то вы делаете...
@@БендерЗадунайский-щ9ы если проект уровня андроид приложения , то я с вами согласен, но т.к. у нас проект уровня ентерпрайз и несколько десятков клиентов обслуживает наш проект и у каждого своя специализация , то часть методов используется для одного клиента часть для другого.
@@Proto_Astartes Судя по описанию их стоит разнести на разные классы
Так а в чем проблема с классами контролл-ерами, рид-ерами и менедж-ерами?
Как их называть рекомендуется?
вот реально. Если класс не содержит состояние или почти не содержит, и только что-то делает, то как его еще называть!?
Thanks, it was interesting
Пошел смотреть двухчасовое видео, которое никто не смотрит😁
удачи :)
Я когда слышу, что это все еще Сергей Немчинский, аж выдыхаю с облегчением
З тезою про закінчення '-er' не згоден. Це вже надмірний пуризм. class User ще нікому ніколи не зашкодив, а перейменовування Adapter чи Wrapper у щось інше лише зменшить читабельність коду.
Нужны примеры
1 вопрос, кто те люди что ставят дизлайк, что сказал Лис не так? По мне все по существу, и правильно. Может я чего-то не понимаю? в комментариях на данный момент не заметил не одного сообщения, что в ролике было не верно. странно...
когда ютуб будет делать чистку видосов, это видео не удалять.
Здравствуйте, Сергей. В связи с последними новостями об суверенном интернете, можете, пожалуйста, сделать на сайте пакет оффлайн уроков, которые можно будет изучать без интернета?
это вам не поможет, мы в Украине :)
В 21 год узнал, что медведь от "ведает где мед"...
items = []
👍 numItems = items.length
❤ itemsLen = items.length
-----
Интересно, сколько адептов разных подходов. Голосуем эмодзями
По поводу поиска по названию, а то пример показался невыразительным... Мы в нашей компании в Spring именуем классы начиная с домена нп User..., Organization..., System..., BussinesUnit... и заканчиваем типом нп ...DAO, ...Repository, ...Service, ...Controller, ...DTO и довольно легко все ищется))