Ответы пользователя по тегу Angular
  • Google вообще использует Angular или как?

    @CoyoteSS
    Я как-то беседовал с Alex Okrushko (software engineer в Firebase), он сказал, что Google активно использует Angular в своих продуктах, например самое крупное приложение на Angular это Google Cloud Platform (более 1 млн. строк кода на Angular).
    Angular довольно специфичный фреймворк, он в основном ориентирован на enterprise, крупные и сложные приложения, и он более сложный для изучения и полноценного использования, отсюда как побочный эффект получаем меньшую популярность в сравнении с React.
    Vue активно набирает обороты, имеет больше всех звёзд на GitHub, но в действительности работы/вакансий на нём меньше, чем на Angular/React.
    Ответ написан
    Комментировать
  • Почему по-умолчанию в Angular нет hot-reload?

    @CoyoteSS
    Попробуй запустить dev сборку с флагом --hmr.
    По умолчанию HMR в Angular CLI отключён.

    ng serve --hmr
    Ответ написан
    Комментировать
  • Как создать глобальную переменную?

    @CoyoteSS
    В вашем случае можно создать глобальный сервис и использовать его как хранилище с использованием BehaviorSubject.

    @Injectable({
      providedIn: ‘root’
    })
    export class SomeService {
      private readonly _valueSubject = new BehaviorSubject(null);
      public readonly value$: Observable<any> = this._valueSubject.asObservable();
      public setItem(value: any): void {
        this._valueSubject.next(value);
      }
    }


    Далее инжектите его в классах где собираетесь получать/устанавливать значение. Мы через компонент просто подписываемся на Observable для получения новых значений, а внутри сервиса через метод Subject’a next() передаём новое значение. Ну можете использовать конечно же упрощенный подход без Observable/Subject.

    В качестве альтернативы можете рассмотреть использование State Manager’a например NGRX, NGXS, Akita, их можно постепенно внедрять в проект.
    Ответ написан
    Комментировать
  • В чём разница между е2е и Unit тестами?

    @CoyoteSS
    Unit тесты (они же модульные тесты).
    Фреймворки: Jest, Jasmine/Karma.
    Лежат в той же папке рядом с тестируемым файлом и имеют суффикс .spec.
    Тестируют один конкретный модуль, под модулем можно понимать конкретную функцию или класс, в общем они тестируют что-то одно и служат прекрасной документацией, которая всегда является актуальной. Для лучшего покрытия кода и его улучшения используется техника TDD (red, green, refactor), сначала пишем тесты, потом код, чтобы эти тесты проходили и рефакторят, затем процесс повторяется. Обычно их пишут чаще, чем e2e тесты и они дешевле, в том плане, что они меньше в плане размера кода и проще для написания.

    E2E тесты.
    Фреймворки: Cypress, Protractor.
    Тестируют часть приложения и их взаимосвязь (тут есть много нюансов), вообщем у них больше зона охвата и они тестируют именно поведение приложения, имитируя действия пользователя. Создаются как отдельный проект.

    Вообщем как-то так, имхо.
    Ответ написан
    Комментировать
  • Как открыть проект Angular -cli в браузере?

    @CoyoteSS
    Так происходит потому что вы не следуете архитектуре Angular приложений, каждая отдельная HTML страница должна иметь связанную с ней модель - TS файл, опционально еще CSS файлы и все это вместе называется «компонент». Далее этот компонент должен быть задекларирован в модуле @NgModule, поле declarations, вы как бы регистрируете его в своем приложении, указываете там TS класс компонента (1 компонент - 1 модуль), обычно это AppModule, но и это не все, в шаблоне приложения (app.component.html) или любом другом, вставляете селектор вашего компонента.

    Создать компонент: ng g c something-cmp
    Создать модуль: ng g m something-module
    CLI автоматически создаст папку со всеми необходимыми файлами и заимпортит в appmodule приложения.
    Ответ написан
    Комментировать
  • Какую книгу прочитать по Angular?

    @CoyoteSS
    Книги по конкретным библиотекам/фреймворкам зачастую быстро устаревают, в данном случае Angular - это очень быстро развивающийся фреймворк, в котором многое поменялось за последние 2-3 года, куча устаревших API, лучшие практики, взять тот же способ реализации Lazy Loading, вообщем куча изменений. Переведенные книги устаревают еще быстрее, поэтому нет смысла тратить на них время.

    Вы можете найти более лучший способ изучить Angular:
    1) официальная документация
    2) статьи на Medium/Хабр от известных авторов
    3) хорошие курсы на udemy, в которых с нуля создается полноценное приложение
    Ответ написан
    Комментировать