Докладчику спасибо, обычно, самое интересное появляется в вопросах из зала, но в этот раз лекция была намного информативнее. Вопросы из зала больше про сферических коней в вакууме.
в университете про это рассказывают, только работали с этим в других языках программирования. Что-то все слишком сфокусированы на инструменте разработки, а не на самом процессе и результате.
Не все приходят в индустрию с университетским образованием, а если и приходят, то не спешат его вспоминать. Я хотел показать направление своим докладом. Судя по всему, удалось:)
Доклад супер, а вот вопросы были больше похожи на предъявы. Не "спасибо вам за доклад", а сразу, чтобы показать свою "компетентность" начали тыкать пальцем в слайд и говорить, а почему вы написали так, а не так? Я думаю лектору было не особо приятно, когда такой «умник» так настойчиво хотел показать, что его подход не верный и можно было бы написать по-другому. Вопросы должны исходить из-за твоей заинтересованности и не опытности, а не из-за твоего желания поспорить и помериться знаниями.
АМ.... полностью согласен... умничать не стоит) люди конечно не все поняли... и решили переспросить) уточнили методу! а доклад супер.... мы за четабельностью кода... потеряли смысл, что делаем... программируем! то есть пример...алгоритмов... это же универсальный язык для всех...ведь люди все "программисты" только они этого не знают(не догоняют просто)!!!
Будь ласка, указывай ссылки из доклада в описании видоса) а то перепечатывать лень, мыж ленивые все, особенно с телефона. А так интересный доклад о применении базовых алгоритмов и структур данных в текущих реалиях, на беке это понятное дело используется, но можно и во фронтенде, я за столько лет уже увидел тонну кода в котором люди видимо живут в идеальных условиях и у них неограниченный запас оперативки и скорость исполнения мгновенная, в фронте редко заботятся о производительности, а стоило бы.
Ещё встречал способ по разграничению прав пользователям при помощи логарифма, где каждое праву было назначено число и с помощью логарифма получалось число с определением групп прав. В интернете поискал, не смог найти.
Потрясающая подготовка, спасибо большое за доклад! Мне кажется, использовать битовый литера (0b01...), добавленный в EcmaScript 6 будет даже более понятно, чем шестнадцатеричный (0x1A..) - мы же как раз над битами операции проводим и не будет литер (A, B, C) в числах. Парень из зала высказывался по поводу ограниченности safe int 2^53 - мы не можем увеличить вдвое этот порог при помощи отрицательных чисел? Я думаю, кейс очень и очень редкий (>53 состояний), поэтому спрашиваю чисто из образовательного интереса. Один дополнительный бит кодирует состояние "отрицательное / положительное" - можно как-то это использовать?
В голову пришла идея: Есть же в 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 уж точно нужно вводить абстракцию в эту систему состояний - но сама идея все также безумно ценна в образовательных целях.
Во всех нетерминологических контекстах следует употреблять слово компонент. Тут нет математического контекста. Видимо, верстальщики очень хотят казаться математиками.
пишу на сишке, Америка не открыта) Но в любом случае круто потому что мне самому очень не нравится тенденция рассчитывать на мощность машины, а не на оптимизацию
Детский сад ей богу. Битовые макси появились и использовались не потому что это откровение в программировании, а потому что процессор предоставлял для этого набор инструкций, а требования к ресурсам того времени, требовала экономии на битах. Или умножение деление влево вправо, позволяло выигрывать в тактах процессора, перед традиционным умножением, которого тогда попросту не было. Устраивать цирк с битами сейчас, это натягивать слона на глобус, по причине того, что вы не только не выигрываете в ресурсах, вы еще и код свой делаете медленнее. Работе с мат логикой, а именно AND OR XOR NAND и так далее, учат на 1 курсе институа любого нормального инфиза. И о чудо, для ее работы не нужны битовые маски.
Потому что лектор ни для кого Америку не открыл. В свое время люди ушли от битовых карт, а теперь вдруг опять нам их упаривают как нечто сверх-полезное. Но это далеко не всегда так.
В начале лекции вы говорите о том, что современный код стал писаться намного менее оптимизировано чем раньше. Я с этим конечно же согласен. Но в онлайне есть еще одна проблема. Фреймворки вроде Angular 2. Если раньше мы генерировали разметку на сервере и пользователь сразу же ее получал с первыми пакетами, то современные няшные фреймворки заставляют писать гигантские программы на яваскрипте, загрузки которых пользователь вынужден дожидаться и потом еще этот скрипт сильно грузит браузер. А пользователь все это время видит белый экран. Получается мы код, который намного эффективнее и быстрее бы выполнился на нормальных языках программирования на сервере заставляем выполнятся на тормозном яваскрипте да еще и на стороне этого самого пользователя. Как вы относитесь к этой проблеме? Используйте ли фреймворки вроде Angular в своей работе? Спасибо.
Привет. Спасибо за вопрос. Да, я использую в своей работе React, имел дело с Angular и Google Closure Library. Я понимаю проблему генерируемого контента, но тут многое зависит от сайта. Тот же RUclips, на котором мы обсуждаем это видео не может существовать без сложной клиентской логики, поэтому надо уметь ее готовить. Во-первых нужно уметь договариваться с дизайнерами, чтобы они при проектировании продумывали взаимодействие с пользователем во время загрузки, показывать прелоадеры, делать умные анимации и прочее. А тормоза только на совести разработчика и тут совет один - разработчику нужно больше контролировать то, что происходит в коде. Это может сделать и на Ангуляре, нужно измерять производительность, загружать приложение частями, рефакторить, упрощать. Просто если об этом думать на этапе проектирования, проблема будет решена:)
Такие очевидные вещи, неужели это становится темой современных ит докладов? Уровень современных программистов конечно оставляет желать лучшего, если такие вещи становятся откровением
Офигенный доклад, очень заинтересовали)
Докладчику спасибо, обычно, самое интересное появляется в вопросах из зала, но в этот раз лекция была намного информативнее. Вопросы из зала больше про сферических коней в вакууме.
Самая важная информация про (или contra)) битовые карты - на последних 10 секундах ролика: "Можно и напрямую написать".
Ну состояние все равно хранится в INT будет. А так он просто лишнее посредничество написал)
Спасибо. Было очень интересно.
Спасибо, я рад.
Интересный доклад. За ссылку на ресурс с описанием структур данных отдельное спасибо.
лектор, маньяк, блин... до этого видео в моей жизни всё было хорошо...
в университете про это рассказывают, только работали с этим в других языках программирования. Что-то все слишком сфокусированы на инструменте разработки, а не на самом процессе и результате.
Не все приходят в индустрию с университетским образованием, а если и приходят, то не спешат его вспоминать. Я хотел показать направление своим докладом. Судя по всему, удалось:)
@@iamo0 очень интересно! хотелось бы посмотреть на код приложений, в которых этот подход используется
Спасибо большое за доклад! Всегда считала, что нужно изучать фундаментальные вещи, Вы меня ещё больше замотивировали =)
Очень здорово, спасибо большое!
Доклад супер, а вот вопросы были больше похожи на предъявы.
Не "спасибо вам за доклад", а сразу, чтобы показать свою "компетентность" начали тыкать пальцем в слайд и говорить, а почему вы написали так, а не так? Я думаю лектору было не особо приятно, когда такой «умник» так настойчиво хотел показать, что его подход не верный и можно было бы написать по-другому. Вопросы должны исходить из-за твоей заинтересованности и не опытности, а не из-за твоего желания поспорить и помериться знаниями.
АМ....
полностью согласен...
умничать не стоит)
люди конечно не все поняли...
и решили переспросить)
уточнили методу!
а доклад супер....
мы за четабельностью кода...
потеряли смысл, что делаем...
программируем!
то есть пример...алгоритмов...
это же универсальный язык для всех...ведь люди все "программисты"
только они этого не знают(не догоняют просто)!!!
Посмотрел на одном дыхании:) Я в этом ничего не понимаю, пока, но было очень интересно:) С нетерпением жду начала интенсивов.
очень круто, спасибо Игорь
гениальная идея с битовыми операциями!
Будь ласка, указывай ссылки из доклада в описании видоса) а то перепечатывать лень, мыж ленивые все, особенно с телефона. А так интересный доклад о применении базовых алгоритмов и структур данных в текущих реалиях, на беке это понятное дело используется, но можно и во фронтенде, я за столько лет уже увидел тонну кода в котором люди видимо живут в идеальных условиях и у них неограниченный запас оперативки и скорость исполнения мгновенная, в фронте редко заботятся о производительности, а стоило бы.
Доклад бомба!
Смотивировал достать с полки книгу по алгоритмам и структурам.
Ещё встречал способ по разграничению прав пользователям при помощи логарифма, где каждое праву было назначено число и с помощью логарифма получалось число с определением групп прав. В интернете поискал, не смог найти.
Хотелось бы посмотреть на код
Спасибо!
Потрясающая подготовка, спасибо большое за доклад! Мне кажется, использовать битовый литера (0b01...), добавленный в EcmaScript 6 будет даже более понятно, чем шестнадцатеричный (0x1A..) - мы же как раз над битами операции проводим и не будет литер (A, B, C) в числах.
Парень из зала высказывался по поводу ограниченности safe int 2^53 - мы не можем увеличить вдвое этот порог при помощи отрицательных чисел? Я думаю, кейс очень и очень редкий (>53 состояний), поэтому спрашиваю чисто из образовательного интереса. Один дополнительный бит кодирует состояние "отрицательное / положительное" - можно как-то это использовать?
В голову пришла идея: Есть же в 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 уж точно нужно вводить абстракцию в эту систему состояний - но сама идея все также безумно ценна в образовательных целях.
Здорово, интересно, есть над чем подумать. Не нужно только так сильно волноваться :)
Я докладывал от сердца, переживал. Спасибо.
Я думал, что ваш опыт докладов на вебинарах должен был помочь.
DanilKef1r он помог:)
5:48 смутило "состояние UX-компоненты", наверно имелось ввиду UI-компоненты?
А нет и в коде UXComponent. Ну как-то не круто.
@@glebkresh не круто - это быть таким душным, чтоб докопаться до названия функции на видео двухлетней давности.
Почему-то не до конца видео. Обрывается же :(
Почему в последнее время особым шиком считается произносить не "компонент", а "компонента" в женском роде? Что это вообще? Чтоб не так как у всех?
Это математический термин, ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0
Во всех нетерминологических контекстах следует употреблять слово компонент. Тут нет математического контекста.
Видимо, верстальщики очень хотят казаться математиками.
пишу на сишке, Америка не открыта) Но в любом случае круто потому что мне самому очень не нравится тенденция рассчитывать на мощность машины, а не на оптимизацию
Про битовую карту совсем очевидно, просто многие "фронтенд" дальше одной книжки по JS ничего не читали.
Детский сад ей богу. Битовые макси появились и использовались не потому что это откровение в программировании, а потому что процессор предоставлял для этого набор инструкций, а требования к ресурсам того времени, требовала экономии на битах. Или умножение деление влево вправо, позволяло выигрывать в тактах процессора, перед традиционным умножением, которого тогда попросту не было.
Устраивать цирк с битами сейчас, это натягивать слона на глобус, по причине того, что вы не только не выигрываете в ресурсах, вы еще и код свой делаете медленнее.
Работе с мат логикой, а именно AND OR XOR NAND и так далее, учат на 1 курсе институа любого нормального инфиза. И о чудо, для ее работы не нужны битовые маски.
Большое спасибо, битовые маски имеют место быть не только во фронте, но и везде
Да им 100 лет в обед. Всё WinAPI на них построено. Но это далеко не всегда удобно.
Гениально показывать обрезанный код, состоящий из почти одинаковых названий
Сиди гадай что там написано за пределами вьюпорта
404 лайка, удачная цифра для видоса о фронтенде :) но не мог не поставить палец вверх!
Красава!
Лектор топовый
Крутяк
В чём прикол задавать вопросы в таком пассивно агрессивном стиле ?
доказать интеллектуальное провосходство
Потому что лектор ни для кого Америку не открыл. В свое время люди ушли от битовых карт, а теперь вдруг опять нам их упаривают как нечто сверх-полезное. Но это далеко не всегда так.
Все круто, но современные клин-кодеры просто плачут глядя на это.
Всё круто, интересно, но:
Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
М. Фаулер
В начале лекции вы говорите о том, что современный код стал писаться намного менее оптимизировано чем раньше. Я с этим конечно же согласен. Но в онлайне есть еще одна проблема. Фреймворки вроде Angular 2. Если раньше мы генерировали разметку на сервере и пользователь сразу же ее получал с первыми пакетами, то современные няшные фреймворки заставляют писать гигантские программы на яваскрипте, загрузки которых пользователь вынужден дожидаться и потом еще этот скрипт сильно грузит браузер. А пользователь все это время видит белый экран. Получается мы код, который намного эффективнее и быстрее бы выполнился на нормальных языках программирования на сервере заставляем выполнятся на тормозном яваскрипте да еще и на стороне этого самого пользователя. Как вы относитесь к этой проблеме? Используйте ли фреймворки вроде Angular в своей работе? Спасибо.
Привет. Спасибо за вопрос. Да, я использую в своей работе React, имел дело с Angular и Google Closure Library. Я понимаю проблему генерируемого контента, но тут многое зависит от сайта. Тот же RUclips, на котором мы обсуждаем это видео не может существовать без сложной клиентской логики, поэтому надо уметь ее готовить. Во-первых нужно уметь договариваться с дизайнерами, чтобы они при проектировании продумывали взаимодействие с пользователем во время загрузки, показывать прелоадеры, делать умные анимации и прочее. А тормоза только на совести разработчика и тут совет один - разработчику нужно больше контролировать то, что происходит в коде. Это может сделать и на Ангуляре, нужно измерять производительность, загружать приложение частями, рефакторить, упрощать. Просто если об этом думать на этапе проектирования, проблема будет решена:)
Такие очевидные вещи, неужели это становится темой современных ит докладов? Уровень современных программистов конечно оставляет желать лучшего, если такие вещи становятся откровением