В очередь, стэкины дети! (Продолжаем разговор о структурах данных в PHP)

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

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

  • @ПавлоПавлов
    @ПавлоПавлов 3 месяца назад

    це дуже цікава інфа з дуже крутими поясненнями

  • @ДмитрийПавлович-о8н

    У вас отлично получается объяснять, спасибо!

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

      Спасибо на добром слове! Рад быть полезным.

  • @valeryv3194
    @valeryv3194 2 года назад +2

    Чем дальше в лес - тем толще партизаны) Посмотрел с удовольствием!

  • @kind1y
    @kind1y 10 месяцев назад

    За 10 лет программирования на PHP об этом слышу впервые)
    Хотелось бы увидеть разборы самых популярных шаблонов проектирования, таких как фабрика, абстрактная фабрика, мост, репозиторий и тд.

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

    Весьма полезно. Спасибо

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

      Спасибо на добром слове! Рад оказаться полезным.

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

    Судя по вашему объяснению вначале, нужно было еще попробовать написать тесты, чтобы при добавлении элемента добавлять случайную переменную в память(имитируя работу другого скрипта что записывает что-то в память параллельно работе этого), и тогда обычные массивы могли бы оказаться медленнее чем spl

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

      Это не очень тривиальная задача, поскольку память может распределяться неожиданным (на первый взгляд) образом, и далеко не всегда получится привести вот к такому "конфликту" между двумя объектами в памяти. Чем выше уровень языка, тем сложнее (а то и невозможно) управлять такими низкоуровневыми штуками, как распределение памяти.

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

    Лучший канал, в реки попал, удача, развития каналу

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

    Очень понятно и доходчиво объясняете. Отдельный лайк за тесты. Кончено, жду 3-е видео про массивы в php. Большое спасибо!

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

      Спасибо на добром слове, Эдуард! Готовлю видео о хэш-таблицах (на которых и реализованы PHP-array)

  • @ak_kvadrat
    @ak_kvadrat 2 года назад +2

    Тема со структурами данными, прям находка. Как и с Enum. У вас очень классно получается, продолжайте развивать эту и подобные темы, такое всегда интересно, особенно учитывая насколько распространен php, и не каждый программист знает что вообще есть что-то кроме array (Я, конечно, утрирую, но согласитесь, такая ситуация вполне может быть).
    И, немного не в эту тему, но в предыдущем видео вы затрагивали вопрос про то, куда движется php и мне хотелось бы услышать ваше мнение по поводу файберов(Fiber). Что это и с чем едят, когда и как это может применятся, а главное куда это движет php, возможно ли, что со временем в php, как говорится из коробки, будет доступна асинхронность (например как async await в js) и мы сможем делать, например, websoket'ы на чистом php))))
    В лююбом случае продолжайте, у вас хорошо получается))))

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

      Илья, огромное спасибо за поддержку! Вы не представляете, как такие комментарии мотивируют двигаться вперёд!
      И про Fibers. Я давно приглядываюсь к этой теме, но всё как-то откладывал и откладывал. А теперь точно знаю, какой ролик очень скоро выйдет на канале :)
      Спасибо за толчок в нужном направлении!

  • @yashkevich8164
    @yashkevich8164 2 года назад +2

    В хорошем направлении идете. Осветите еще тему про память в ПХП. Еще бы плейлист про Go для PHPшников))

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

      Спасибо за поддержку!
      Использование памяти, конечно, будем затрагивать. Но не отдельным каким-то роликом, а будем при случае смотреть и на выделение памяти, и на garbage collector, и на замеры используемой памяти (в 8.2, кажется, интересная функция приезжает, как только бета выйдет, посмотрим).
      А насчёт Go... Нет, я пока не готов, не чувствую этот язык пока, не понимаю его соли. Он мне очень нравится, но нужно ещё покурить это дело вдумчиво.

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

      ​@@freelancer_eyes Про го, это вообще больная тема. У меня го очень тяжело идёт, даже если сравнивать с переходом с js-фронта на бэкенд на php и переход был гораздо легче, хотя и опыта было меньше. Я общался с одним из кураторов курса по го от EPAM (практикующий программист), он сказал что у тех кто приходит с php, часто сложнее переход дается, чем с некоторых других популярных бэкенд языков (не уточнял каких), видимо особенности разницы мышления и подходов к написанию кода в php и go. Но говорит это решается банальной практикой. А так, он согласен с моим мнением что сейчас набирает популярность связка PHP + GO. Это же я видел в докладах компаний, вроде авито.

  • @dyadyushka-au
    @dyadyushka-au 2 года назад +1

    SPL DLL реализует Iterator интерфейс. Так почему он не подходит для foreach? И зачем rewind() два раза вызывать?
    В документации по очереди и стеку написано, что нельзя изменить направление итератора.

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

      Спасибо за вопросы!
      SplFixedArray тоже реализовывал интерфейс итератора до 8-ой версии языка, теперь эта возможность убрана. Потому что неэффективна.
      Для DLL реализация итератора сохранена (пока?), и его можно, конечно, использовать. Вопрос только в том, нужно ли это? Как конкретно мы используем DLL, почему нам потребовалось итерировать? Наиболее частое употребление DLL - это всё-таки очереди/стэки, в них итерация... нужна ли когда-нибудь?
      Зачем rewind() два раза вызывать? Конечно, не нужно. Возможно, у меня в видео как-то невнятно что-то прозвучало, прошу прощения. Если мы уже "в голове" списка, то перематывать ещё раз, конечно, бессмысленно.
      Насчёт изменения направления итератора - вы имеете в виду то, что в setIteratorMode() нельзя изменять первую составляющую маски (FIFO/LIFO)? Я именно это и попытался продемонстрировать в ролике. Или вы что-то иное имеете в виду?

    • @dyadyushka-au
      @dyadyushka-au 2 года назад +1

      @@freelancer_eyes я имел ввиду, что документация setIteratorMode() для Queue и Stack уже говорит о невозможности задать направление. Так что разжевывание с демонстрацией имхо излишнее.
      На счет итерации в DLL, foreach используя внутреннюю итерацию может быть до двух раз быстрее, чем любой цикл при размере списка >= 100к

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

      @@dyadyushka-au ну, так-то в документации всё написано, так что видео в общем-то вообще излишне :)
      Замечание про foreach очень верное, спасибо!