Notion: разбираемся как айтишники, как он устроен внутри и чем его можно заменить
easy

Notion: разбираемся как айтишники, как он устроен внутри и чем его можно заменить

Сервис, который заблокировал пользователей из России

Notion — онлайн-приложение для организации работы и личных дел в одном месте. Это одновременно цифровой блокнот, планировщик, список задач, база данных и многое другое. Всё хранится в облаке, и получить доступ к данным можно с любого устройства. Информацию можно скрывать или публиковать. Удобная штука для всех, кто хочет сделать свою базу знаний или структурировать информацию по проектам.

26 августа на сайте Notion появилось сообщение, что 9 сентября платформа закроет доступ пользователям из России. Мы решили изучить, как устроен Notion и какие у него есть аналоги.

На каких технологиях работает Notion

Интерфейс Notion основан на React.js — библиотеке JavaScript для создания пользовательских интерфейсов. Особенность React.js в том, что она использует виртуальный DOM (Document Object Model, «объектная модель документа»). Создание и редактирование документов в Notion происходит онлайн, и получается, что браузеру нужно постоянно обновлять часть страницы, в которой происходят изменения. Если делать это в реальном DOM, будет медленно. React.js создаёт его легковесную копию, сравнивает её с реальным DOM и определяет, какие изменения внести так, чтобы браузер не пересобирал всю страницу полностью.

HTML, CSS и JavaScript используются для структурирования и оформления контента, а также для включения интерактивных элементов. Помимо чистого JavaScript, в Notion применяется TypeScript — надстройка над JavaScript, которая добавляет ему новые функции. Например, в TypeScript можно заранее указать, какого типа данные будут храниться в переменных. Если переменная объявлена как число, TS не позволит присвоить ей строку. Это называется статической типизацией и помогает избегать многих ошибок.

Бэкенд-архитектура основана на Node.js. Это серверная платформа на базе JavaScript для обработки запросов, выполнения бизнес-логики приложения и работы с базами данных. Node.js обрабатывает несколько операций в фоновом режиме, не прерывая основной поток. Это обеспечивает обновление в реальном времени и возможность совместной работы. Для упрощения процессов создания маршрутов и обработки HTTP-запросов используют Express — фреймворк для Node.js, который обеспечивает быструю и гибкую настройку серверной логики. С ним многочисленные запросы при работе с Notion обрабатываются без задержек.

Базы данных в Notion управляются PostgreSQL — системой управления реляционными базами данных. Она поддерживает сложные SQL-запросы и транзакции и хранит данные в таблицах с предопределёнными столбцами и типами данных. Такая строгая структура помогает избежать ошибок и упростить работу с данными. Связи между данными устанавливаются через внешние ключи — это гарантирует, что связи останутся корректными. Операции с данными выполняются атомарно, то есть по кусочкам. Если какая-то операция не удаётся, все изменения отменяются, а данные не повреждаются. 

Redis — ещё один бэкенд-инструмент в Notion, который выполняет много ключевых задач для высокой производительности и надёжности сервиса. Это высокоскоростная база данных, которая хранит данные в оперативной памяти, за счёт чего их можно быстро их записывать и читать. Redis используется для кэширования, управления сессиями, обработки очередей задач и синхронизации данных в реальном времени. В результате Notion работает стабильно даже при высоких нагрузках и большом количестве одновременных сессий пользователей.

Сетевые технологии и API

Соединение между клиентом и сервером обеспечивает протокол связи WebSockets. Традиционные HTTP-запросы инициируются клиентом и состоят в односторонней передаче данных от клиента к серверу и обратно по каждому запросу. WebSockets позволяет серверу отправлять данные клиенту без ожидания запроса от него.

У Notion есть API, которые позволяют интегрировать платформу с другими инструментами и сервисами. Публичный API Notion построен на основе REST, работающего через стандартные HTTP-запросы. API включает множество эндпойнтов — конкретных URL-адресов, определяющих ресурс или функцию, к которым можно получить доступ. Эти эндпойнты включают страницы, базы данных, блоки и комментарии. API использует стандартный протокол аутентификации OAuth 2.0, что позволяет приложениям и сервисам безопасно получать доступ к данным пользователя.

Благодаря такому мощному технологическому стеку Notion получается гибким и масштабируемым приложением, которое объединяет множество инструментов. В результате использовать Notion можно самыми разными способами — как площадку для портфолио или блога, личную записную книжку или корпоративную базу знаний с таск-трекером. При этом данные обрабатываются быстро, а производительность остаётся высокой даже со множеством пользователей онлайн одновременно.

Как сохранить свои данные в Notion

Если вы пользуетесь Notion и храните там какие-то данные, их можно выгрузить на свой компьютер, чтобы не потерять. Доступ к Notion из России закроется 9 сентября, поэтому нужно успеть до этого момента.

Экспортировать можно всё: отдельные страницы, базу данных и даже всё рабочее пространство (в этом случае потребуются права администратора). Страницы и базы данных можно сохранить у себя в формате PDF или как HTML-документы. Также страницы, которые не относятся к базе данных, можно выгрузить как файл Markdown. Полностраничные базы данных можно экспортировать в виде файла CSV с файлами Markdown для каждой подстраницы.

Вот как сохранить у себя страницу или базу данных из Notion:

1. Открыть Notion, нажать значок с тремя точками в верхнем углу страницы и выбрать в выпадающем меню пункт Export:

2. На экране появится диалоговое окно с параметрами выгрузки. В пункте Export format нужно выбрать желаемый формат документа, например PDF.

3. В пункте Include content нужно указать, что выгрузить: весь контент или только текст без файлов и изображений.

4. Если сохраняете данные в PDF, система попросит также указать размер страницы Page format и масштаб Scale percent:

5. Если у страницы есть подстраницы, можно выгрузить их тоже, активировав ползунок Include subpages.

6. После этого нужно указать папку на устройстве, в которую будут выгружены файлы.

Если у вас есть права администратора рабочего пространства, можно выгрузить его в HTML, Markdown или CSV (если это база данных). Среди выгруженных файлов будет index.html с картой сайта, с помощью которой можно будет перемещаться между документами. Но если в рабочем пространстве есть, например, частные страницы других пользователей, они не будут включены в экспорт. 

Вот как сохранить у себя рабочее пространство из Notion:

1. Открыть Notion и в левой вертикальной навигационной панели выбрать Settings & members.

2. Откроется окно аккаунта. В левой вертикальной навигационной панели нужно выбрать Settings, а справа — Export all workspace content:

3. На экране появится диалоговое окно с параметрами выгрузки. В нём нужно выбрать формат Export format, в котором будут выгружены данные. PDF доступен только бизнес-аккаунтам.

4. В пункте Include databases нужно выбрать вид отображения баз данных (текущий Current или по умолчанию Default).

5. В пункте Include content нужно указать, что выгрузить: весь контент или только текст без файлов и изображений.

6. После этого Notion отправит на привязанный к вашему аккаунту адрес электронной почты ссылку, по которой можно будет скачать себе всё рабочее пространство.

Помимо экспорта на свой компьютер можно перенести данные из Notion в другой сервис. Например, это можно сделать в EvaWiki, Teamly, Yonote и WEEEK. Мы советуем не только перенести данные, но и выгрузить их — для надёжности, мало ли что.

Российские аналоги Notion

Notion — это большой конструктор из различных инструментов. Мы будем исходить из того, что аналог должен иметь такие возможности:

  1. Предлагать готовые шаблоны страниц.
  2. Собирать страницы из каких-то готовых блоков.
  3. Позволять детально контролировать внешний вид и структуру текста и других элементов.
  4. Обеспечивать одновременную работу разных пользователей с одним документом.
  5. Содержать календари.
  6. Работать с таблицами.
  7. Производить простые вычисления.
  8. Ссылаться из одних документов на другие.
  9. Публиковать материалы в виде веб-страниц.
  10. Поддерживать интеграции с другими сервисами.
  11. Идеально, если всё это будет на бесплатном тарифе.

Аналоги мы выбирали из российского ПО. Так спокойнее, потому что запрет предоставлять облачные сервисы российским пользователям рано или поздно может коснуться и других иностранных платформ. А кроме того, в России много крутых ребят, которые делают отличные продукты. Если научитесь — будете в их числе.

GemDoc — сервис для совместной работы над контентом. Есть текстовый редактор, таблицы, функции для создания голосований, добавления файлов и даже блоков кода с подсветкой синтаксиса для популярных языков программирования. GemDoc — продукт стартапа Gemforge из города Иваново. Они сами используют GemDoc в работе и постоянно добавляют в него новые функции.

Teamly — платформа для совместной работы и управления знаниями, которая поддерживает умные таблицы, базы данных и управление проектом. У Teamly те же возможности, что у Notion, есть даже встроенный ИИ-ассистент. Можно перенести данные из Notion. Разработкой Teamly занимается российский диджитал-интегратор QSOFT.

Yonote — ещё одна альтернатива Notion, в которой есть практически те же возможности, включая ИИ-ассистента. Можно перенести данные из Notion. Проектом занимается компания «ВИЛИКС» из Краснодара.

WEEEK — сервис для управления проектами, в котором, помимо таск-менеджера и CRM, есть база знаний. В ней можно создавать документы, форматировать текст, добавлять изображения и видео, вставлять списки и таблицы и прикреплять файлы. Можно перенести данные из Notion. Разработкой занимается московская компания «ВИИИК».

Что дальше

Дальше — как обычно: будем следить за тем, что происходит, и разбираться в этом как технари. Если хотите научиться уметь так же и делать это быстро и с пониманием — приходите в Практикум. А если хотите сами создавать аналоги таких продуктов — тоже приходите в Практикум, там учат как раз создавать реальные проекты.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Еще по теме
easy
[anycomment]
Exit mobile version