Дарт: библиотека и экспорт для веб-приложений

Я экспериментирую со своим первым веб-приложением 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

Несколько вопросов:

  1. Если мое приложение целиком (все под web) считаться частью того же library? Если да, то я бы поставил library myapp; в верхней части каждого файла дартс? В противном случае, каков уровень детализации для library? Должен ли я поставить его на уровне пакета, и иметь Logger а также LogLevel внутри library logging;? Это на уровне класса / файла и имеет library logger и library log_level?
  2. Мой web каталог настроен правильно? Я прихожу с Явы, поэтому я лечу web так же, как Java/Maven's src/main/java каталог и настройка структуры пакета в web Это имеет смысл для меня...
  3. Я понимаю что 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;
Другие вопросы по тегам