Как писать чистый код

Поделиться
HTML-код
  • Опубликовано: 17 май 2024
  • Узнать о Java Bootcamp: www.faang.school/?...
    В этом ролике я хотел бы поделиться с вами некоторыми правилами, которым я стараюсь следовать, чтобы писать действительно чистый код.
    Буду рад ответить на любые вопросы насчет обучения или карьеры, дать некоторые советы. Пишите!
    00:00:00 - Приветствие
    00:00:33 - Книжка
    00:01:14 - Java Conventions
    00:08:31 - Имена
    00:13:02 - Методы: организация
    00:15:00 - Методы: правила работы
    00:19:51 - Комменты
    00:22:21 - Исключения
    00:24:55 - Заключение
    Обучение:
    Java Буткемп: www.faang.school/?...
    Курс "Алгоритмы с нуля": www.faang.school/algorithms-f...
    Курс "Подготовка к собеседованию в IT": www.faang.school/product-inte...
    Java Magics. Бесплатный курс для начинающих: www.faang.school/java-magics?...
    Социальные сети:
    Instagram: / faang.school
    LinkedIn: / vlad-mishustin
    ВК: faang.school
    ТГ-канал "Road to FAANG": t.me/fakng_eng
    ДИСКЛЕЙМЕР
    Любая информация, высказанная в данном видео является моим личным мнением и никак не относится и не отражает позиции моего работодателя или любых связанных со мной организаций.
    Любой код, документация, логи или диаграммы, показанные в видео, являются моими личными макетами, написанными/созданными в мое свободное время на своей собственной машине, конкретно для демонстрации в роликах, никак не относясь и не используя интеллектуальную собственность моего работодателя или любых связанных со мной организаций.

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

  • @naviodinson
    @naviodinson Год назад +261

    Буду ждать ревью от Влада Тена

    • @meritocratik
      @meritocratik Год назад +2

      ну, тут ни придирешься уже, общеизвестные конвенции

    • @Arnius
      @Arnius Год назад +4

      Все фишки взял с ChatGPT

    • @naviodinson
      @naviodinson Год назад +23

      когда накал страстей перейдет на новый уровень, надо будет сделать батл по leetcode. Кто-то из них окажется Оксимироном а кто-то останется Джонни Боем. Вместо Ресторатора будет Lex АйтиБорода или предлагайте ваши варианты!

    • @meritocratik
      @meritocratik Год назад +1

      @@naviodinson Ильин

    • @naviodinson
      @naviodinson Год назад +9

      @@meritocratik если брать непредвзятого, то S0ER

  • @anatoliyge8555
    @anatoliyge8555 Год назад +19

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

    • @ViktorAr2023
      @ViktorAr2023 Год назад +6

      так мошеники всегда так дделают, жалко что найдутсяя те кто у него купит обучение((((

  • @pincode7983
    @pincode7983 Год назад +24

    За_клинкод_пояснятор новая ачивка -нужно срочно добавить в презентацию цыганского курса

  • @eikolyakov
    @eikolyakov Год назад +11

    Надо сделать курс, как уничтожить свою репутацию за 21 день :) цену вы знаете

  • @sizzam_god
    @sizzam_god Год назад +17

    Купил курс за 300к, взял в аренду пару кладовок. Буду там сейчас печатать сертификаты на массаж, думаю дело пойдет

  • @Podlec-hf2gz
    @Podlec-hf2gz Год назад +21

    Видос платный? куда 300 тыщ переводить?

  • @YARUSKIY
    @YARUSKIY Год назад +22

    Пожалуй лучше программирования Владик может похвастаться искусством повествования успеха, мировых целей, правильной жизни и прочего, без чего его удивительный курс не будет продаваться

  • @ReAgent003
    @ReAgent003 Год назад +10

    Кто от Влада Тена?!

  • @pavlovn
    @pavlovn 5 дней назад

    Влад - отлично! Ты очень сильный специалист!

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

    Большое спасибо! Всегда приятно и полезно посмотреть! :)

  • @kulikoffAS
    @kulikoffAS Год назад +7

    имя класса с большой буквы! вау! вот это фаанг уровень! возьми мои 300к срочно!

  • @alisherberdiev9221
    @alisherberdiev9221 Год назад +20

    В самом начале видео 1:30 неправильно назвал стиль написания кода
    camelCase
    PascalCase
    Классы - всегда PascalCase

  • @TheVenelo
    @TheVenelo Год назад +7

    Новая Блиновская в деле

  • @xozboss
    @xozboss Год назад +8

    А че в телеге комменты закрыты?

  • @marapohjoinen5643
    @marapohjoinen5643 Год назад +1

    Класс, теперь захотелось что-нибудь написать, спасибо

  • @alexwalsh38
    @alexwalsh38 Год назад +42

    Не думаю что автор видео действительно опытный разработчик, тут по сути под чистую пересказ книжонки (кстати не самой лучшей) а в процессе работы появляется куча своих по настоящему помогающих способов организации кода, оставляйте плюс под моим комментом и я сам запишу ролик где поделюсь своим опытом и расскажу как стоит мыслить при написании кода, как определить рамки которые не будут позволять вам писать лапшу и как в целом проектировать фичи таким образом что-бы после реализации не рефакторить их от нескольких часов до суток, а не 20+ минут рассказывать про простейшие конвенции которые даже ПМ знают =))

    • @brater1537
      @brater1537 Год назад +3

      +

    • @tiy2000
      @tiy2000 Год назад +2

      +

    • @rulonoboev2851
      @rulonoboev2851 Год назад +2

      +

    • @The_Dream_Person
      @The_Dream_Person Год назад +7

      Автор данного ролика попал в первый выпуск Влада Тена о инфоцыганах, так что вы верно подметили по поводу уровня данного "учителя"

    • @The_Dream_Person
      @The_Dream_Person Год назад +2

      +

  • @DLifee404
    @DLifee404 Год назад +4

    Найс инфопродукт бро 🤝

  • @yurche688
    @yurche688 Год назад +4

    Посмотрите прожарку курсов Мишустина от Влад Тен )))

  • @step8516
    @step8516 Год назад +9

    Как я понял весь этот канал был создан для продажи курсов …

  • @andrey_hramyka_S
    @andrey_hramyka_S Год назад +5

    Когда будет битва 2 Владов ?

  • @user-iv5ri9yw6e
    @user-iv5ri9yw6e Год назад +6

    Балдежная музыка) Я как будто в "Как достать соседа" играю

  • @whu.9163
    @whu.9163 Год назад +7

    Я уже было обрадовался, думал "кайф, неужели код от Влада посмотрим, да еще и по клин коду. Даже интересно, что еще про него рассказать можно. Но раз Влад видос запилил - должно быть годно же..". Я и вкуснях набрал под просмотр и на выходные видосик отложил... А тут "не бросайте коды ошибок - рейзите ексепшены...", "давайте исключениям понятные и корректные имена..", "форматируйте код, смотрите тут 3 кнопки есть". Что это вообще, ахахахах? Я рили думал он рофлит.
    Реквестирую видос по установке IntelliJ IDEA на компудахтер.

    • @ViktorAr2023
      @ViktorAr2023 Год назад +1

      да он пересказал книжку и то не правильно))))

  • @user-cs2bs4fh6t
    @user-cs2bs4fh6t Год назад +4

    Нормально так тебя прожарили, четко

  • @shedontlove8490
    @shedontlove8490 Год назад +14

    А теперь серьёзный вопрос: зачем новичку смотреть этот ролик, если Кэти Сиерра и Бёрт Бейтс ещё в 2003 году рассказали про это в "Head First Java" более детально, подробно, и понятно? Я уже не говорю про "Clean Code" Роберта Мартина.
    Автор ролика пересказывает материал одной из этих книжек, но даёт этот материал в слишком сжатом и скомканном формате. Без негатива, это просто факты.

    • @johnsnow2810
      @johnsnow2810 Год назад +4

      Потому что они книги не читают, а вместо этого смотрят видосы. Пусть хоть так просвещаются.

    • @ArthurMudrick
      @ArthurMudrick Год назад +7

      Потому, что он инфоциган -- берёт уже готовые вещи и пересказывает их так, будто бы это его мысли.

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

      @@ArthurMudrick +++ а это заметно по его манере пересказа и как он показывает

  • @yuriye9792
    @yuriye9792 Год назад +2

    Влад, привет, а ты в канале в телеграмме отключил комменты ? А то интересно почитать разные мнения, а комментов нет(

  • @monresu
    @monresu Год назад +18

    "Чистый код" - Роберт Мартин. Весь видос - краткое содержание книги. XD.

    • @aesaQ
      @aesaQ Год назад +1

      Это база

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

      так он же сказал что видео основан на этой книге)

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

      Это не так) Ведь он сказал про видео и книгу на 0:53 , что он "собрал выжимку из самых главных принципов описанных в этой книжке", а не то, что он всю книгу сюда засунул.

  • @user-mt2xd6dq4y
    @user-mt2xd6dq4y Год назад

    Влад, как на счет ревю книги Егора Бугаенко "Elegant Objects"?

  • @yalmeme
    @yalmeme Год назад +15

    Смотрю канал уже давненько и обычно согласен с автором, но про "разбивать методы на части так, чтобы они занимали не больше 7-8 строк" - это, простите, одна из САМЫХ глупых вещей которые я слышал в своей кодерской жизни )) Мне кажется любому очевидно что это только увеличит количество кода + значительно ухудшит его читаемость. И почему не 5 и не 10, не 2 или 20 строк )) И даже если где-то такой специфичный подход и применяется и по какой-то причине делает результат лучше, то он уж точно не подойдет для большинства. Я бы такого разраба, который разбивает цельные осмысленные методы на мелкие куски только ради соблюдения правила "7-8 строк", уволил бы в первый день.
    пс: написал не холивара ради, но для всех тех, кто посмотрел этот отрывок и начал сомневаться в своей адекватности ) Нет ребят, с вами все хорошо, можете писать и 10 и 100 строк в методе, если он выполняет четкую обособленную задачу и логически не требует разбиения. пис ✌

    • @bloga5566
      @bloga5566 Год назад +2

      Простите, но нет, метод на 100 строчек это не окей, такой метод уж лучше разбить на 2-3 метода

    • @yalmeme
      @yalmeme Год назад +1

      @@bloga5566 ну 100 может и стоит, но явно не по 7 строк ) И то далеко не всегда. В том то и дело, что все зависит о конкретной ситуации и цели, такие вещи не могут и не должны преподноситься как догма, это только ухудшит качество кода. В чем суть любого метода? Производить некое действие. Если действие атомарное и ни с чем другим не связано, получает А на вход и отдает Б на выход, логически разделения не требует и тд - то какая разница сколько в нем строк, это к делу ВООБЩЕ никакого отношения не имеет =)

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

      @@yalmeme Как правило, если метод 100 строчек кода, действие вообще не атомарное и его можно разделить хотя бы на два метода, это уже лучше будет восприниматься, легче будет понять, что происходит вообще, так что методы по 100 строчек кода, это плохо, но я не спорю, методы по 7 строчек еще хуже

    • @whu.9163
      @whu.9163 Год назад +1

      про 100 строк орнул. Но да, какой-то лимит на конкретное колличество строк в методе - кринж. Да, он должен быть максимально коротким но выполнять свою единственную обязанность

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

    Спасибо

  • @user-ww1ur8ww8r
    @user-ww1ur8ww8r Год назад

    Любимый задрот ❤

  • @AsL-bp1gb
    @AsL-bp1gb Год назад +8

    А как так случилось ,что из простого парнише с большими целями. Ты стал инфоцыганом 😢😢 Чувак вроде неплохо начал и говорил что якобы на канале нет рекламы 😅

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

      ведать в долгах

    • @whu.9163
      @whu.9163 Год назад

      @@goliafffff так там процент от зп, а не какая-то огромная сумма сразу, наличкой и купюрами по 10 баксов

    • @AsL-bp1gb
      @AsL-bp1gb Год назад +2

      @@goliafffff он ж вроде собрался на луну 🤣 .С его слов , космос он уже покорил 😁

  • @yundon8182
    @yundon8182 Год назад +1

    Спасибо_теперь_буду_писать_только_чистый_КОД

  • @volodiaagadjanov7087
    @volodiaagadjanov7087 Год назад +2

    Какой то гачи в лоускильном программировании на Java.
    P.S. 7:38 как ты мог привезти такой баг на прод, дуд?) петпроект для бабушки делал?

  • @kirillporozov3602
    @kirillporozov3602 Год назад +1

    Как раз недавно задумался о том, когда возвращать Null, а когда бросать исключения. И тут твой ролик! Отличный материал, буду пересматривать

    • @heavyjs
      @heavyjs Год назад +2

      Пожалуйста, будьте осторожны с исключениями. По сути своей они являются облагороженной версией goto - игнорируют return, а в худшем случае весь “освобождающий ресурсы” код, их не видно в сигнатурах функции и невозможно понять в каком месте они будут обработаны, так как они могут пробивать уровни вызова насквозь.
      В видео показано показано два типа событий, где можно выкидывать исключения: исключения для валидации и null в штатной ситуации. С моей точки зрения исключения для третьего типа - непредвиденных ситуаций, которые не позволяют продолжить работу. Это может быть недоступность сервиса без которого невозможно продолжить работу, непредвиденное исключение из используемой библиотеки итд.
      К сожалению ни в java, ни в c# на котором я пишу, из коробки нет нормальной альтернативы исключениям для того чтобы вернуть валидационную ошибку из метода. Можно пользоваться библиотеками типа fluent-result (для java есть видимо порт с c#), но в рабочих условиях это редко возможно.
      Практический совет здесь - старайтесь выкидывать исключения реже, но если все-таки приходится, то описывайте их в документации к методу. Быстрый поиск говорит, что для JavaDoc это @throws тэг.
      Без этого советы видео бесполезны -- пользователи вашего метода будут настолько же удивлены исключениям, как и NullReferenceException о котором предупреждает автор. Их будет легче отловить чем nre, но более приятным падение прода это не делает. Особенно актуально если ваш код распространяется как библиотека и у пользователей нет доступа к исходникам.
      Прошу прощения за длинный текст, но все тут после видео Влада Тена, а вы с честно учитесь. Удачи!

  • @walcermelodia
    @walcermelodia Год назад +1

    23:27 на си никогда не писал?)
    Возвращает код. А на входе параметр в который записывает результат.

  • @zxcfAIL
    @zxcfAIL Год назад +3

    Привет, величайший🦾❤️

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 3 месяца назад

    В 2005 Java пиарилась тем, что может в локализованные названия классов и методов. Типа, пишешь названия класса прям иероглифами.

  • @dmitrynevozhay9825
    @dmitrynevozhay9825 Год назад +2

    Кол-во строк в методе не больше 7?! Это только для игрушечной предметной области на бэкенде возможно. Если в объекте куча полей, и для какого-то атомарного действия с этим объектом нужно разные ветки логики реализовать в зависимости от разных комбинаций этих полей, то запросто сотни строк кода выходят. Да одна простая фильтрация с сортировкой стрима может быть легко на 10 или 20 строк. Метод должен быть максимально коротким и ясным, но длина определяется не одним желанием, но и сложностью логики. Технически можно конечно нашинковать код на мелкие кусочики, но если эти кусочки не имеют прикладного смысла, и могут только в комлекте вызываться, то это не упрощение а усложнение под видом упрощения.

  • @DaymonYESANDNO5
    @DaymonYESANDNO5 Год назад +2

    Когда можно будет поступить в фаанг школу😅

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

    В этом уроке владик расскажет как делать чистый код чисто на конвенциях

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

    nice

  • @yourownazog8069
    @yourownazog8069 Год назад +2

    А что делать, если мне нужно передать в метод 5 параметров, из которых только 2 связанны между собой? С EmailParams пример легкий, потому что все те параметры связаны между собой

    • @user-ob6od8op7s
      @user-ob6od8op7s Год назад +1

      Создать record MyMethodArgs и пометить lombok.Builder
      Ну или писать на котлине где есть именованные параметры

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

      @@user-ob6od8op7s это всё здорово, но я пишу на C#))

    • @user-ob6od8op7s
      @user-ob6od8op7s Год назад

      @@yourownazog8069 Named arguments в шарпах есть

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

      @@user-ob6od8op7s да, есть. Но при чем тут они? Я хочу вместо 5+ параметров передать 1 или 2 объекта, а не делать список параметров более verbose

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

      @@ivan-ivanov-ivanovich а сам-то ты чего не в окопе? меньше 18 еще?

  • @user-jt4tl7sx4w
    @user-jt4tl7sx4w Год назад

    Попробуй записывать звук отдельно и накладывать на видео при монтаже, сокращает размер видео и ролик становится более информативным

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 3 месяца назад

    Если нельзя возвращать null, зачем в Java ссылкам присваивать null вообще? 😅

  • @sergey53689
    @sergey53689 Год назад +1

    UpperCamelCase и lowerCamelCase

  • @johnsnow2810
    @johnsnow2810 Год назад +2

    Спасибо, все верно.
    Со всеми согласен кроме количества строк в методах. Уж слишком это категоричное и глупое правило "чистого кода".

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

    Всегда полезный контент

  • @ylcsl4378
    @ylcsl4378 Год назад +6

    А вот и неа, это не camelCase, это PascalCase

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

      Есть ещё варианты UpperCamelCase и lowerCamelCase.
      Учитывая, что это всё фольклорные названия, и на них нет задокументированных стандартов, нельзя говорить, что одно название правильное, а другое нет.

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

      @@vryaboshapko есть конвеншны нейминга которые никто не отменял

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

      @@ylcsl4378 да, есть локальные договорённости, но нет документов уровня RFC или подобного. То есть, пока мы общаемся в рамках узкой области, скажем, обсуждаем библиотеку сериализации, то да, можно говорить, что какой-то набор терминов правильный, какой-то нет. А в общем случае будет честнее говорить лишь о синонимах.

  • @johndoe20975
    @johndoe20975 Год назад +1

    чат ге бе те)

  • @Coopersbush
    @Coopersbush Год назад +1

    следующая локация будет в туалете, т.к. локации для съемок похоже закончились

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

      в Москве много мест можно аренду на день взять. Дофига. Так что он может успешно себя выдавать за миллионера)

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

    Лол а как потом тестировать private методы?) С помощью рефлексии?

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

      Тестируй только публичные методы ведь они используют приватные.

    • @walcermelodia
      @walcermelodia Год назад +1

      @@johnsnow2810 тогда процент code coverage будет стремить к нулю

    • @RelentlessDebique
      @RelentlessDebique 11 месяцев назад

      @@walcermelodia приватные методы так или иначе вызываются публичными. Если нет - значит просто никогда не вызываются никогда.

  • @igorSiletsky
    @igorSiletsky Год назад +6

    Тэн, топ!!!!! Отписался

  • @eugenederevyanko3351
    @eugenederevyanko3351 Год назад +2

    Моментами уж крайне категоричные высказывания.

  • @cleverscript
    @cleverscript 7 месяцев назад

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

  • @abbze8272
    @abbze8272 24 дня назад

    Ну это для совсем домохозяек, решивших изучить программирование.
    Тем более, обо всем этом дядюшка Боб рассказал давным давно.

  • @servolskiy2281
    @servolskiy2281 Год назад +1

    Checker, Validator, Manager, getResult... На чистый код не похоже, скорее дурнопахнущий )))

  • @hgfdtj3151
    @hgfdtj3151 5 месяцев назад

    Нам мало! Ещё давай

  • @someoneWhoSpeaksAbout
    @someoneWhoSpeaksAbout Год назад +18

    Дарова, инфоцыган

  • @finance228
    @finance228 Год назад +2

  • @ilya_konyakhin
    @ilya_konyakhin Год назад +3

    CamelCase, pascalCase, snake-case, kebab_case

    • @user-hk3jl4cj9s
      @user-hk3jl4cj9s Год назад +6

      PascalCase
      camelCase

    • @vryaboshapko
      @vryaboshapko Год назад +2

      Только ты перепутал snake_case и kebab-case. Первый как змея стелется по земле. Второй как кебаб на шампуре.

    • @humancorrector-473
      @humancorrector-473 Год назад +4

      @@vryaboshapko всё перепутал блин)

    • @ilya_konyakhin
      @ilya_konyakhin Год назад +1

      Не выкупили) пересмотрите начало видоса про наименование классов, после этого я вырубил

    • @jetsker6388
      @jetsker6388 Год назад +2

      bAnAnCaSe