Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 31

  1. Вычитывайте статью перед публикацией.

Расширяйте код при помощи прототипизирвоания

1.9 Пользуйтесь покомпонентами Angular Material.

После того, что они учудили при переходе с v14 на v15, начинаешь сомневаться.

Материал изначально ужасен

0.1.1 Ограничение на длину метода: 150 строк.

Многовато как-то. На ангуляре не писал, но обычно свыше 10-20 строк уже стоит задуматься.

НЛО прилетело и опубликовало эту надпись здесь

50 еще норм, я не топлю за дробление на однострочные методы.
Смысла спорить нет. Нужно разбирать каждый кейс отдельно.
Но я к тому, что сомневаюсь, что метод в 150 строк может соответствовать базовым правилам SOLID, что его адекватно можно покрыть тестами, поддерживать. И сколько новому человеку понадобиться времени чтобы в нем разобраться.
Конечно, есть исключения.

В основном банальные советы, местами очень спорные. Почему это ngrx очень желателен? Без него прекрасно можно жить. Почему использовать material? Каждый раз как с ним столкнусь испытываю ужасную неприязнь. Насчёт использовать lodash вообще молчу, это вообще не имеет отношения к ангуляру, и не является хорошим советом, ибо очень сильно не всегда нужен

Поддержу про NgRx, все эти стейты притянутые из мира Redux далеко не всегда нужны и очень не всегда несут пользу в Angular. Сейчас выпиливаем как раз остатки поделия в виде Mobx, который принес больше боли, чем пользы.

Страшно даже подумать в ползу чего вы его выпиливаете.

Не в пользу, а в корзину... RxJS более чем достаточно для большинства даже вполне тяжелых проектов.

Ок, вот вам простая задачка: у вас есть коллекция из 40к задач. В каждой задаче 20 полей. На одной из сотен страниц выводится 10 списков задач, отфильтрованных отсортированных и сгруппированных по разным полям самим пользователем. 30 раз в секунду вам прилетает событие изменения одного поля одной задачи. Как вы на RxJS реализуете это всё так, чтобы не было адских тормозов из-за ререндера всего приложения 30 раз в секунду?

Я бы взял $mol, чтобы после моего ухода никто бы не смог разобраться в коде!

Всё идет от задач, если вы знаете как это работает под капотом, то для вас не будет никаких проблем это сделать штатными средствами. Всё в Angular по факту базируется на Observable, даже по факту те же сигналы работают на их базе, просто являются сахаром. С любым сахаром придется решать те же проблемы, он легко решает одну проблему и параллельно тихо создает ещё несколько.

То есть вы не знаете как решить эту простую задачку на RxJS?

Вам чё проект надо создать? Рабочие часы оплатите? Если не умеете работать с потоками и проектировать данные, то пользуйте то, что делает это за вас, вам же никто не запрещает

Спасибо, я уже создал. А вам стоит либо сбавить спесь, либо не пороть чушь.

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

Вполне реальный кейс: https://www.wrike.com/features/dashboards/

Нет универсальных инструментов.

Докажите.

Для моих задач это максимально надуманный кейс.

Не собираюсь что-то доказывать тому, кто уперся исключительно в свою точку зрения и агрессивно доказывает, что его фреймворк лучше всех :)

А ведь вы ничем не отличаетесь в этом плане с тем парнем, который точно так же MobX продвигает :)

Особенно иронично, что свой ответ вы печатали как раз одним из таких "не существующих универсальных инструментов" - рукой.

Тогда удачи порезать хлеб рукой, забить рукой гвозди и рукой же побриться :)

Удачи вам сделать всё это без рук.

Вместо хамства можете объяснить в чем сложность этой конкретной задачи и что помешало решить её обычным RxJs? В задаче не вижу ничего принципиально сложного, разве что поля надо у задачи надо сделать Observable, которые стреляют при обновлении - ну это довольно тривиальный кейс если хотя бы немного работали с Angular.

Сложность в том, чтобы не ререндерить тасклист при изменении полей, от которых результат рендеринга не зависит. Попробуйте сами.

Так на всякий случай, в реализации ангуляровских сигналов нет ни капли Observable

Никто и не говорит, что они прямо наследники Observable. Но если посмотреть на механику и как они встраиваются в шаблон, то там отличий почти нет, по факту всё тоже самое.

Могли бы просто признать ошибку. У вас в комментарии прямо написано: "базируется на Observable, даже по факту те же сигналы работают на их базе, просто являются сахаром". А теперь вы пишите что надо посмотреть на механику... хотя в шаблоны переменные встраиваются похожим образом почти везде.

Статья же про ангуляр, поэтому оценка в рамках ангуляра
Много спорных пунктов, и очень уж устарелой информации

  1. "Ограничение на длину метода: 150 строк." - это очень много, до 50 строк максимум, и даже 50 уже прочитать сложно

  2. "Пользуйтесь покомпонентами Angular Material." - Много UI библиотек и Material не лучшая из них

  3. "Роуты отдельного модуля в RouterModule.forChild" - С standalone компонентами это немного неактуально

  4. "Структура модуля" - Чаще всего эти папочки избыточны

  5. "NgRx - желателен (очень)." - Сомнительный совет, куча бойлерплейта и потраченого времени

  6. "API должно быть гибким." - Api чего? Если для работы с бекендом, то это зависит от бекенда

  7. "Данные должны быть разделены на чанки." - Что тут имеется ввиду? Данные приходят с бекенда, и как сделали апи, в таком виде данные и придут

  8. "Расширяйте код при помощи прототипизирвоания" - В Ангуляре? Как вы это видите?

  9. "Использовать monent.js " - Даже разработчики уже не рекомендуют его использовать

  10. "Использовать JSDoc" - Коментарии нужны только там где сложно прочитать написаный код, писать коментарии ради коментариев очень плохой совет

Расширяйте код при помощи прототипизирвоания

Это больше черта Реакта, а не Ангуляра. Как раз таки это в целом не angular way.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации