Smooth Operator
Sergey
А мне это нравится ещё https://github.com/tc39/proposal-promise-finally/blob/master/README.md
Sergey
Секция why not .then(f, f)
파쇼크
#x is shorthand for this.#x
Но this['#x'] написать нельзя! https://github.com/tc39/proposal-private-fields/blob/master/FAQ.md#why-doesnt-thisx-access-the-private-field-named-x-given-that-thisx-does
Sergey
А кто знает, почему там юзается для примера weakmap а не просто map?
Smooth Operator
там в примере есть, в качестве ключа инстанс класса
Rafael 🌵
там в примере есть, в качестве ключа инстанс класса
Там же написано что и объекты в качестве ключей можно использовать, только это нихрена не удобно
Smooth Operator
неудобно если руками писать все это
Дима
А, понятно
Дима
И хрен с ним
Aslan
с чего лучше начать обучение js: с книги "Выразительный js", или learn.js.ru ?
Aslan
или лучше совмещать ??
Nikolay
Народ, поделитесь мудростью, предстоит отрефакторить кучу js и css, что может помочь в этом? Например, в стилях полная каша и безобидное на первый взгляд изменение может сломать верстку в неочевидном месте сайта
Smooth Operator
С жсом помогут тесты
Smooth Operator
Со стилями лучше в церковь сходи
Rafael 🌵
Eslint
Rafael 🌵
Касколько я знаю css только ручками
Rafael 🌵
stylelint https://stylelint.io/
Nikolay
Спасибо) А про сравнение скринтошов или типа того есть что-то удобное?
Oleg
Это я как человек, который много чего рефакторил, говорю
Oleg
Но если нужно...
Oleg
Поэтапно нужно делать, в зависимости от ситуации - послойно
Oleg
То есть не 1 набор функционала за раз, а сразу весь
Oleg
Но
Oleg
Только в виде одной фичи конкретной
Oleg
Например, можно начать со стилистики кода, руками или автоматом переформатировать, это поможет читать в более привычном виде код
Oleg
После - локальные переменные, если они однобуквенные и тп - понять зачем они и поменять имена на адекватные
Oleg
Дальше по неймингу функций и тп пройтись и молиться чтобы сильно не явные вызовы не были
Oleg
Если молиться не помогает - поискать имена функций и в строках и тп
Oleg
И вот уже после подготовки - уже перейти к доработке реальных конкретных частей кода
Oleg
Желательно не трогать сразу архитектуру
Oleg
Плавно
Андрей
А как в вебпаке сделать css bundle? А то не особо гуглится у меня.
Дима
— Типизировать чтобы было понятно — Покрыть тестами чтобы не париться что что-то сломаешь — Спокойно рефакторить
Oleg
Если есть хоть какая модульность и разделение функционала - в рамках этих модулей рефакторить
Oleg
Иногда, в случаях когда есть костыльное, но рабочее апи между модулями - использовать паттерны когда оставляем апи, но делаем всё по своему
Oleg
Когда связанные модули все будут отрефакторены - уже заменяем костыльное апи на подготовленное своё
Nikolay
Кстати по поводу модульности, что поможет построить карту reqire-ов и импортов?
Oleg
— Типизировать чтобы было понятно — Покрыть тестами чтобы не париться что что-то сломаешь — Спокойно рефакторить
Тоже вариант, но типизировать - это вопрос ещё тот - тайпскрипт? Флоу? Прочее такое? Или комментов и хорошей ИДЕ ок? Тут всё от конечной цели зависит
Oleg
Иногда ты вообще не знаешь как оно должно функционировать, на такое невозможно тесты написать
Oleg
Так что первый этап с приведением к единому стилю и неймингу - не избежать
Дима
Любые, которые позволят тебе понять, что ничего не сломано
Rafael 🌵
Любые, которые позволят тебе понять, что ничего не сломано
Но юнит тесты для старого кода придётся по 100 раз переписывать
Дима
shit happens
Rafael 🌵
shit happens
Кстать, ты вчера сказал что у меня код говнистый в проекте, антипаттерны все дела Что почитать посоветуешь чтобы это дело исправить?
Oleg
Вообще забавно когда ты не знаешь как работает функционал полностью, аналитик проекта не знает как работает функционал полностью, пользователи не знают как работает функционал полностью, те кто писали это 7 лет назад уже тогда не знали как работало полностью то, что было до них. Но! Оно работает и продолжает работать.
🦜
я вот этот курс смотрю
Oleg
Лечит всё
Vitaly
Кстати про тесты, недавно было в топе gh какое-то расширение для браузера для написания аксептенс тестов методом прокликивания сайта, никто не встречал?)
🦜
🦜
Вот эта книга еще норм
Oleg
Была тема с монкей тестами - миллионы рандомных кликов по разным частям сайта в надежде словить баг
Oleg
На хабре была статья, 2012-2014 годы где-то
Nikolay
Спасибо за советы, чат)
Дима
Кстать, ты вчера сказал что у меня код говнистый в проекте, антипаттерны все дела Что почитать посоветуешь чтобы это дело исправить?
ну ты и накрутил себя) Я просто прошёлся по тому, что vue форсит плохие практики)) Нормальный код)
Дима
Только в compose какая-то странная организация кода, а так особо ничего плохого не заметил)
Rafael 🌵
Книга "Чистый код"
Не, я больше хотел персонализированно по своему коду получить фитбек
Rafael 🌵
Google Testing Blog: Announcing OSS-Fuzz: Continuous Fuzzing for Open Source Software https://testing.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html?m=1
Rafael 🌵
Кажется это оно
Serhiy
В js?
И в самом хроме )
Rafael 🌵
Только в compose какая-то странная организация кода, а так особо ничего плохого не заметил)
Как раз таки compose я почти полностью стырил из koa2-compose, просто for ... of заменил, потому что babul не поддерживает трансляцию с es6 Но пасиба👍
Serhiy
https://github.com/marmelab/gremlins.js/blob/master/README.md вот они
Andrey 😼
Где-то на гитхабе видел пакет для ноды, добавляющий поддержку es6 imports (хрен знает как они это сделали, но все же), никто не видел случаем? А то найти не могу