All streams
Search
Write a publication
Pull to refresh
4
0.2
Send message

Лучше бы решили проблему с беспроводными наушниками, когда они подключаются в режиме handsfree и выдают ужасный монозвук, и чтобы он стал нормальным надо эти же наушники одновременно подключить к телефону! Позорище

Его, наверно, Наполеон из соседней палаты украл

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

он требует использования головного мозга для написания оптимального кода

Ну с таким критерием он и не нужен тогда - ванилы хватит за глаза.

А типа реакт как УАЗ буханка (сразу вышел идеальным) и его не болтает от края к краю проруби от релиза к релизу?

классы круто!!! -> классы говно, это ж очевидно!
redux круто!!! -> redux говно, это ж очевидно!

А еще там, кстати, уже определилсь как работать с CSS?

NgRx - это самая страшная вещь, с которой мне приходилось сталкиваться, такая, с налетом мазохизма, когда ты добавляешь себе страданий, чтобы якобы решить то, чего и не было.

React вообще афера какая то 😄 Его продали под соусом простоты и низкой кривой обучения с красивыми хеллоувордами в документации.

А когда народ на нем начал делать реальные задачи, оказалось что архитектура это не предусматривает и распахнулся ящик Пандоры, со всеми этими дикими способами решить проблемы.

Не ушел, а дополнил.

Во первых, как более простая альтернатива для синхронных изменений, и чтобы мягко приучить к реактивным концепциям, тех что сломал зубы с наскока об rxjs.

Во вторых, чтобы в будущем выкинуть zone.js, changedetection и всю эту binding магию.

сигналы

Это те самые, которые во вью уже много лет имеются, причём более жирные по функциональности, но в остальных экосистемах выдаются за инновацию?

Это те самые, которые придумали еще в нокауте.

Причем самое смешное, что заходил же он с козыря, что VirtualDOM намного быстрее тормозного ангуляра

А у меня впечатление, что Vue не знает кем хочет быть, и просто пытается быть на гребне тренда.

Сначала он был как типа улучшенный AngularJS, т.к. Angular 2 - сложна, потом пришел React, и Vue начал косить под него, сейчас вроде уже выработался свой стиль, но кто знает, щас ребята впечатлятся чем то еще, и привет Vue4.

Так проблема же не в молотке, никакой ЯП не решит архитектурную проблему.

Ну все как в любой компании - каждый день кричишь о тех долге, глобальном рефакторинге, что надо бросить все силы на это, а менеджмент берет в спринт таски по раскрашиванию кнопок с помощью AI.

Потому как цветные кнопочки можно быстро закрыть и отчитаться об успехах, цветные кнопочки ничего не сломают, и по шапке за них не прилетит, они хорошие и безопасные.

Осталось дело за синхронизацией и тогда точно будет не нужен

Microsoft is ending support for the Windows Subsystem for Android™️ (WSA). As a result, the Amazon Appstore on Windows and all applications and games dependent on WSA will no longer be supported beginning March 5, 2025.

Текущая ситуация с резюме максимально ущербная.

Десятилетиями они жаловались, что соискатели не могут нормально составлять резюме, как у HR принято, отсеивали если в нём нет этой формальной воды с банальными и затертыми до дыр формулировками. Были кучи статей и коучей как причесать своё резюме так, чтоб HR его не выбросил в корзину.

Но как только нейронки начали делать казалось бы то, чего они так жаждали - начали ныть, что дескать, так нельзя, это без души.

А самое смешное, что никто все равно не читает их, выцепляют ключевые слова и вперед.

Честно говоря, на момент публикации советы не то чтобы актуальные, и отражают не самый лучший стиль разработки современных angular-приложений.

1. Классы-резолверы считается устаревшим и данные можно вязать сразу на инпуты, минуя работу с маршрутами в компоненте:

{
  path: 'home',
  loadComponent: () => import('./home/home.component').then((m) => m.HomeComponent),
  resolve: {
    user: () => inject(ApiService).getUser(),
    posts: () => inject(ApiService).getPosts()
  }
}
export class HomeComponent {
  @Input() user: User;

  posts = input<Post[]>();
}

2 Вынося за скобки саму идею использования глобального лоадера, в его реализации есть несколько спорных моментов:

  • логика лоадера захламряет AppComponent

  • отписка и "утечка памяти"

    • AppComponent существует весь жизненный цикл типичного приложения и его ngOnDestroy ни разу не сработает

    • Даже если перестраховаться, нам не нужно подписываться/отписываться, есть же takeUntilDestroyed

    • Сама концепция subscribe -> update property -> unsubscribe в данном случае не самая изящная

function setupIsLoading() {
  return inject(Router).events.pipe(
    filter((e) => e instanceof ResolveStart || e instanceof ResolveEnd),
    map((e) => e instanceof ResolveStart)
  );
}

@Component({
  selector: 'app-root',
  template: `
    @if (isLoading$ | async) {
      Загрузка
    }
    <!-- или даже как сигнал -->
    @if (isLoading()) {
      Загрузка
    }
    <router-outlet></router-outlet>
  `,
})
export class AppComponent {
  protected readonly isLoading$ = setupIsLoading();

  protected readonly isLoading = toSignal(this.isLoading$);
}

Information

Rating
2,609-th
Registered
Activity