Веб-версияОткрыть в Telegram

ПостИ начнем мы с рефакторинга...

6 августа 2021
D
dev.easy
И начнем мы с рефакторинга... Есть в нашем React приложении текстовый редактор(WYSIWYG на минималках), написан он на SlateJS. SlateJS - оч крутая либа, я бы даже сказал фреймворк(со встроенной поддержкой React'а) для сложных текстовых редакторов типа гугл доков. Он полностью на TS, неплохой API, правда дока немного хромает, но это ниче, после DraftJS это как глоток свежего воздуха. Так вот, прилетела таска - добавить новый функционал, пофиксить пару мелких багов, реюзнуть в новых местах, ну в целом все как обычно. Первым делом что я сделал - это обновил Slate до последней версии, читанул чендж логи, дабы убедится что нет breaking changes, типичный флоу обновления либы. После апдейта начал рефачить. Разбил все по плагинам, улучшил API редактора, вроде как сделал крутой реюзабл компонент с возможностью кастомизации - убил пол дня. Ближе к часам 4 вечера начал тестить, qa у нас нет. Через минут 20 нашел, что отвалился "FakeSelection" плагин. Это такая штука которая эмулирует выделение текста, когда теряется фокус редактора. Например что бы сделать выделенный текст ссылкой нужно отобразить поле для ввода ссылки, т.к. в браузере только 1 элемент может быть в фокусе, то при вводе ссылки, фокус с редактора теряется, следовательно, и выделение текста тоже, а юзику нужно показать к чему эта ссылка будет добавлена, вот тут в дело и вступает этот плагин. Начал я инвестигать что же идет не так, потратил часа 4, нагородил каких-то хаков, откатил часть изменений, перепроверил все по 10 раз, а оно все не заводится. В 8 вчера вспомнил что перед рефакторингом я обновил Slate, откатился на старую версию и оп, все работает! РАБОТАЕТ!!! Бомбит до сих пор, кучу времени убил... Вывод - не обновляйте либы вместе с рефакторингом, иначе у вас не будет гарантий что проблемы в вашем коде, либы иногда тоже ломаются или меняют свое поведение на которое ваш код уже завязан. #рефакторинг #обновления #зависимости
1 · 113 ·

Рядом в ленте

Ddev.easyВсем привет, решил завести канал с заметками о современной фуллстак-разработке. Костыли, фишечки, находки и боль трудовых будней.
это сообщение
Ddev.easySVG иконки в React'е с сюрпризами. Наши дизайнеры все еще юзают Скетч. Это боль для всех, он тупит, к нему нужен Zeplin и вот это вот все. Все наши иконки из скDdev.easyИ вот тут начинается самое интересно. Даже несмотря на то, что иконка прошла через SVGR(который рандомит IDшки в каждой иконе, что бы не было коллизий между раз
Ddev.easydev.easy@dev_easy · канал · Технологии
133подписчиков14постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем