
Алексей
12.08.2016
16:37:33

Alexander
12.08.2016
16:45:48
Сервисо-ориентированная архитектура и слабосвязанность — это основа Angular. Если это убрать, то он и не нужен, проще на jQuery проект строить — там все со всем взаимодействовать может.

Sergey
12.08.2016
22:30:07

Alexander
13.08.2016
06:31:54
Подскажите, пожалуйста, у кого есть опыт — как вы завязываете Redux с Angular2?
Меня интересует вопрос как организовать работу большого приложения с разрозненными сервисами, у которых совершенно не связанный функционал, и какой в этом смысл вообще.
Честно говоря, упорно не могу понять смысл в Redux для Angular2, но большое количество последователей говорит о том, что смысл в этом есть.

Google

Алексей
13.08.2016
08:57:39

Alexander
13.08.2016
09:02:57
Я пока не работаю, а просто рассматриваю возможность/необходимость использования
В чем между ними разница?

Алексей
13.08.2016
09:06:42
https://github.com/ngrx/store ( полностью передален - не совмсестим с существующей экосистемой Redux - но более "красив" что-ли )
https://github.com/angular-redux/ng2-redux ( легкая обертка над обычным redux - что позволяет в жить в той-же экосистеме и получать некоторые плюшки - к примеру совместимость с Chrome Redux DevTools )
Хорошее обсуждение всех "за и против" ngrx/store https://github.com/ngrx/store/issues/16

Alexander
13.08.2016
09:09:19
ну я пока только по Redux смотрел материалы
он мне как раз не вполне изящным показался
и чуждым — как раз как будто он заточен под самобытную эко-систему

Алексей
13.08.2016
09:23:42
чтобы понять Redux стоить посмотреть откуда его скопипастили ( из функционального Elm )
https://egghead.io/lessons/elm-elm-in-5-minutes
Вообще Redux это больше о функциональный концепциях - композиция функций, функции высшего порядка ( map, reduce, filter )
если с английский хорошо то могу подкинуть видео во ngrx/store и ng2-redux
Про глабольный State есть 1 хороший аргумент. Плох не сам глобальный стейт а то что люди могуть глобально его менять. Redux этого избегаеть за счет reducers - каждый reduser менять только определенную часть store и любое изменение легко отследить

Alexander
13.08.2016
09:28:34
спасибо)
кидайте и видео, буду благодарен :)

Алексей
13.08.2016
09:33:31
https://www.youtube.com/watch?v=OOUNT-MlP3w
https://www.youtube.com/watch?v=s4xr2avwv3s
( это о ng2-redux )
https://www.youtube.com/watch?v=mhA7zZ23Odw
( это ngrx/store )

Alexander
13.08.2016
09:42:48
спасибо большое, Алексей

Google

Alexander
13.08.2016
09:44:55
а что ты скажешь от себя? для чего ты считаешь уместным использовать Flux? мы тут разбирали для себя его последние два дня (честно говоря, от тебя я и услышал о нем впервые) — и пришли к тому, что он имеет смысл как внешний агрегатор для работы с состояниями
особенно, как нам показалось, он имеет место для таких задач, как пошаговая оплата, визарды и т.п.

Алексей
13.08.2016
09:45:42
Так.. мы о Flux или Redux?

Alexander
13.08.2016
09:45:49
при этом, я читал что на нем строят целую архитектуру
ой, Redux
т.е. принцип конечного автомата для целого приложения

Алексей
13.08.2016
09:47:01
Redux = MVC Redux = MVVM Redux = MVP
Фактически Redux это дизайн паттерн который позволяет тебе создавать структурированное приложение
У него есть свои плюсы и минусы но люди пишут на нем полноценные приложения базируясь польностью на Redux

Alexander
13.08.2016
09:49:18
а твой опыт?
как именно его используешь ты? (если используешь вообще)
т.е. какую часть логики выносишь в него
я извиняюсь, если мои вопросы не совсем понятны — я хочу понять подход в целом

Алексей
13.08.2016
09:55:40
Использую - но пока не на основном проекте. Польностью все приложение пишу на Redux ( иначе особого смысла не вижу ). Redux это очень простой подход у тебя есть состояние приложения ( store ) которое ты отрисовываешь с помощью компонентов. Теперь если юзер что-то сделал ( action ) ты с помощью определенной логики ( reduser ) меняешь состояние приложение ( reducer(store) ) и перерисовываешь компоненты.
Концепция довольно простая и с помощью нее можно делать вообще все.
чтобы понять почему Redux популярен можно посмотреть на экосистему инструментов
https://github.com/xgrommx/awesome-redux

Alexander
13.08.2016
09:56:45
Ну мне понятен этот подход на простом приложении
Когда у него есть одна задача, которая решается поэтапным переключением состояний
Но пока не могу себе представить механизм, когда несколько разрозненных несвязанных частей, которые управляются через него

Алексей
13.08.2016
09:57:52
Ну назови конкретный пример который не понятен

Alexander
13.08.2016
09:58:06
ну допустим Интернет-магазин
большой, которого есть много совершенно самостоятельных функций:
— Просмотр каталога
— Добавление в корзину
— Оплата (при этом, в отдельных вкладках у него много что висит)
— Регистрация и/или вход

Google

Alexander
13.08.2016
10:00:07
и, напрмер, если я делаю регистрацию, т., у меня сораняется последний этап, и он общий для всех вкладок, а вход, например, на время регистрации блокируется — и человеку выходит сообщение "надо закончить или отменить регистрацию"
ну, и, конечно — оплата
при этом, это классическая работа с состояниями, и в зависимости от конкретного состояния в одном из разделов, человек получат определенную реакцию
например, не закончил регистрацию, ушел, а вернулся — ему бац баннер вслывающий сверху "Не хотите ли закончить"
или корзина — оставил в ней что-то — это уже смена состояния, со временем оно тоже изменяется — и тут, время проходит, а человеку баннер-notification "Самое время купить что-то что у вас в корзине"
и вот я пытаюсь представить подобную логику на Redux (казалось бы — самое то дело — работа с конечными состояниями), но даже предположить как это сделать не могу


Алексей
13.08.2016
10:07:46
просто разбей все о чем ты говоришь на отдельный набор Actions и Reducers
а потом с помощью combineReducers обьедини в один Reducer. Но несмотря на то что этот Reducer один - каждый Sub Reducer будет работать со своими Actions
export const rootReducer = combineReducers<IAppState>({
counter: counter.counterReducer,
session: session.sessionReducer,
router: routerReducer,
});
https://github.com/rangle/angular2-redux-example
https://github.com/rangle/angular2-redux-example/blob/master/src/store/store.ts

Evjeni
13.08.2016
12:16:03
гайс, jhipster второй ангуляр поддерживает?

Алексей
13.08.2016
12:30:18
@Meshugggah пока нет https://github.com/jhipster/generator-jhipster/issues/3664
но можно попробовать поиграться с этой веткой
https://github.com/jhipster/generator-jhipster/tree/angular-2


Vadim
13.08.2016
13:07:35
? В группе есть традиция - представляться при входе:
▫️Какой у вас проект или где работаете?
▫️В чём вы специалист?
▫️Чем можете быть интересны или полезны сообществу?
▫️Чем интересно сообщество вам?
▫️Откуда вы?
▫️Как узнали про группу?
В сообщении нужно указать тэг #whois
? Правила чата:
? Публикация вакансий запрещена
? Реклама запрещена
? Политика запрещена
За несоблюдение правил - одно предупреждение, далее следует бан.
Вакансии и запросы на поиск работы по направлению JavaScript, Angular 2, Angular 1.x, React.js и Node.js публикуем в группе @javascript_jobs. Формат любой: full-time, part-time, remote и разовые подработки. Также обмениваемся инсайдами и аналитикой по рынку труда.
Здесь общаемся на темы, посвященным Angular 2, его экосистеме, TypeScript, NativeScript и т.д., задаём вопросы, обсуждаем идеи и новости вокруг этого.
Параллельно с этой группой развивается:
?@angular_js - где мы общаемся на технические вопросы, посвященным разработке с Angular 1.x, включая идеи, предложения, библиотеки.
?@react_js - где мы общаемся на технические вопросы, где мы общаемся на темы, посвященные React, Redux и Relay. Обсуждаем идеи и новости. Обмениваемся своими проектами и решениями.
? Возможно, вам также будут интересны группы: @reactnative_ru, @nodejs_ru, @ios_ru, @android_ru, @mobile_jobs, @devops_ru, @devops_jobs. Приятного общения!
Раньше был fullstack рельсовиком, но со временем стал всё больше уклоняться во фронт, и сейчас являюсь frontend разрабом.
Относительно недавно стал делать полноценный боевой проект на Angular 2 + webpack + ng2-bootstrap.
Уже наткнулся на баги при использовании pug. ?
Господа, а кто-то уже пробовал катать prime-ng для Angular 2?
Ну и кто-то уже пробовал юзать Angular 2 + ng2-bootstrap + pug?


Алексей
13.08.2016
13:08:55
Очень рекомендую ng2-bootstrap

Vadim
13.08.2016
13:09:48
Так его и юзаю
Но столкнулся с проблемой, что при использовании ng2-bootstrap директив в pug(pug-html-loader в webpack) препроцессор не может скомпилить шаблон.

Alex
13.08.2016
13:12:40
слабо себе представляю, как ng2 использовать с jade….можете гист создать, хоть посмотрю

Vadim
13.08.2016
13:14:45
Да, но, к сожалению, смогу сделать это лишь в понедельник.
Хотя без живого кожа, действительно, очень сложно описать проблему.
P. S. Проблема несрочная, может подождать до понедельника.

Sergey
13.08.2016
13:25:46
тоже интересен ng2 с jade, уже полтора года на html ничего не делал, прямо руки выварачиваю сейчас в ng2

Vadim
13.08.2016
13:30:10
И глаза

Google

Vadim
13.08.2016
13:33:00
В общем, в понедельник дам гист, подробное описание лога ошибок и мысли по поводу решения. Возможно, вместе до чего-то сможем дойти.

Алексей
13.08.2016
13:49:16
Парсер в NG2 - очень легко настроить
http://stackoverflow.com/questions/37578200/how-do-you-display-a-literal-in-angular-2/37580867#37580867

Vadim
13.08.2016
14:06:46

Denis
15.08.2016
00:30:04
https://vsavkin.com/functional-typescript-316f0e003dc6#.l5ypzgx1v

Sergey
15.08.2016
05:49:42
Кто кроме меня еще ковыряет material design, столкнулся с очень коварной проблемой, у sidenav при уменьшении экрана никак стандартно не реализовано схлопывание, один пример нашел всего как это сделать и то все очень сложно( Вообще пока слишком разочаровал материал дезайн, думаю может ну его - на бутстрап4 лучше перелезть.

Maksim
15.08.2016
05:51:51
Я сделал схлопывание
Через media query api
Создал сервис, в нем подписался на изменение до маленького по моему мнению экрана
Когда это случается вызываю всех обсерверов
Которые подписаны
И они меняют поведение
В частности сайднав

Sergey
15.08.2016
05:54:20
Вот, я такой же пример нашел, сходу его не понял, буду копать.

Vadim
15.08.2016
05:57:22

Alexander
15.08.2016
05:57:59
Уже четвертый? Как я отстал от жизни

Vadim
15.08.2016
05:58:28
Если для себя, то юзай на здоровье, но если для прода - юзай 3.

Sergey
15.08.2016
05:58:50
Вадим, как вариант не обновлять пока до альфы 3, на продакшен на альфе 2 выпустить а потом неспеша поправить все.

Google

Alexander
15.08.2016
05:58:53
Я на фаундейшн засматриваюсь
Палочкой с год назад тыкал, вроде ничего так

Vadim
15.08.2016
05:59:38
Я нашёл альтернативу bootstrap для Angular 2. Называется prime-ng
Выглядит вполне функционально и удобно.

Sergey
15.08.2016
06:02:12
Они дофига сейчас чего в ng2 ломают, с rc4 на rc5 достаточно болезненный переход но тут все очень оправдано, angular-cli тоже сильно обновили, думаю ближайшие два три дня убить на обновление всего и вся.

Vadim
15.08.2016
06:02:43

Sergey
15.08.2016
06:03:18
да

Vadim
15.08.2016
06:04:09
Хм... Я как-то умудрился пропустить этот момент.
Спасибо, что сказал.

Sergey
15.08.2016
06:05:40
https://angular.io/docs/ts/latest/cookbook/rc4-to-rc5.html
Вообще кто как понял этот ngModules, я насколько понял сейчас все компоненты пихаем туда а ануляр уже сам разберется где и на каком этапе какой модуль грузить.

Vadim
15.08.2016
06:11:49
Кстати, никаких аналогов ng-include так и не добавили?

Sergey
15.08.2016
06:22:46
Вадим, спасибо за наводку на primeng, очень интересно с первого взляда.

Vadim
15.08.2016
06:29:41
Я пока его хорошо не крутил, но, кажется, он работает без jquery, в отличие от того же bootstrap.
Эта группа больше не существует