@js_ru
JavaScript — русскоговорящее сообщество

Рекомендуем сразу отключить уведомления Правила: http://bit.ly/our_etiquette См. также: @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

3006 members

Архив канала @js_ru 20 марта 2017 г.

12:00:18 ДП
User 337427257
css классы в виде строк вместо объектов - это легаси
12:00:21 ДП
User 337427257
Расходимся
12:01:08 ДП
User 626100
User 626100
Разберитесь с необходимостью воткнуть новую технологию, прежде чем ее втыкать
Я просто напомню основной вывод ^ 
Если хотите использовать технологию, то используйте по-максимуму, смысл вот этих полумер (и на бэме сидеть, и на цсс-модули присесть) мне не оч понятен
12:03:00 ДП
User 626100
В цсс модулях класснейм через экспрешн, а это более гибко, чем строка
12:04:13 ДП
User 337427257
Так что теперь мы будем его юзать везде, даже если не требуется
12:04:19 ДП
User 337427257
Ну, чтобы было
06:04:03 ДП
User 32530886
User 337427257
css классы в виде строк вместо объектов - это легаси
+
09:12:59 ДП
User 626100
Всем привет!
Кому не сложно- оцените плз уровень моей криворукости
https://9cffc538.eu.ngrok.io/
Пробовал написать приложуху по модульному шаблону на ванилле жс
На цветные блоки можно кликнуть 2 раза
Проблема вылезла в итоге одна: при попытке добавить от 500 блоков отжирается куча памяти и браузер подвисает
Хотел бы услышать ваше мнение по уровню кода в целом и возможно вы поймете причину вышеуказанного недуга и расскажете о его причинах.
 Вот уже год как пробую заниматься фронтендом, рискну вынести на суд широкой общественности свою поделку))
09:14:51 ДП
User 117386728
User 626100
Всем привет!
Кому не сложно- оцените плз уровень моей криворукости
https://9cffc538.eu.ngrok.io/
Пробовал написать приложуху по модульному шаблону на ванилле жс
На цветные блоки можно кликнуть 2 раза
Проблема вылезла в итоге одна: при попытке добавить от 500 блоков отжирается куча памяти и браузер подвисает
Хотел бы услышать ваше мнение по уровню кода в целом и возможно вы поймете причину вышеуказанного недуга и расскажете о его причинах.
 Вот уже год как пробую заниматься фронтендом, рискну вынести на суд широкой общественности свою поделку))
http://primercss.io/guidelines/#class-naming-conventions
09:15:19 ДП
User 117386728
var blocksContainer = document.querySelector('.m-textblocks__list');
09:15:39 ДП
User 117386728
@De_Santa ^
09:16:13 ДП
User 179161686
везде надо делать префиксы js- перед тем элементом с которым хочу взаимодействовать?
09:16:28 ДП
User 117386728
Код который отвечает за яваскрипт и внешний вид желательно делать разным. вот ".m-textblocks__list" отвечает за внешний вид и за поведение одновременно
09:16:36 ДП
User 118959455
лолшто? это что еще за соглашение?
09:16:41 ДП
User 117386728
Очень хорая нотация которая заставит так не делать - js превиксы
09:17:01 ДП
User 117386728
User 118959455
лолшто? это что еще за соглашение?
github писал такое. Толковые вещи
09:17:21 ДП
User 179161686
я так раньше делал, но пугался в итоге от обилия классов, спасибо, верну в обиход
09:17:27 ДП
User 117386728
В итоге ты можешь перенестикласс js-open-form с кнопки на ссылку, со ссылки на меню - и все будет работать, верстка не поедет
09:18:50 ДП
User 179161686
точно, спасибо
09:19:35 ДП
User 117386728
easyBlock[i].addEventListener('click', function () {
        block = this;
        setTimeout(function() {
          selectBlock(block);
        }, 150);
      });
09:19:38 ДП
User 145003380
а зачем эти коврики?
09:19:38 ДП
User 145003380
/* =================== PRIVATE METHODS ================= */
09:19:50 ДП
User 117386728
Поэтому при клике интерфейс откликается не сразу =)
09:20:07 ДП
User 117386728
Это к дизайнеру конечно предъява, это нехорошо
09:20:39 ДП
User 179161686
не, откликается с таймаутом потому что на цветных блоках есть событие двойной клик
09:21:24 ДП
User 179161686
таймаут слушает 1 клик, если через 250мс не произошло второго то он выполняет одну функцию, если произошел другую
09:21:41 ДП
User 117386728
Все равно предъява к дизайнеру интерфейса
09:21:48 ДП
User 179161686
на обычные блоки я добавил таймаут чтоб все единообразно смотрелось
09:22:17 ДП
User 179161686
User 145003380
/* =================== PRIVATE METHODS ================= */
это для себя делал, первый раз шаблон такой использовал
09:22:19 ДП
User 117386728
Допустим ты пилишь очень важный интерфейс работы с атомной жлектростанцией
09:22:47 ДП
User 117386728
Один клик - вызвать уборщицу, двойной клик - УБРАТЬ ЩИТЫ ВНИМАНИЕ РАДИАЦИЯ
09:22:50 ДП
User 179161686
да и в принципе первый раз какой либо шаблон использовал
09:23:04 ДП
User 626100
User 179161686
таймаут слушает 1 клик, если через 250мс не произошло второго то он выполняет одну функцию, если произошел другую
А) возьми лучше библиотеку для работы с эвентами, там даблтап будет б) не делай двойное поведение, где нужно угадывать сколько раз нужно кликнуть, в вебе всегда один клик
09:24:07 ДП
User 179161686
User 626100
А) возьми лучше библиотеку для работы с эвентами, там даблтап будет б) не делай двойное поведение, где нужно угадывать сколько раз нужно кликнуть, в вебе всегда один клик
понял, я просто придерживался условий задачи, это не моя прихоть))
09:25:53 ДП
User 179161686
забыл сказать наверное, что поведение я не сам придумал, а взял в рамках задачи из интернета. Наполнение цитатами и внешний вид эт конечно уже я задумал, но изначальное поведение уже было условлено
09:26:17 ДП
User 117386728
А ну тогда предъява к автору задачи=)
09:28:02 ДП
User 117386728
Я понял
09:28:43 ДП
User 117386728
Тогда есть замечание по делу. У тебя события биндятся сразу на все элементы при добавлении только одного блока? Авторы задачи будут на это смотреть, наверняка поэтому и попросили сделать добавление элемента + событие.
09:29:57 ДП
User 117386728
Я бы ожидал что либо биндинг будет на document и нове блоки будут всплывать событие, либо событие биндится при добавлении.
09:30:11 ДП
User 117386728
Это для тестовой задачи важно кмк
09:32:37 ДП
User 179161686
да, выходит что события биндятся на все блоки по новой после добавления любого блока. Я еще не допер как брать конкретный блок, которы был создан и работать конкретно с ним
09:34:44 ДП
User 117386728
В лоб можно так:
биндишь на body click.
обрабатыавешь если у элемента есть класс .js-clickable-block
То что jquery или react нету это часть условия?
09:35:18 ДП
User 179161686
в том числе по этой причине я сюда и написал, мне еще учиться и учиться всему, хотелось бы понять в правильном ли направлении я двигаюсь, всегда считал и считаю кодревью одним из лучших способов учиться
09:35:20 ДП
User 117386728
или биндишь при добаленеии блока
09:36:38 ДП
User 179161686
по идее фреймворки можно, но я хотел попробовать себя в чистом JS, т.к. по работе приходится иметь дело только с JQuery, а без фундаменталки в JS это как-то не комфортно. Реактом я вообще еще не пользовался, смотрел пару уроков только =(
09:36:39 ДП
User 117386728
Лучший способ научиться - если это были бы не блоки а допустим товары в корзине и надо будет переделать потому что архитетура не позволит и ты мучаешься но переделываешь и больше к вопросу вернуться не заставит никто, ибо не ослабли ещё воспоминания о мучениях.
09:37:34 ДП
User 117386728
Я не зря спросил про требования Jquery
09:37:36 ДП
User 117386728
в условиях
09:37:43 ДП
User 117386728
Допустим взял я тебя на работу
09:38:13 ДП
User 179161686
ну это совсем радикальный метод) хотя тут трудно не согласиться, что он рабочий)
09:38:24 ДП
User 179161686
в условиях сказано так
09:38:29 ДП
User 117386728
А ты вместо 10 строк на jquery сделал ЭТО. Меня подобное не устроит. Вдруг ты так выполнил тестовое задание и теперь всегда так будешь делать.
09:39:01 ДП
User 117386728
А если я специально указал что без jquery - то мне интересно как ты сделаешь независимые классы.
09:39:21 ДП
User 179161686
* EcmaScript5,
* Допустимо использовать любой фреймворк, однако, желательно, чтобы он был низкоуровневым.
09:39:26 ДП
User 117386728
А у тебя они не независимы (отсюда кстати теоретически возможны тормоза в момент добавления нового блока)
09:40:10 ДП
User 117386728
User 179161686
* EcmaScript5,
* Допустимо использовать любой фреймворк, однако, желательно, чтобы он был низкоуровневым.
Господа Javascript, кто нибудь знает что такое низкоуровневый фреймворк?
09:40:40 ДП
User 117386728
prototype наверное
11:04:17 ДП
User 190592642
Вечер в хату
11:19:25 ДП
User 626100
http://ilyabirman.ru/projects/mimic/ крутая штука
11:20:06 ДП
User 626100
(https://mimic.js.org)
01:52:56 ПП
User 117386728
Да, уже дня три встречается то тут то сям перед глазами
02:44:32 ПП
User 151518727
всем привет, кто то сильный в написании калькуляторов? таких как этот http://prntscr.com/em9la0
prnt.sc/em9la0
Captured with Lightshot
02:45:23 ПП
User 151518727
начал делать, но ничего не получается, я новичок в этом
03:50:58 ПП
User 165310493
User 118959455
лолшто? это что еще за соглашение?
Это один из вариантов. Ещё можно по дата атрибутам селектить.
04:09:12 ПП
User 39032940
Это же медленнее
04:10:09 ПП
User 165310493
Микрооптимизаторы и прочие поехавшие идут в лес и их мнение не учитывается.
06:50:15 ПП
User 215655868
Подскажите либу для работы со временем
06:51:15 ПП
User 213704994
User 215655868
Подскажите либу для работы со временем
momentjs.com не предлагать?
06:51:57 ПП
User 215655868
Чтоб можно было сравнивать строки 

"01.01.2015" < "05.02.2015"
06:53:08 ПП
User 165310493
User 215655868
Подскажите либу для работы со временем
https://github.com/date-fns/date-fns ?
github.com/date-fns/date-fns
⏳ Modern JavaScript date utility library ⌛️. Contribute to date-fns/date-fns development by creating an account on GitHub.
06:54:41 ПП
User 215655868
User 165310493
https://github.com/date-fns/date-fns ?
github.com/date-fns/date-fns
⏳ Modern JavaScript date utility library ⌛️. Contribute to date-fns/date-fns development by creating an account on GitHub.
Вроде норм. Спасибо!
07:02:28 ПП
User 74329021
Visual Studio Code юзеры, как там замутить автоматическое выравнивание, или для этого нужон плагин отдельный? 🤔
07:05:27 ПП
User 178689889
Есть плагин. Название не помню
07:06:39 ПП
User 107282384
Чето везде фигово работает это автоматическое выравнивание,  кроме вебшторма
07:06:47 ПП
User 107282384
Ни где не видел такую же систему
07:07:01 ПП
User 107282384
А вообще,  контрол альт f в висуале
07:08:06 ПП
User 74329021
User 107282384
А вообще,  контрол альт f в висуале
В хоткеях тоже указано, но почему-то не работает на маке, просто сбивает выделение и всё у меня
07:08:25 ПП
User 107282384
Потому что только хтмл
07:08:44 ПП
User 107282384
А для каждого языка надо качать бьбтифаи
07:08:53 ПП
User 107282384
Какой нить.  И это печально
07:11:32 ПП
User 74329021
Поставил парочку, выравнивают так, что лучше бы и не трогали ничего, печаль :|
07:13:16 ПП
User 107282384
Да,  реально.  Много иде исрольщывал.  Атом,  визуал.  Все хороши,  пока не дойдет дело до форматирования текста... В атоме вообще,  караул
07:22:27 ПП
User 165310493
User 107282384
Да,  реально.  Много иде исрольщывал.  Атом,  визуал.  Все хороши,  пока не дойдет дело до форматирования текста... В атоме вообще,  караул
А что в атоме?
07:31:22 ПП
User 107282384
Не очень работает
07:32:55 ПП
User 165310493
Настрой как надо.
07:39:24 ПП
User 1035664
Доброго времени суток, есть тут пользователи phpstorm?
08:20:14 ПП
08:21:52 ПП
User 1035664
User 107282384
Я
Знаешь как табы настроить, чтобы вместо четырех пробелов было два? Очень мазолят глаза длинющие отступы
08:24:47 ПП
User 107282384
на каждый документ надо
08:24:49 ПП
User 107282384
короче
08:25:21 ПП
User 107282384
Editor>codestyle
08:25:28 ПП
User 107282384
тыкаешь любой тип документа
08:25:32 ПП
User 107282384
и там выбираешь размер таба
08:31:45 ПП
User 178689889
User 1035664
Знаешь как табы настроить, чтобы вместо четырех пробелов было два? Очень мазолят глаза длинющие отступы
Editorconfig
08:31:51 ПП
User 1035664
User 107282384
и там выбираешь размер таба
Премного благодарен👌
09:24:53 ПП
User 91990226
всем привет, как с помощью jsdom в ноде симулировать click event?
09:26:25 ПП
User 227646933
User 91990226
всем привет, как с помощью jsdom в ноде симулировать click event?
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", false, true);
document.body.dispatchEvent(evt)