Классические приёмы программирования во фронтенде - Игорь Алексеенко

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ม.ค. 2025

ความคิดเห็น • 56

  • @mukaddastaj5223
    @mukaddastaj5223 ปีที่แล้ว

    Офигенный доклад, очень заинтересовали)

  • @Roxenberg
    @Roxenberg 6 ปีที่แล้ว +14

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

  • @logic7878
    @logic7878 4 ปีที่แล้ว +9

    Самая важная информация про (или contra)) битовые карты - на последних 10 секундах ролика: "Можно и напрямую написать".

    • @Dan2000kr
      @Dan2000kr 4 ปีที่แล้ว

      Ну состояние все равно хранится в INT будет. А так он просто лишнее посредничество написал)

  • @isseka7
    @isseka7 8 ปีที่แล้ว +15

    Спасибо. Было очень интересно.

    • @iamo0
      @iamo0 8 ปีที่แล้ว +3

      Спасибо, я рад.

  • @maria-kuznetsova-s
    @maria-kuznetsova-s 4 ปีที่แล้ว +1

    Спасибо большое за доклад! Всегда считала, что нужно изучать фундаментальные вещи, Вы меня ещё больше замотивировали =)

  • @zatoprosto103
    @zatoprosto103 6 ปีที่แล้ว +4

    Интересный доклад. За ссылку на ресурс с описанием структур данных отдельное спасибо.

  • @fratule1
    @fratule1 7 ปีที่แล้ว +2

    Посмотрел на одном дыхании:) Я в этом ничего не понимаю, пока, но было очень интересно:) С нетерпением жду начала интенсивов.

  • @skv1991
    @skv1991 4 ปีที่แล้ว +1

    Очень здорово, спасибо большое!

  • @user-ei9jd7pw4s
    @user-ei9jd7pw4s 4 ปีที่แล้ว +19

    Доклад супер, а вот вопросы были больше похожи на предъявы.
    Не "спасибо вам за доклад", а сразу, чтобы показать свою "компетентность" начали тыкать пальцем в слайд и говорить, а почему вы написали так, а не так? Я думаю лектору было не особо приятно, когда такой «умник» так настойчиво хотел показать, что его подход не верный и можно было бы написать по-другому. Вопросы должны исходить из-за твоей заинтересованности и не опытности, а не из-за твоего желания поспорить и помериться знаниями.

    • @dondragon6949
      @dondragon6949 2 ปีที่แล้ว +1

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

  • @yakut54
    @yakut54 8 ปีที่แล้ว +67

    лектор, маньяк, блин... до этого видео в моей жизни всё было хорошо...

    • @DanilKef1r
      @DanilKef1r 8 ปีที่แล้ว +4

      в университете про это рассказывают, только работали с этим в других языках программирования. Что-то все слишком сфокусированы на инструменте разработки, а не на самом процессе и результате.

    • @iamo0
      @iamo0 8 ปีที่แล้ว +39

      Не все приходят в индустрию с университетским образованием, а если и приходят, то не спешат его вспоминать. Я хотел показать направление своим докладом. Судя по всему, удалось:)

    • @АлександрЩербаков-з4з
      @АлександрЩербаков-з4з 5 ปีที่แล้ว +3

      @@iamo0 очень интересно! хотелось бы посмотреть на код приложений, в которых этот подход используется

  • @axaxaman
    @axaxaman 7 ปีที่แล้ว +2

    очень круто, спасибо Игорь

  • @citycattv5050
    @citycattv5050 ปีที่แล้ว

    гениальная идея с битовыми операциями!

  • @Mazai58
    @Mazai58 6 ปีที่แล้ว +1

    Доклад бомба!

  • @yunusgaziev3514
    @yunusgaziev3514 5 ปีที่แล้ว

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

  • @eq656
    @eq656 3 ปีที่แล้ว +2

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

  • @AlexAlex-nh5mc
    @AlexAlex-nh5mc 8 ปีที่แล้ว +4

    Хотелось бы посмотреть на код

    • @iamo0
      @iamo0 8 ปีที่แล้ว

      Спасибо!

  • @gwinpin1490
    @gwinpin1490 6 ปีที่แล้ว +2

    Смотивировал достать с полки книгу по алгоритмам и структурам.

  • @vetero4eg
    @vetero4eg 8 ปีที่แล้ว

    Здорово, интересно, есть над чем подумать. Не нужно только так сильно волноваться :)

    • @iamo0
      @iamo0 8 ปีที่แล้ว +6

      Я докладывал от сердца, переживал. Спасибо.

    • @DanilKef1r
      @DanilKef1r 8 ปีที่แล้ว

      Я думал, что ваш опыт докладов на вебинарах должен был помочь.

    • @iamo0
      @iamo0 8 ปีที่แล้ว

      DanilKef1r он помог:)

  • @heyiamvi
    @heyiamvi 6 ปีที่แล้ว +1

    Потрясающая подготовка, спасибо большое за доклад! Мне кажется, использовать битовый литера (0b01...), добавленный в EcmaScript 6 будет даже более понятно, чем шестнадцатеричный (0x1A..) - мы же как раз над битами операции проводим и не будет литер (A, B, C) в числах.
    Парень из зала высказывался по поводу ограниченности safe int 2^53 - мы не можем увеличить вдвое этот порог при помощи отрицательных чисел? Я думаю, кейс очень и очень редкий (>53 состояний), поэтому спрашиваю чисто из образовательного интереса. Один дополнительный бит кодирует состояние "отрицательное / положительное" - можно как-то это использовать?

    • @heyiamvi
      @heyiamvi 6 ปีที่แล้ว

      В голову пришла идея: Есть же в JS теперь и BigInt. Побитовые операции могут быть выполнены и для него. Можно расширить множество состояний до 64 возможных значений.
      Note: на mdn ничего про битовые операции не сказано, но в блоге Google об этом говорится явно - developers.google.com/web/updates/2018/05/bigint
      const states = {
      // BigInt можно задавать преобразовывая Number
      DISABLED: BigInt(2 ** 54),
      HAS_ICON: BigInt(2 ** 55),
      HAS_BORDER: BigInt(2 ** 56),
      };
      console.log(states);
      const stateClassName = {
      // Можно литералами, но нельзя смешивать типы
      (т.е. 2n ** 54 не разрешен)
      [2n ** 54n]: 'item-disabled',
      [2n ** 55n]: 'item-has-icon',
      [2n ** 56n]: 'item-has-border',
      };
      const initialState = BigInt(states.DISABLED) | BigInt(states.HAS_ICON); // Получим bigint
      значение
      Object.entries(states).forEach(([stateName, mask]) => {
      const state = initialState & mask;
      console.log(typeof state, state);
      console.log(stateClassName[state]);
      });
      Линк на JSFiddle: jsfiddle.net/VitalyKrenel/tLrz52xs/
      Я думаю, при использовании BigInt уж точно нужно вводить абстракцию в эту систему состояний - но сама идея все также безумно ценна в образовательных целях.

  • @glebkresh
    @glebkresh 6 ปีที่แล้ว

    5:48 смутило "состояние UX-компоненты", наверно имелось ввиду UI-компоненты?

    • @glebkresh
      @glebkresh 6 ปีที่แล้ว

      А нет и в коде UXComponent. Ну как-то не круто.

    • @san88k
      @san88k 6 ปีที่แล้ว +4

      @@glebkresh не круто - это быть таким душным, чтоб докопаться до названия функции на видео двухлетней давности.

  • @Rodbertus1805
    @Rodbertus1805 5 ปีที่แล้ว +2

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

    • @nikasts6395
      @nikasts6395 4 ปีที่แล้ว +1

      Это математический термин, ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0

    • @Rodbertus1805
      @Rodbertus1805 4 ปีที่แล้ว +4

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

  • @Teacification
    @Teacification 7 ปีที่แล้ว +1

    Почему-то не до конца видео. Обрывается же :(

  • @demimurych1
    @demimurych1 4 ปีที่แล้ว +6

    Детский сад ей богу. Битовые макси появились и использовались не потому что это откровение в программировании, а потому что процессор предоставлял для этого набор инструкций, а требования к ресурсам того времени, требовала экономии на битах. Или умножение деление влево вправо, позволяло выигрывать в тактах процессора, перед традиционным умножением, которого тогда попросту не было.
    Устраивать цирк с битами сейчас, это натягивать слона на глобус, по причине того, что вы не только не выигрываете в ресурсах, вы еще и код свой делаете медленнее.
    Работе с мат логикой, а именно AND OR XOR NAND и так далее, учат на 1 курсе институа любого нормального инфиза. И о чудо, для ее работы не нужны битовые маски.

  • @MultiGeho
    @MultiGeho 5 ปีที่แล้ว +1

    пишу на сишке, Америка не открыта) Но в любом случае круто потому что мне самому очень не нравится тенденция рассчитывать на мощность машины, а не на оптимизацию

  • @TheSekhno
    @TheSekhno 4 ปีที่แล้ว

    Красава!

  • @dwellerIV
    @dwellerIV ปีที่แล้ว

    Лектор топовый

  • @DenisB-d5f
    @DenisB-d5f ปีที่แล้ว +1

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

  • @amodeus6701
    @amodeus6701 6 ปีที่แล้ว +2

    404 лайка, удачная цифра для видоса о фронтенде :) но не мог не поставить палец вверх!

  • @lexxx1994
    @lexxx1994 5 ปีที่แล้ว

    Большое спасибо, битовые маски имеют место быть не только во фронте, но и везде

    • @igor-grudinin
      @igor-grudinin 3 ปีที่แล้ว

      Да им 100 лет в обед. Всё WinAPI на них построено. Но это далеко не всегда удобно.

  • @AndriiKuftachov
    @AndriiKuftachov 6 ปีที่แล้ว +3

    Про битовую карту совсем очевидно, просто многие "фронтенд" дальше одной книжки по JS ничего не читали.

  • @milovidov42
    @milovidov42 5 ปีที่แล้ว

    Крутяк

  • @kurasaored2775
    @kurasaored2775 5 ปีที่แล้ว +17

    В чём прикол задавать вопросы в таком пассивно агрессивном стиле ?

    • @recognizeHeaven
      @recognizeHeaven 4 ปีที่แล้ว +4

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

    • @igor-grudinin
      @igor-grudinin 3 ปีที่แล้ว

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

  • @azamatk4302
    @azamatk4302 4 ปีที่แล้ว +1

    Все круто, но современные клин-кодеры просто плачут глядя на это.

  • @onetwothree123-
    @onetwothree123- 3 ปีที่แล้ว +2

    Всё круто, интересно, но:
    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
    М. Фаулер

  • @steps-in-forest
    @steps-in-forest 5 ปีที่แล้ว +1

    Такие очевидные вещи, неужели это становится темой современных ит докладов? Уровень современных программистов конечно оставляет желать лучшего, если такие вещи становятся откровением

  • @ruslanburnashev1294
    @ruslanburnashev1294 8 ปีที่แล้ว +2

    В начале лекции вы говорите о том, что современный код стал писаться намного менее оптимизировано чем раньше. Я с этим конечно же согласен. Но в онлайне есть еще одна проблема. Фреймворки вроде Angular 2. Если раньше мы генерировали разметку на сервере и пользователь сразу же ее получал с первыми пакетами, то современные няшные фреймворки заставляют писать гигантские программы на яваскрипте, загрузки которых пользователь вынужден дожидаться и потом еще этот скрипт сильно грузит браузер. А пользователь все это время видит белый экран. Получается мы код, который намного эффективнее и быстрее бы выполнился на нормальных языках программирования на сервере заставляем выполнятся на тормозном яваскрипте да еще и на стороне этого самого пользователя. Как вы относитесь к этой проблеме? Используйте ли фреймворки вроде Angular в своей работе? Спасибо.

    • @iamo0
      @iamo0 8 ปีที่แล้ว +5

      Привет. Спасибо за вопрос. Да, я использую в своей работе React, имел дело с Angular и Google Closure Library. Я понимаю проблему генерируемого контента, но тут многое зависит от сайта. Тот же TH-cam, на котором мы обсуждаем это видео не может существовать без сложной клиентской логики, поэтому надо уметь ее готовить. Во-первых нужно уметь договариваться с дизайнерами, чтобы они при проектировании продумывали взаимодействие с пользователем во время загрузки, показывать прелоадеры, делать умные анимации и прочее. А тормоза только на совести разработчика и тут совет один - разработчику нужно больше контролировать то, что происходит в коде. Это может сделать и на Ангуляре, нужно измерять производительность, загружать приложение частями, рефакторить, упрощать. Просто если об этом думать на этапе проектирования, проблема будет решена:)