Pull to refresh
6
0
Валерия Токарева @Devuwkasveslom

Frontend-разработчик

Send message
Про удобство могу ответить я. Это мое личное мнение, которое я плохо выразила. Схема structured body предполагает меньше уровней вложенности и глядя на контент в этом формате можно просто быстрее понять структуру DOM-дерева, которое будет построено. Полагаю, что у автора ProseMirror были причины делать, например, марки в виде отдельного массива объектов со своими типами и атрибутами, а также включать ссылку в список марок. Это все детали, конечно. Безусловно, у нас не стоял выбор между форматом ProseMirror и structured body, потому что последний уже был принят. Но лично мне разбираться в схеме формата ProseMirror было немного сложнее.
Кажется, не очень поняла последний коммент. Сложный код ведет к багам, да. Если можно не разрабатываться что-то сложное с нуля, то лучше этого не делать, конечно. Но бывают также случаи, когда готовые решения не подходят и приходится самим писать что-то большое и сложное.
Блокировщики рекламы — это сторонние приложения, которые переопределяют стили, блокируют запросы и всячески хозяйничают на странице. При этом их поведение может зависеть от того, какие у вас настройки выбраны, какие белые и черные списки подключены и т.д. На данный момент бизнес-модель Sports.ru такова, что мы получаем деньги от рекламы, поэтому можем гарантировать корректную работу сайта только с отключенными блокировщиками. Мы не игнорируем совсем подобные проблемы, но как правило приоритет у них довольно низкий.
Важнее всего было уйти от сохранения контента в HTML. Тут tiny уже ничего не мог предложить, к сожалению.
К сожалению, мы на него наткнулись около года назад, когда у нас уже был готов прототип и мы готовились к запуску своей беты. Тут важно понимать, что выбор инструмента и проектирование происходили где-то в середине 2018 года. Мы рассмотрели те библиотеки, которые были популярны в момент исследования. С конца 2018 года уже начался активный этап разработки.
Если бы у нас был один небольшой проект, то наверное формата ProseMirror нам бы и правда хватило (на одном небольшом промо-проекте, где нужен был редактор текста, так и сделали). Проблема тут в том, что формат ProseMirror не очень удобен для хранения данных и последующей работы с ними, все же задумывался он для другого.
И кроме того, когда мы начинали работу над редактором, наш формат structured body, который нам подходил и по поводу которого мы были уверены, что мы с ним надолго, уже был утвержден. buyanzashitkarman уже писал про это в комментарии чуть выше
Да, стабильный релиз этой библиотеки вышел уже, когда мы уже готовили бету. А так бы с удовольствием сами использовали
Благодарю за разбор нашего сайта. Действительно, у нас далеко не все идеально, проект старый, с кучей легаси. Мы о своих проблемах знаем и работаем над ними. В том числе описанный в статье кейс является частью работ по приведению всего в порядок. Если вы знаете, как справиться лучше и быстрее, то у нас как раз открыто несколько вакансий.
Спасибо! Выглядит действительно как инструмент, который мог бы нам подойти сейчас. Когда мы выбирали библиотеку 1.5 года назад, мы про него не подумали. Возможно, он был не такой популярный, как остальные. Кроме того, опыт The New York Times и The Guardian, остановившихся на ProseMirror подкупал. Мы ни в коем случае не настаиваем на том, что наше решение лучшее из имеющихся. Как раз поделились своим опытом, чтобы кто-то не наступил на какие-то наши грабли.
Конвертеры нужны, потому что невозможно было мгновенно отказаться от старого редактора и хранения постов в HTML. Сейчас это скорее временное решение, пока мы находимся на этом переходном этапе. В будущем, когда мы полностью перейдем на новый онлайн-редактор, а также все клиенты смогут рендерить HTML из structured body, конвертеры станут не нужны.
Можете, пожалуйста, пояснить, что вы имеете в виду под велосипедом? Это была большая задача по переезду на новый стек, в проектировании решения которой было задействовано много людей от продакт-менеджеров и дизайнеров до девопс-инженеров, суть которой мы постарались отразить в разделе «1.2. Описание задачи, которая стояла перед разработчиками». Смысл был в том, что нам не нужен был просто какой-нибудь онлайн-редактор. Нам нужен был редактор, который:
  • соответствует нашей дизайн-системе,
  • удовлетворяет потребностям наших пользователей,
  • интегрируется в действующий проект,
  • может быть переиспользован на других проектах в компании,
  • весит как можно меньше.


Разработчики из The New York Times в своей статье про то, как они разрабатывали свой WYSIWYG-редактор, где описывается похожий кейс, прямо говорят, что было не очень-то просто.
Text editors are much more complex than many know.
Все именно так, как написал buyanzashitkarman.
В принципе, можно было бы не делать новый редактор, а просто добавить автосохранение и возможность загрузки картинок в собственное хранилище – и большая часть жалоб пользователей и сотрудников отпала бы. Но хотелось все же не поддерживать инструмент на старых технологиях, а создать новый современный редактор, который мы сможем легко развивать и масштабировать.

То есть, мы понимали, что можно было остаться с TinyMCE, но хотелось именно отказаться от его главного недостатка — хранение контента в HTML.
Спасибо! Конечно, мы знаем про draft.js, равно как и про другие библиотеки для работы с онлайн-редакторами (Slate, ProseMirror, Quill). На стадии выбора инструмента мы рассмотрели разные библиотеки и в итоге остановились на ProseMirror, потому что он позволяет работать с экосистемой на Vue (в отличие от упомянутого draft.js, жестко заточенного под React), а также является модульным и расширяемым, то есть мы можем использовать только те возможности, которые нам нужны, что для нас является очень критичным. Но статья все же посвящена непосредственно работе с самим ProseMirror, поэтому процесс выбора библиотеки остался за кадром.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity