1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-baserow

Клонировать/Скачать
directory-structure.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.06.2025 16:02 92285f5

Структура директорий

Одним из вещей, на которые вы обратите внимание, является то, что все файлы и директории находятся в одном репозитории. Это облегчает настройку демонстрационной и разработочной среды, а все изменения можно внести в одну заявку на слияние.

В корневой директории вы найдете три папки: backend, docs и web-frontend. Вы также заметите некоторые файлы, связанные со всем проектом, такие как файл конфигурации редактора, конфигурация непрерывной интеграции, changelog, файлы docker-compose и README. В следующих разделах мы рассмотрим директории более подробно.

backend

В директории backend вы найдете несколько файлов, связанных только с бэкендом. Эта вся директория также добавлена в контейнер бэкенда.

  • requirements/base.txt: файл, содержащий пакеты Python, необходимые для запуска Baserow.
  • requirements/dev.txt: файл, содержащий пакеты Python, необходимые для разработки Baserow.
  • .flake8: содержит конфигурацию линтера flake8.
  • baserow: это фактически файл Python, который просто вызывает файл management.py в исходной директории. Этот файл зарегистрирован как команда через setup.py. Когда кто-то добавляет Baserow в качестве зависимости, они могут использовать команду baserow migrate, которая эквивалентна python src/baserow/manage.py migrate.
  • Dockerfile: создает образ, содержащий только сервис бэкенда. Сборка с флагом --target dev создаст образ, готовый для разработки.
  • Makefile: содержит несколько команд для установки зависимостей, запуска линтера и тестов.
  • pytest.ini: конфигурация pytest при запуске тестов.
  • setup.py: файл setuptools для установки Baserow в качестве зависимости.

src

Директория src содержит полный исходный код модуля бэкенда Baserow.

  • api: это приложение Django, которое предоставляет Baserow через REST API. Хотя это необязательное приложение, оно установлено по умолчанию. Рекомендуется использовать этот пакет. Он содержит несколько директорий, каждая из которых имеет свои URL-ы, представления, сериализаторы и ошибки, связанные с конкретной частью. Например, рабочие пространства и приложения имеют свои собственные директории. Также есть несколько модулей, содержащих общие классы, функции и декораторы, которые используются по всему коду. Модуль urls.py включен в корневую конфигурацию URL под пространством имен api.
  • config: это модуль, содержащий базовые настройки и некоторые настройки для конкретных сред. Он также содержит корневую конфигурацию URL, которая включает API под пространством имен api. Также есть файл wsgi.py, который можно использовать для предоставления приложений.
  • contrib: содержит дополнительные приложения, которые можно установить. Пока что он содержит только бэкенд-часть плагина базы данных. Это приложение установлено по умолчанию, но оно необязательно.
  • core: это обязательное приложение, установленное по умолчанию. Оно содержит некоторые абстрактные концепции, которые используются по всему бэкенду. Также оно содержит код для концепций рабочего пространства и приложения, которые являются основой Baserow. Конечно, есть также вспомогательные классы, функции и декораторы, которые можно использовать повторно.
  • manage.py: файл manage.py Django для выполнения команд управления.

tests

Директория tests содержит папку baserow, которая соответствует структуре директории src/baserow. Вместо того чтобы содержать исходные файлы, она содержит тесты. Файлы всегда начинаются с test_, чтобы убедиться, что они будут обнаружены pytest. Они всегда заканчиваются именем связанного файла в исходной директории.

Также есть директория fixtures, которая содержит модули с классами, имеющими небольшие помощники для создания данных. Например, если вам нужно быстро написать тест, связанный с текстовым полем таблицы базы данных, вы можете быстро создать его следующим образом:

def test_something_important(data_fixture):
    # Таблица, база данных и рабочее пространство также были созданы, так как текстовое поле зависит от них.
    field = data_fixture.create_text_field()

web-frontend

В директории web-frontend вы найдете несколько файлов, связанных только с веб-фронтендом. Эта вся директория также добавлена в контейнер веб-фронтенда.

  • .babelrc: содержит конфигурацию компилятора babel.
  • .eslintignore: текстовый файл, содержащий директории, которые должны быть проигнорированы eslint.
  • .eslintrc.js: конфигурация линтера eslint.
  • .prettierrc: конфигурация prettier.
  • .stylelintrc: конфигурация stylelint для проверки кода scss.
  • Dockerfile: создает образ, содержащий только сервис веб-фронтенда. Сборка с флагом --target dev создаст образ, готовый для разработки.
  • intellij-idea.webpack.config.js: файл конфигурации webpack, который можно использовать в Intellij IDEA. Он добавляет правильные псевдонимы для редактора.
  • jest.config.js: файл конфигурации для запуска тестов с JEST.
  • Makefile: содержит несколько команд для установки зависимостей, запуска линтера и тестов.
  • nuxt.config.js: базовая конфигурация Nuxt для разработочной среды.
  • package.json: основная конфигурация пакета, включая все зависимости для веб-фронтенда.
  • yarn.lock: автоматически сгенерированный файл, содержащий список зависимостей, установленных через yarn.

config

Директория config содержит некоторые базовые настройки Nuxt и настройки для конкретных сред. Например, в разработочной среде добавляется загрузчик eslint в webpack.

modules

Все модули следуют общей структуре директорий Nuxt. Более подробную информацию можно найти в документации Nuxt о структуре директорий.

tests

На данный момент есть только несколько тестов, связанных с веб-фронтендом. Поскольку тесты не поддерживаются в настоящее время, структура директорий не соответствует требованиям. Спецификации должны находиться в соответствующих директориях модулей.

docs

Директория docs содержит markdown-файлы с полной документацией разработчика Baserow. Содержимое этих файлов автоматически размещается на https://baserow.io/docs.

plugin-boilerplate

Содержит шаблон cookiecutter для плагина Baserow. Более подробную информацию можно найти на странице шаблона плагина.

media

Содержит образ Docker на основе nginx, который используется в настройке Docker Baserow для предоставления любых загруженных пользовательских файлов. Это необходимо, так как Django не предоставляет медиа-файлы при отключенной отладке и вместо этого требует запускать собственный веб-сервер для предоставления этих ресурсов.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-baserow.git
git@api.gitlife.ru:oschina-mirror/mirrors-baserow.git
oschina-mirror
mirrors-baserow
mirrors-baserow
develop