7 примеров запаха кода (code smell). Примеры на PHP.

Поділитися
Вставка
  • Опубліковано 4 гру 2024

КОМЕНТАРІ • 45

  • @RonRom
    @RonRom 3 роки тому +2

    Я думаю, что мы находимся на начале одного из самых популярных каналов в сфере веба в снг

  • @fsdf443fdfe
    @fsdf443fdfe Рік тому

    спасибо, очень понятно и структурировано. А самое главное, как часто бывает - не занудно!)

  • @ЕвгенийУлитин-ц1й
    @ЕвгенийУлитин-ц1й 3 роки тому +10

    Нужно больше рефакторинга. Видео плюс. Хочу ещё!

    • @soversus5374
      @soversus5374 8 місяців тому

      Продукт будет или только бесконечный рефакторинг? ) К 85 годам увидим продукт? )))

  • @codingfox
    @codingfox 3 роки тому +5

    Думал скажешь банальщину из книжек, но я услышал для себя много неочевидных моментов) Спасибо

  • @origami6700
    @origami6700 2 роки тому

    Очень круто, очень годно объясняете!

  • @userfromworld
    @userfromworld 3 роки тому +13

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

  • @myloveiseternal3032
    @myloveiseternal3032 Рік тому

    Ох, я только что узнал, что от моего кода, видимо, попахивает) Спасибо за видео. Очень информативно)

    • @torburgmax
      @torburgmax 11 місяців тому +1

      не больше, чем от кода автора)

    • @soversus5374
      @soversus5374 8 місяців тому

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

  • @Alexeykhrischatyy
    @Alexeykhrischatyy 2 роки тому

    Красава, все правильно и четко объяснил

    • @torburgmax
      @torburgmax 11 місяців тому

      ничего правильного только)

  • @bizargz6152
    @bizargz6152 3 роки тому

    Интересно, ждемс обсуждения

  • @yusuperproactive9568
    @yusuperproactive9568 3 роки тому +1

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

  • @electric_bot
    @electric_bot 2 роки тому +3

    Очень толково, информативно и понятно. Спасибо. Хочу спросить, когда лучше использовать объекты, а когда простые функции?

    • @torburgmax
      @torburgmax 11 місяців тому

      если того требует применение абстракции

  • @mitivil1134
    @mitivil1134 Рік тому

    Хороший урок!
    Извините, но я бы посоветовал использовать метод setAge(int $age) {}
    Это хорошая практика на мой взгляд.
    Упрощать код всегда хорошо, но и в частности наименований.
    Сэкономит ещë 2 секунды.

    • @torburgmax
      @torburgmax 11 місяців тому

      это просто плохая практика

  • @statdotastaff6193
    @statdotastaff6193 3 роки тому

    Может будет интересно рассказать в следующих роликах
    Зачем нужен ООП и всегда ли нужно прибегать к объектам?
    Коротенько предыстория, юзаю CMS, реализованы классы работы с БД (вкинуть и взять из бд), шаблонизатор (завернуть данные по шаблонам), кэш. Дописываю свои модули, юзаю исключительно обычные функции, в функциях вызываю другие свои функции и дефолтные классы цмски и не понимаю как, а главное зачем мне новые классы, инкапсуляции и прочие принципы ООП?

  • @soversus5374
    @soversus5374 5 місяців тому

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

  • @vugpgu
    @vugpgu 9 місяців тому

    12:55 нерівнозначна заміна. У першому випадку завжди буде помилка, у другому є сценарій без помилки

  • @acerlmt
    @acerlmt 2 роки тому

    15:55 а класс какой длины? Бывает встречаю по 2к строк и даже по 4к.. Как по мне - лучше небольше 1к, больше - уже сложно ориентироваться

    • @torburgmax
      @torburgmax 11 місяців тому

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

  • @Владимир777-о9с
    @Владимир777-о9с Рік тому

    Здравствуйте, подскажите как вы считаете стоит ли забивать Контейнер классами хелперами которые содержат например один статический метод (который просто умножает приходящие к нему числа)?

    • @АндрейШестаков-н6м
      @АндрейШестаков-н6м  Рік тому +1

      Если метод статический, то добавление классов в контейнер сомнительное занятие. Выгода не понятна. Только, если есть цель использовать нечто похожее на фасады (facade) в laravel, но вроде вопрос не в этом ключе.
      В общем, обычно так не делаю сам. Можно обращаться к статическому методу напрямую, если мы говорим про PHP.

    • @Владимир777-о9с
      @Владимир777-о9с Рік тому

      интересно ваше мнение, надеюсь ответите не забудете)

    • @АндрейШестаков-н6м
      @АндрейШестаков-н6м  Рік тому +1

      @@Владимир777-о9с Если метод статический, то добавление классов в контейнер сомнительное занятие. Выгода не понятна. Только, если есть цель использовать нечто похожее на фасады (facade) в laravel, но вроде вопрос не в этом ключе.
      В общем, обычно так не делаю сам. Можно обращаться к статическому методу напрямую, если мы говорим про PHP.

  • @torburgmax
    @torburgmax 11 місяців тому

    что поменялось в примере на 6-й минуте? мы защитили класс от изменений? нет. так же можем менять, но теперь через методы. мы добавили слой абстракции? да, но зачем? практика сеттеров и геттеров в таком примере определенно плоха, наши методы не обеспечивают ничего, кроме более легкого поиска в проекте.
    понравилось, что в следующем примере объясняется про солид, и на тебе - логин, который валидирует введенный текст, что нарушает первый принцип. да еще и без комментария о том, как работает регулярка (комментарии до этого мы же считаем не нужными). про следующий пример, который пользователя регистрирует по логину я уж молчу)
    в последнем примере тоже красота. красивые слова об open-closed, дескать создадим отдельный класс, а не массив, чтобы не менять функцию логина. ну создали, ок. а если в классе ошибки появится еще какое-то поле, мы точно не изменим метод логина? изменим) опять де молчу про то, что в классе Error, содержится переменная error, которая может быть true или false.
    надеюсь, что за два года с момента публикации этого ролика, автор стал чуть ближе к пониманию того, такое солид и ооп

    • @vugpgu
      @vugpgu 9 місяців тому

      Інкапсуляція. Код як документація

  • @soldier529
    @soldier529 3 роки тому

    Андрей, спасибо за то, что делитесь опытом, очень познавательно, современно, не только по этому ролику сужу.

  • @Волчок-з1с
    @Волчок-з1с 2 роки тому

    12:55 Так неправильно переписан пример :) В первом варианте у тебя метод всегда возвращает строку, а во втором может быть как строка, так и void. Если бы соблюдалась строгая типизация, ты бы тут же словил эксепшн.
    В остальном, всё гуд, новичкам будет полезно взять на заметку.

  • @mrfriz
    @mrfriz 3 роки тому

    Это инфа из книг? Посоветуй первоисточники, откуда ты берёшь инфу

  • @maximlukin5545
    @maximlukin5545 3 роки тому

    Спасибо вам за ролик!!! Сам пишу на php, а подобных видео не хватает.

  • @pragmatik3353
    @pragmatik3353 3 роки тому +5

    Идеально. Еще бы хотелось что-нибудь связанное с тестированием послушать от тебя. Codeception или PhpUnit. Как правильно организовывать интеграционные тесты, что есть фикстуры, стабы, моки и тд.

  • @darknet106
    @darknet106 3 роки тому

    Почему бизнес логика в сервисах а не в сущностях?

  • @ЭдуардЕвдокимов-й1о

    Крутое видео. Полезная инфа. Хотелось бы услышать от Вас примеры применения шаблонов проектирования из реальной жизни (без котиков и собачек). Выучил большинство шаблонов, вроде все понял, а при решении задач трудно начать внедрять их. P.S. Очки лишние.

    • @АндрейШестаков-н6м
      @АндрейШестаков-н6м  3 роки тому

      Благодарю. Многие паттерны уже реализованы на уровне фреймворков и библиотек, но в верхне-уровнем коде тоже приходится применять. Материалов на данную тему в сети достаточно много, посмотрю на досуге, может какие-то темы еще не освещены. Спасибо!

  • @Kopatych69
    @Kopatych69 3 роки тому

    Неплохо, спасибо. Говнокоду бой !!!

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 9 місяців тому

    Есть нормальное слово: "говнокод". Вот тут какие-то запахи ... Прям слушать тяжело.
    Говнокод! Вот

  • @sashasss7114
    @sashasss7114 2 роки тому

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

    • @artemkonyukhov6635
      @artemkonyukhov6635 2 роки тому

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