Структура библиотеки для публикации
Организуйте lib, src и открытый API
«Структура библиотеки для публикации» — бесплатный урок Dart Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
Пакет — это просто папка
Публикуемый Dart-пакет — это обычная папка с файлом pubspec.yaml в корне. Этот единственный файл превращает обычный код в то, что может размещаться на pub.dev. 📦
Папка lib — общедоступное место
Всё, что пользователи должны импортировать, находится в lib. Файлы непосредственно в lib являются частью общедоступного интерфейса пакета, поэтому размещайте их внимательно.
Скрытие внутреннего кода в lib/src
Код, который не должен быть доступен извне, помещайте в lib/src. По соглашению эти файлы являются деталями внутренней реализации и не предназначены для прямого импорта пользователями.
lib/
my_package.dart
src/
helper.dartФайл точки входа
Большинство пакетов поставляются с одним основным файлом в lib, названным в честь пакета. Эта точка входа импортируется пользователями для доступа ко всей библиотеке сразу.
import 'package:my_package/my_package.dart';Повторный экспорт с помощью ключевого слова export
Точка входа использует export, чтобы предоставить пользователям нужные части из lib/src. Так вы формируете единый чистый и продуманный общедоступный API.
export 'src/calculator.dart';
export 'src/parser.dart';Продуманное определение общедоступного API
Набор экспортируемых имён — это ваш общедоступный API. Делайте его небольшим и стабильным, поскольку каждый экспортируемый символ — обещание вашим пользователям.
Подчёркивания означают приватность
Имена, начинающиеся с подчёркивания, в Dart являются приватными для библиотеки. Даже внутри lib/src добавляйте одно подчёркивание к вспомогательным элементам, которые не должны становиться доступными извне.
int _internalCount = 0;Папка example
Добавьте папку example с небольшой запускаемой программой. Она показывает пользователям, как работает ваш пакет, и приносит вам баллы на pub.dev. ✨
Тесты находятся в test
Автоматизированные тесты хранятся в папке test за пределами lib. Они не поставляются пользователям, но подтверждают, что пакет работает согласно обещаниям.
Файлы в корне имеют значение
В корне хорошего пакета также находятся README, CHANGELOG и LICENSE. Именно эти три файла pub.dev показывает посетителям в первую очередь.
Чистая структура с первого взгляда
В итоге структура выглядит как карта: lib предназначена для API, src — для внутренних компонентов, а также есть example, test и файлы метаданных.
my_package/
lib/
example/
test/
pubspec.yamlБыстрая проверка
Где следует размещать код, который должен оставаться внутренней деталью реализации?
Итоги: аккуратная библиотека
Вы изучили структуру: в lib находится общедоступный API, lib/src скрывает внутренние компоненты, а export определяет то, что видят пользователи. Сначала структура, затем публикация. 🚀
Часто задаваемые вопросы
Урок «Структура библиотеки для публикации» бесплатный?
Да — полный текст урока «Структура библиотеки для публикации» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Структура библиотеки для публикации»?
Организуйте lib, src и открытый API Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Структура библиотеки для публикации»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Структура библиотеки для публикации
- Документирование с помощью комментариев dartdoc
- Линтинг, форматирование и оценка pana
- dart pub publish для pub.dev