Baserow использует PostgreSQL для постоянного хранения данных.
В основе бэкенда мы используем фреймворк Django. Был выбран популярный фреймворк, чтобы снизить порог вхождения для создания плагинов. Мы также искали фреймворк, включающий все необходимое, простой и проверенный. Django был очевидным выбором.
Для быстрого создания эндпоинтов, обработки аутентификации, сериализации объектов, валидации и выполнения многих других задач мы используем Django REST Framework. Вы найдете его в основе каждого эндпоинта.
https://www.django-rest-framework.org/
Мы используем pytest для легкого и автоматического тестирования всего Python-кода. Большая часть кода бэкенда покрыта тестами, и мы хотим сохранить это! Код также тестируется в конвейере непрерывной интеграции. Его можно также протестировать вручную в среде разработки. Убедитесь, что вы находитесь в контейнере backend
, и выполните следующую команду.
$ make test
https://docs.pytest.org/en/latest/contents.html
Flake8 позволяет легко соблюдать стиль кода Python. Код проверяется в конвейере непрерывной интеграции. Его можно также проверить вручную в среде разработки. Убедитесь, что вы находитесь в контейнере backend
, и выполните следующую команду. Если весь код соответствует стандартам, вы не должны увидеть никакого вывода.
$ make lint
https://flake8.pycqa.org/en/latest/
Black автоматически форматирует весь наш Python-код в единый согласованный стиль. Цель состоит в том, чтобы снизить и, возможно, полностью исключить необходимость беспокоиться о форматировании при написании и проверке кода.
https://black.readthedocs.io/en/stable/index.html
make format
Для международизации (i18n) мы используем встроенную поддержку Django. Фреймворк международизации Django позволяет нам легко переводить наше веб-приложение на несколько языков.
Для использования функций международизации Django мы оборачиваем наш текст специальной функцией gettext
или gettext_lazy
. Для получения дополнительной информации обратитесь к документации по международизации и локализации Django. Затем мы создали команду Makefile для сборки или обновления всех этих строк в файл сообщений.
make translations
Это вызовет команду makemessages
Django для английского языка всех установленных приложений. Создание сообщений для других языков и этап компиляции всех этих сообщений будут автоматически обрабатываться Weblate
перед каждым релизом.
Для безопасного обмена чувствительными данными, такими как токены сброса пароля, мы используем проверенную библиотеку ItsDangerous.
https://itsdangerous.palletsprojects.com/en/1.1.x/
Иметь актуальную документацию API и иметь ее в формате OpenAPI — это необходимо. Чтобы избежать ошибок, содержимое должно быть максимально близко к коду и максимально автоматизировано. DRF Spectacular предоставляет все это!
https://pypi.org/project/drf-spectacular/
Для упрощения создания HTML-почты мы используем MJML. Этот инструмент делает создание адаптивных писем легким, которые работают во всех основных почтовых клиентах. Хотя это может показаться избыточным для писем сброса пароля, в будущем будут добавлены более сложные письма, и мы хотим иметь прочную основу.
Из-за нашего опыта работы с Vue.js и отличных возможностей, которые предоставляет Nuxt.js, выбор этого фреймворка для фронтенда был очевидным. Он предлагает серверную рендеринг, автоматическую разбивку кода, хорошую структуру проекта, модульность и множество других функций из коробки, которые необходимы для Baserow.
Stylelint используется для обеспечения правильного форматирования всего SCSS-кода. Он вызывается при выполнении команды make stylelint
и работает в реальном времени в среде разработки через prettier.
ESLint используется для обеспечения правильного форматирования всего JavaScript-кода. Он вызывается при выполнении команды make eslint
и работает в реальном времени в среде разработки через prettier.
Сборка всех ресурсов Baserow. Это используется по умолчанию в Nuxt.js.
Из-за своей простоты и совместимости с Vue и Nuxt мы выбрали JEST в качестве фреймворка для тестирования Web-фронтенда. На данный момент покрытие кода минимальное, поэтому здесь есть место для улучшений. Код также тестируется в конвейере непрерывной интеграции. Его можно также протестировать вручную в среде разработки. Убедитесь, что вы находитесь в контейнере web-frontend
, и выполните следующую команду.
$ make jest
Для улучшения пользовательского опыта мы используем набор иконок Iconoir на Web-фронтенде.
Генератор Changelog — это наш собственный инструмент, предназначенный для упрощения написания записей Changelog, которые не вызывают конфликтов при слиянии.
При создании каждого слияния, требующего Changelog, следует использовать генератор Changelog для создания таких записей.
Дополнительные сведения см. здесь.
Благодарим создателей и вкладчиков вышеупомянутых инструментов! Без вас Baserow не стал бы тем, чем он есть сегодня.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )