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

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

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

  • @Roxenberg
    @Roxenberg 6 лет назад +14

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

  • @isseka7
    @isseka7 7 лет назад +15

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

    • @iamo0
      @iamo0 7 лет назад +3

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

  • @logic7878
    @logic7878 4 года назад +8

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

    • @Dan2000kr
      @Dan2000kr 3 года назад

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

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

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

  • @zatoprosto103
    @zatoprosto103 5 лет назад +4

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

  • @user-ei9jd7pw4s
    @user-ei9jd7pw4s 4 года назад +20

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

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

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

  • @atlantatesla9348
    @atlantatesla9348 4 года назад +1

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

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

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

  • @yakut54
    @yakut54 7 лет назад +68

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

    • @DanilKef1r
      @DanilKef1r 7 лет назад +4

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

    • @iamo0
      @iamo0 7 лет назад +39

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

    • @astrotrain
      @astrotrain 5 лет назад +8

      @@iamo0 спасибо большое за доклад!

    • @user-fr9zr8oj6p
      @user-fr9zr8oj6p 4 года назад +3

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

  • @axaxaman
    @axaxaman 6 лет назад +2

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

  • @fratule1
    @fratule1 7 лет назад +2

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

  • @skv1991
    @skv1991 3 года назад +1

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

  • @Mazai58
    @Mazai58 5 лет назад +1

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

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

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

  • @gwinpin1490
    @gwinpin1490 5 лет назад +2

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

  • @vetero4eg
    @vetero4eg 7 лет назад

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

    • @iamo0
      @iamo0 7 лет назад +6

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

    • @DanilKef1r
      @DanilKef1r 7 лет назад

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

    • @iamo0
      @iamo0 7 лет назад

      DanilKef1r он помог:)

  • @yunusgaziev3514
    @yunusgaziev3514 5 лет назад

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

  • @AlexAlex-nh5mc
    @AlexAlex-nh5mc 7 лет назад +4

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

    • @iamo0
      @iamo0 7 лет назад

      Спасибо!

  • @heyiamvi
    @heyiamvi 5 лет назад +1

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

    • @heyiamvi
      @heyiamvi 5 лет назад

      В голову пришла идея: Есть же в 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 уж точно нужно вводить абстракцию в эту систему состояний - но сама идея все также безумно ценна в образовательных целях.

  • @AndriiKuftachov
    @AndriiKuftachov 6 лет назад +4

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

  • @MultiGeho
    @MultiGeho 4 года назад +1

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

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

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

  • @amodeus6701
    @amodeus6701 5 лет назад +2

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

  • @TheSekhno
    @TheSekhno 4 года назад

    Красава!

  • @Teacification
    @Teacification 6 лет назад +1

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

  • @Rodbertus1805
    @Rodbertus1805 4 года назад +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

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

  • @demimurych1
    @demimurych1 4 года назад +6

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

  • @lexxx1994
    @lexxx1994 5 лет назад

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

    • @igor-grudinin
      @igor-grudinin 2 года назад

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

  • @azamatk4302
    @azamatk4302 3 года назад +1

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

  • @glebkresh
    @glebkresh 5 лет назад

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

    • @glebkresh
      @glebkresh 5 лет назад

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

    • @san88k
      @san88k 5 лет назад +4

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

  • @milovidov42
    @milovidov42 4 года назад

    Крутяк

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

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

  • @onetwothree123-
    @onetwothree123- 2 года назад +2

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

  • @kurasaored2775
    @kurasaored2775 4 года назад +17

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

    • @recognizeHeaven
      @recognizeHeaven 4 года назад +4

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

    • @igor-grudinin
      @igor-grudinin 2 года назад

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

  • @ruslanburnashev1294
    @ruslanburnashev1294 7 лет назад +2

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

    • @iamo0
      @iamo0 7 лет назад +5

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

  • @steps-in-forest
    @steps-in-forest 5 лет назад +1

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