Дарт: библиотека и экспорт для веб-приложений
Я экспериментирую со своим первым веб-приложением Dart и не собираюсь превращать какую-либо часть моего приложения в библиотеку для повторного использования для других приложений / библиотек. Как такового у меня нет lib
каталог в моем проекте; скорее у меня есть web
каталог.
Я предполагаю, что мое намерение состоит в том, чтобы мой web
Каталог выглядит так:
web/
Main.dart <-- where my main method is
logging/
Logger.dart
LogLevel.dart
model/
Signin.dart
Signout.dart
view/
SigninView.dart
signinView.html
presenter/
SigninPresenter.dart
...lots of other packages
Несколько вопросов:
- Если мое приложение целиком (все под
web
) считаться частью того жеlibrary
? Если да, то я бы поставилlibrary myapp;
в верхней части каждого файла дартс? В противном случае, каков уровень детализации дляlibrary
? Должен ли я поставить его на уровне пакета, и иметьLogger
а такжеLogLevel
внутриlibrary logging;
? Это на уровне класса / файла и имеетlibrary logger
иlibrary log_level
? - Мой
web
каталог настроен правильно? Я прихожу с Явы, поэтому я лечуweb
так же, как Java/Maven'ssrc/main/java
каталог и настройка структуры пакета вweb
Это имеет смысл для меня... - Я понимаю что
import
Ключевое слово для импорта типов источников из других пакетов. Но что насчетexport
- что это делает?
1 ответ
Я бы порекомендовал вам иметь lib/
каталог и положить общий код внутри него. Если код не предназначен для непосредственного использования другими частями вашего приложения, переместите этот код в src/
каталог внутри lib/
, Я понимаю, что вы не планируете использовать ваше приложение для повторного использования другими приложениями, но код, который используется различными частями вашего приложения, вероятно, должен жить внутри lib/
,
Во многом это вопрос удобства и условностей, но я стараюсь сохранить web/
каталог довольно скудный, даже заходит так далеко, что размещает только те .dart
файлы в нем, которые непосредственно упоминаются в .html
файл. Ваш пробег может отличаться, но я считаю, что это соглашение (размещение общего кода в lib/
и веб-код в web/
помогает держать вещи в чистоте).
Что касается директив библиотеки, мне нравится использовать одно пространство имен, которое совпадает с именем приложения.
Итак, библиотека в lib/models.dart
может быть объявлено так:
library myApp.models;
Библиотека в `web/foo/bar.dart'может быть объявлена так:
library myApp.web.foo.bar;