@yii2ru

Страница 1107 из 1721
Антон
01.04.2018
10:58:24
потому что любое малейшее изменение бизнес логики заставляет искать во многих местах, и править код

тогда как при правильной архитектуре, такого бы не было

практически всегда в

в этом классе на 4к строк

Google
Alexander
01.04.2018
10:59:21
именно в этом методе на 500 строк?

метрика, кстати, зовётся code churn

Антон
01.04.2018
10:59:38
именно в этом классе из 37 методов

и нескольких по 500 строк

это основная сущность - заявка. много статусов и состояний

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

Ilya
01.04.2018
11:01:10
Нарушены границы контекста и единственной обязанности.
> Yii > принцип единственной ответственности))))

Антон
01.04.2018
11:01:13
а тут и с тестами беда начинается

и много мест где Order::find... дублируется

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

в yii вроде это activeQuery

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

> Yii > принцип единственной ответственности))))
в чем проблема? я не говорю о каком то 100% соблюдении этого. Здравый смысл

Google
Ilya
01.04.2018
11:05:53
Всё правильно говоришь

Антон
01.04.2018
11:05:56
в смысле папка?

Alexander
01.04.2018
11:06:58
я просто про то, что начинать надо с подсчёта churn

Vit
01.04.2018
11:07:04
в смысле папка?
Ну как в байсик приложении, и там Order extends Model

Alexander
01.04.2018
11:07:11
и вычищать самое больное в первую очередь

Антон
01.04.2018
11:07:23
Order (ar модель. анемичная) -> OrderService (божественный класс где все запросы find и остальная бизнес логика) -> OrderController (тонкий)

Alexander
01.04.2018
11:07:28
я не уверен, что репозитории — это оно

предпочитаю не гадать, когда есть метрики чёткие

Alexey
01.04.2018
11:07:50
Без тестов вычищать это стрельба в голову

Alexander
01.04.2018
11:08:02
не всегда

Антон
01.04.2018
11:08:05
все покрыто тестами

1000 тестов

в этом плане плюс

Dmitry
01.04.2018
11:08:17
А можно какой то пример, какая задача тяжела в выполнении на yii2, и для каких "легких" целей symphony лучше не использовать?
Элементарно. Если принесли замысловатую вёрстку не на Bootstrap, то ActiveForm и LinkPager не подходит. Если нужны замысловатые таблицы с colspan и rowspan, то выбрасываем GridView. Если проектируем сложные сущности со вложенными объектами-значениями, то сильно перепиливаем ActiveRecord или меняем его на Doctrine. Если подключаем сторонние компоненты, работающие по PSR, то пишем адаптеры PSR. Если хотим делать фреймворконезависимые PSR-7 контроллеры, то нужно самому программировать трансформеры для запроса и ответа и адаптеры для контроллеров. Если хотим делать маршрутизацию по именам маршрутов, а не по именам контроллеров и экшенов, то нужно переписать фреймворковский UrlManager или заменить на другой. Но у него нет интерфейса, поэтому придётся наследоваться. Потом хотим добавить мультиязычность в адресе. Можно было бы просто сдекорировать UrlManager, но он опять без интерфейса. И т.п.

Vano
01.04.2018
11:08:18
@samdark loc phpщный поможет посчитать?

Alexander
01.04.2018
11:08:18
о, ну тогда офигенчик вообще

Alexey
01.04.2018
11:08:24
Я б начал с линтера

Антон
01.04.2018
11:09:12
далее когда уберу все дублирование query. Внедрить машину состояний. Где на каждый статус будет собственный хендлер

Google
Alexander
01.04.2018
11:09:49
@devium нет, он churn не умеет

Vano
01.04.2018
11:09:55
а кто умеет?

Alexander
01.04.2018
11:10:04
но тулз полно, по "git churn" ищи

выбирай на вкус

Антон
01.04.2018
11:10:11
в любом случае если не прибираться, то энтропия кода растет

Vano
01.04.2018
11:10:13
принято

@symbios_zi что-то реальным говнищем пахнет в твоем текущем проекте... ))) Глаза видели, что брали?

Антон
01.04.2018
11:11:06
проект с 2011 года

Alexander
01.04.2018
11:11:07
> уберу все дублирование query не всё то дубль, что дублем кажется

Антон
01.04.2018
11:11:25
Alexander
01.04.2018
11:11:27
> Внедрить машину состояний. Где на каждый статус будет собственный хендлер Чую, CRM-ка :)

Антон
01.04.2018
11:11:41
в сфере ЖКХ

да

ну такая система ведения заявок

она интересная, просто нужно прибираться

Vit
01.04.2018
11:12:28
Элементарно. Если принесли замысловатую вёрстку не на Bootstrap, то ActiveForm и LinkPager не подходит. Если нужны замысловатые таблицы с colspan и rowspan, то выбрасываем GridView. Если проектируем сложные сущности со вложенными объектами-значениями, то сильно перепиливаем ActiveRecord или меняем его на Doctrine. Если подключаем сторонние компоненты, работающие по PSR, то пишем адаптеры PSR. Если хотим делать фреймворконезависимые PSR-7 контроллеры, то нужно самому программировать трансформеры для запроса и ответа и адаптеры для контроллеров. Если хотим делать маршрутизацию по именам маршрутов, а не по именам контроллеров и экшенов, то нужно переписать фреймворковский UrlManager или заменить на другой. Но у него нет интерфейса, поэтому придётся наследоваться. Потом хотим добавить мультиязычность в адресе. Можно было бы просто сдекорировать UrlManager, но он опять без интерфейса. И т.п.
Дима, Вы закончили мастер класс, или заканчиваете по Ларавел. Там Eloquent был или доктрина?

Антон
01.04.2018
11:12:32
жду вот технический спринт

Alexander
01.04.2018
11:13:03
https://habrahabr.ru/post/351686/

вот

Антон
01.04.2018
11:13:18
ага читал

Google
Alexander
01.04.2018
11:13:19
это про реальность, а не про идеальные проекты в вакууме

про реально успешные с точки зрения проекты, которые выстрелили частично за счёт того, что не делали идеально

Dmitry
01.04.2018
11:14:03
Дима, Вы закончили мастер класс, или заканчиваете по Ларавел. Там Eloquent был или доктрина?
Eloquent, так как это мастер-класс по Laravel. Doctrine будет в мастер-классе по Symfony.

Alexander
01.04.2018
11:14:23
Надо мастер-класс по Doctrine :)

Alexey
01.04.2018
11:14:24
Элементарно. Если принесли замысловатую вёрстку не на Bootstrap, то ActiveForm и LinkPager не подходит. Если нужны замысловатые таблицы с colspan и rowspan, то выбрасываем GridView. Если проектируем сложные сущности со вложенными объектами-значениями, то сильно перепиливаем ActiveRecord или меняем его на Doctrine. Если подключаем сторонние компоненты, работающие по PSR, то пишем адаптеры PSR. Если хотим делать фреймворконезависимые PSR-7 контроллеры, то нужно самому программировать трансформеры для запроса и ответа и адаптеры для контроллеров. Если хотим делать маршрутизацию по именам маршрутов, а не по именам контроллеров и экшенов, то нужно переписать фреймворковский UrlManager или заменить на другой. Но у него нет интерфейса, поэтому придётся наследоваться. Потом хотим добавить мультиязычность в адресе. Можно было бы просто сдекорировать UrlManager, но он опять без интерфейса. И т.п.
Мультиязычность на стандартном менеджере делается легко

Alexander
01.04.2018
11:14:25
отдельный

Антон
01.04.2018
11:14:31
большинство проектов такие

Alexander
01.04.2018
11:14:43
вот в Skyeng сейчас есть проект на Yii 1.1 с доктриной, например

Alexey
01.04.2018
11:14:53
Если хочется свой роутер, то можно его оформить как URL rule

Странные предъявы короч)

Like
01.04.2018
11:15:34
Ларавель калл, расходимся ?

Alexander
01.04.2018
11:15:40
я не ищу виноватых, ищу пути решения появившихся проблем
И это правильно. Только не надо гадать никогда и принимать решения на интуиции без перепроверки.

Vit
01.04.2018
11:16:38
отдельный
Когда?)

Like
01.04.2018
11:16:42
Их чертовы фасады на все, хелперы в виде функций где под капотом контейнер в одну строчку (не считая модулей аля сессия - передали что либо, значит гет, не передали - просто возвращаем объект) и их чертова магия ?

Alexander
01.04.2018
11:17:14
Когда?)
Это к Диме вопрос.

Vit
01.04.2018
11:17:49
Это к Диме вопрос.
Он только только закончил

Alexey
01.04.2018
11:17:51
вот в Skyeng сейчас есть проект на Yii 1.1 с доктриной, например
Сегодня Харитон из скайэнг рассказывал, что они гугл докс как cms используют

Google
Alexander
01.04.2018
11:18:58
Он только только закончил
Что закончил? Мастер-класс по доктрине?

Alexey
01.04.2018
11:19:38
Зато рост в 3 раза каждый год

Alexey
01.04.2018
11:20:08
Это к тому что бизнес первичен, а технологии и инструменты вторичны

Denis
01.04.2018
11:20:12
А что там со скайенгом? Что за жуть?

Alexander
01.04.2018
11:20:12
По Laravel
А, это да. Я новости почитываю периодически, видел.

Like
01.04.2018
11:20:54
И нормальной подсветки нет без иде-хелпера, и фасады глобальный неймспейс засирают - прям фу
А еще у них шрифт в доке ущербный Слава богу я читал ее года 2 назад когда там не было его ?

Alexander
01.04.2018
11:21:38
А что там со скайенгом? Что за жуть?
19-е место в рейтинге Forbes, вот что...

http://www.forbes.ru/tehnologii-photogallery/357559-20-samyh-dorogih-kompaniy-runeta-2018-reyting-forbes?photo=19

растёт как на дрожжах

в слаке 1500 человек чатит

в гите 200 репок, из них около 70 — немаленькие проекты

и эти проекты коммуницируют друг с другом и с внешним миром :)

в общем, адок тот ещё :)

Vit
01.04.2018
11:24:58
И вы там симфонистами командуете

Alexander
01.04.2018
11:25:20
программистами, дизайнерами, аналитиками, да

там нет симфонистов, Yii-стов или кого-то такого

там почти все могут всё

или готовы разбираться

Страница 1107 из 1721