@oop_ru

Страница 436 из 785
Sergey
20.12.2017
22:09:45
давай сначала в кучу

Maksim
20.12.2017
22:09:50
о, Антона призвали) надо накинуть про анемичные модели и спать валить)

Bohdan
20.12.2017
22:10:18
о, Антона призвали) надо накинуть про анемичные модели и спать валить)
пройденный этап, это как сеттеры) уже неинтересно)

давай сначала в кучу
просто там сейчас бардак солид, дизайн паттерны, наследование против композиции тут же тебе зандстра и ютуб плейлисты

Google
Bohdan
20.12.2017
22:12:08
кстати, ее в списке нет)

da horsie
20.12.2017
22:12:10
"начни" :)

Артур Евгеньевич
20.12.2017
22:12:37
Обещаю завтра хуйнуть пулреквест

Sergey
20.12.2017
22:12:49
кстати, ее в списке нет)
http://wiki.c2.com/?RoadMaps

можешь сразу сюда

Bohdan
20.12.2017
22:13:22
за это спасибо, а то как обычно - заходишь на любую вики и теряешься в догадках о том, куда идти

Sergey
20.12.2017
22:13:47
ну вот эта страничка покрывает может треть того что там есть

da horsie
20.12.2017
22:16:05
добавил)

Bohdan
20.12.2017
22:16:35
добавил)
блин, я только форк сделал и закоммитил в него)

Bohdan
20.12.2017
22:16:57
дык тоже)

Google
Sergey
20.12.2017
22:18:09
добавил)
стоит все же пару слов сказать что там

da horsie
20.12.2017
22:18:31
бездна?

Bohdan
20.12.2017
22:19:01
я завтра может разложу по вложенным спискам все это дело

da horsie
20.12.2017
22:19:09
приму пулреквест, в "паре слов" описывающий содержание C2 ;)

melancholiac
20.12.2017
22:19:24
что за С2?

da horsie
20.12.2017
22:19:36
что за С2?
http://wiki.c2.com/?RoadMaps

Bohdan
20.12.2017
22:19:46
приму пулреквест, в "паре слов" описывающий содержание C2 ;)
у себя я вставил ссылку на роадмапы и текст (EN) A lot of roadmaps to spend time on reading

melancholiac
20.12.2017
22:19:59
http://wiki.c2.com/?RoadMaps
это набор ссылок по темам?

Bohdan
20.12.2017
22:20:35
@f3ath закинул

Sergey
20.12.2017
22:20:44
что за С2?
Был такой чувак - Ворд Канингхем. Это чел который придумал формат wiki (с этим я думаю ты знаком). И у него есть своя wiki где тусят всякие бородатые дядьки и дискутируют на тему кто что первым придумал, как это стоило назвать и что это такое.

da horsie
20.12.2017
22:20:57
это набор ссылок по темам?
это вики от чувака, придумавшего вики

Bohdan
20.12.2017
22:21:12
но странно, у меня на коммит отставание, но в измененных файлах нет твоей правки

da horsie
20.12.2017
22:25:27
глюки гитхаба, видимо

замержил

Bohdan
20.12.2017
22:26:04
ага, вижу

Sergey
20.12.2017
22:26:24
почему был?
ну есть)

da horsie
20.12.2017
22:28:56
924 человека в чате, надо где-нить проспамить и набрать тыщу к новому году)

@arturpanteleev "ооп бесплатно без смс скачать"

Google
da horsie
20.12.2017
22:31:50
сделай нам рекламу, телеграмный магнат)

Если кто еще не спит, вот тема, которая меня беспокоит. Я делаю UI-компоненты на ангуляре. Какими принципами надо руководствоваться, чтобы правильно отделять: 1) представление от логики 2) логику приложения от логики фреймворка 3) тесты поведения от тестов представления (и нужны ли последние вообще?)

Bohdan
20.12.2017
22:50:02
какой ангулар?

da horsie
20.12.2017
22:51:49
пятый

Bohdan
20.12.2017
22:52:31
смотри я сейчас vue.js мучаю первый пункт - во вью файлах отдельно темплейт, отдельно код (но в одном файле) имхо это нормально, так как это все же одно целое и вероятность одинаковых внешне компонентов с разным поведением очень мала

второй пункт у меня нет такой "фреймворкности", как в ангуларе, но все, что теоретически относится к слою фреймворка (апи, к примеру) - выношу отдельно, по типу сервиса, который использую внутри vuex (аналог redux для реакта) так же планирую делать и другие штуки если будут другие источники данных, типа центрифуги - скорее всего, отдельный модуль для неё + внесение данных в vuex в ангуларе использовал бы какую-то шину для этого, типа ивентов

Sergey
20.12.2017
22:56:37
Bohdan
20.12.2017
22:57:18
тесты представления - я бы не делал, так как они отобразят сугубо разметку не слишком большая важность этого

аля redux?)
ага, вроде того

Sergey
20.12.2017
22:58:32
ну и да - redux и в целом подход при котором у тебя компоненты тупые и только за отображение отвечают, и они по большей части чистые функции и если у них и есть стэйт - то это чисто UI стэйт аля "текущий размер компонента"

неплохо позволяют отделять вещи

da horsie
20.12.2017
22:59:14
я немного не понимаю что именно тебя беспокоит... больше композицию юзать например
Ну например, как тестировать компонент. Зачем компонент вообще нужен? Чтобы изменять DOM, правильно ведь? Логично ли тестировать поведение компонента по принципу "генерю событие, смотрю как поменялся DOM"?

Sergey
20.12.2017
22:59:24
> тесты поведения от тестов представления (и нужны ли последние вообще?) если у тебя есть UI компонент который содержит UI логику - почему бы его не тестить?

нам нет смысла биндинги тестить - это тебе тайпскрипты лучше сделают

da horsie
20.12.2017
23:00:43
redux в ангуляре, как я понимаю, называется ngrx и он мне не доступен по техническим соображениям сейчас. у меня нету ни store ни редьюсоров, которые я мог бы использовать

из-за этого уменя стейт размазывается

Bohdan
20.12.2017
23:01:20
стейт в каждом компоненте?

da horsie
20.12.2017
23:01:24
дада

Google
da horsie
20.12.2017
23:01:27
мало того

часть стейта просачивается в DOM

Bohdan
20.12.2017
23:01:45
плюс в корне кусок? я на самом деле не помню уже, как в ангуларе 2+все орнанизовано

da horsie
20.12.2017
23:01:54
ну типа есть css класс у элемента - идем туда, нету - идем сюда

Sergey
20.12.2017
23:01:58
вот есть у меня например UI компонент простенький, который должен обладать следующей логикой: нам на вход подается массив дат доступных. Если даты есть на сегодня или завтра - отображаем один UI, если больше чем 2 дня - надо уже чуть-чуть другой UI покаать.

часть стейта просачивается в DOM
не в дом а в виде директив всяких аля className={}

это все же не совсем тоже самое

da horsie
20.12.2017
23:03:10
это все же не совсем тоже самое
ну я хз как это правильно назвать, но ты вроде меня понял

Sergey
20.12.2017
23:03:37
я бы тупо разбил на два компонента поменьше и один композит
да, вполне можно, но сути это не меняет. Ты либо композит будешь тестировать либо один компонент который включает в себя оба варианта UI

ну то есть если ты разбил так что у тебя есть один композитный компонент с UI логикой и два тупых - тупые ты тестить не будешь

ну я хз как это правильно назвать, но ты вроде меня понял
надо четко определиться про какой стэйт мы говорим. Есть стэйт приложения и есть стэйт UI компонентов.

da horsie
20.12.2017
23:04:43
собственно, вопрос, как тестить компонент, если я не могу выделить стейт и редьюсоры

Sergey
20.12.2017
23:04:52
прчием тут редьюсеры? редьюсеры позволяют тебе разделить стэйт на два вида

UI стэйт как бы в компонентах как жил так и будет жить

da horsie
20.12.2017
23:05:20
редьюсоры легко тестировать

это тупо функции

Sergey
20.12.2017
23:05:32
редьюсоры легко тестировать
как и любую чистую функцию.

da horsie
20.12.2017
23:05:35
да

Google
Sergey
20.12.2017
23:05:43
давай по порядку.... приведи пример компонента?)

da horsie
20.12.2017
23:06:06
надо четко определиться про какой стэйт мы говорим. Есть стэйт приложения и есть стэйт UI компонентов.
у меня нет приложения, только компоненты, я делаю UI фреймворк, который юзается в разных аппликухах

Sergey
20.12.2017
23:06:06
желательно какой-нибудь проблемный

Sergey
20.12.2017
23:06:29
у меня нет приложения, только компоненты, я делаю UI фреймворк, который юзается в разных аппликухах
хм.... тогда у тебя только UI стэйт, не находишь? все остальное будет через биндинги прокидываться внутрь

Bohdan
20.12.2017
23:06:31
ну то есть если ты разбил так что у тебя есть один композитный компонент с UI логикой и два тупых - тупые ты тестить не будешь
я бы сделал композит, решающий, что рендерить, и два отдельных, которые будут решать свои задачи

Sergey
20.12.2017
23:07:18
я бы сделал композит, решающий, что рендерить, и два отдельных, которые будут решать свои задачи
я могу просто скопипастить - у тебя будет 3 компонента и один из них мы захотим протестить, или 1 компонент который мы захотим протестить. Количество тест кейсов и сложность тестов не меняются.

Bohdan
20.12.2017
23:07:37
ребята, ребята радоваться надо, у нас тут обсуждают не бек, а фронт

Like
20.12.2017
23:07:57
ребята, ребята радоваться надо, у нас тут обсуждают не бек, а фронт
Коняшу не стоит, а то потом снова будет поток плохих слов в сторону фронта (

Bohdan
20.12.2017
23:08:37
Коняшу не стоит, а то потом снова будет поток плохих слов в сторону фронта (
я вчера(уже позавчера) плевался, сегодня все удалось и рад как ребёнок просто фронт слишком нестабилен

Sergey
20.12.2017
23:08:49
страшно наверное пользоваться UI фреймворками, написанными людьми которые дико ненавидят фронт

Bohdan
20.12.2017
23:09:05
Ты про версии angular'a? ?
вообще про фронт

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

da horsie
20.12.2017
23:10:48
желательно какой-нибудь проблемный
Пример - selectlist. Это набор опций, которые можно выбирать. Опции могут быть disabled, поведение может быть разное, типа multi selection list, single selection list. Есть еще компоненты вроде dropdown, которые по сути тот же лист, но чуть иначе выглядят. Как их правильно выполнить? Есть такая шутка - material design, это набор компонентов для ангуляра. там реализован selectlist, но каким-то жутким образом, например, у них есть option (единичный элемент списка), которые обладает собственным поведением и знает, является ли он частью multiselection list или singleselection list. Для меня это за гранью понимания.

я щас покажу кусок кода прям

Sergey
20.12.2017
23:12:34
из материала не надо))

da horsie
20.12.2017
23:12:45
нет надо

чтобы ты осознал мою боль

Страница 436 из 785