
Sergey
29.01.2017
16:18:53
простенький функционал - новости
есть новости которые пишут админы, есть новости которые пишут отдельные юзеры с отдельной ролькю
выглядит это дико похоже
потому разработчики взяли и зафигачили базовый класс, и два наследника

Google

Sergey
29.01.2017
16:19:54
и одни сервисы которы этим всем рулят
тип DRY и все такое
вот только через 2 дня после того как они это заимплементили поменялись требования. Теперь у новостей в зависимости от ролей сильно меняется механизм публикации записей
ну и структура поменялась
и разработчики не долга думая решили повпиливать кастыли (потому что так быстрее чем разделять код)
и кастыли эти периодически начали отваливаться....
ну короч я дико злой ходил потому что пришлось с нуля по сути функционал переписывать
вещь которая должна была занять максимум день в общей сложности заняла 4 дня
+ время QA которые постоянно проверяли баги
ну короч.... при тех сроках что были на проекте такое отношение к делу было непозволительной роскошью
особенно когда речь идет о таком второстепенном функционале


Dmitriy
29.01.2017
16:24:49
Ну у меня тогда была чуть другая ситуация. Вышел закон 1 декабря. и в этот же день мы должны отправлять товары в мин. финансов. Ну тут выбора не было. За пару часиков нужно было хоть как-то запилить, а уже потом переписывать. Вышло так дешевле, чем потом платить штраф если бы нас поймали.

Sergey
29.01.2017
16:25:23
> Вышел закон 1 декабря.
а вот такой вопрос... вот вышел закон... насколько я помню они не просто так вот берут и выходят

Google

Sergey
29.01.2017
16:25:30
ну то есть о них обычно известно сиииильно заранее
как так вышло что вы спохватились только вот когда дедлайн миновал?)
ну то есть это норм что пришлось наговнокодить, такое бывает.
и вдвойне норм если говнокод будет изолирован как-то
но тут вопрос планирования встает...
если закон вышел 1-ого числа и тебе 1-ого числа прилетела задача, значит.... кто-то все же это дело мониторил

Dmitriy
29.01.2017
16:29:15
Да, мы знали о нем заранее. Из-за основной платформы, мы долго откладывали переписать ПО продаж.
За неделю до 1 числа я начил пилить систему.
Мы просто 1 помещение искали, постоянно на встречах были. Не успевали все сделать.

Sergey
29.01.2017
16:30:36
))

Dmitriy
29.01.2017
16:31:25
Как ты думаешь нормально ли работникам отдавать задачи типо внутрение ЦРМ. Если они пришли чисто пилить наш главный продукт.

Sergey
29.01.2017
16:31:39
ну.... норм
ну то есть
если надо задачу решать
и есть люди
то почему не норм?

Dmitriy
29.01.2017
16:34:53
Ну ту црм я взялся пилить из-за того что были уже наработки и я бы быстрее ее запилил.
Кому-то это не нравится (не в нашей команде, а вообще).
Когда они приходят на интересный проект, а 2 месяца занимаются не интересной задачей

Sergey
29.01.2017
16:36:23
ну это жизнь)
у меня например проект весьма интересный, но я вынужден каждый день тратить по 4 часа на митинги
что меня если вестно не сильно весилит

Google

Dmitriy
29.01.2017
16:38:31
А я вчера в 3 ночи поехал воду закрывать на обьекте =(, но это жизнь.

Алексей
29.01.2017
16:56:46
@fes0r Хорошо, что ты тут тоже есть :)

finkel
29.01.2017
16:57:22
хм

Sergey
29.01.2017
18:32:15
как назвать репозиторий куда я буду сгружать интересные переводы интересных статей?
а впрочем... не буду делать репу для этого

Ivan
29.01.2017
18:33:08
InterestingArticles ?

Sergey
29.01.2017
18:34:16
https://gist.github.com/fesor/dbb80ebe61bd2c6fb829240abaae2d09
психанул слегка
надо попробовать за сегодня хотя б половину перевести. Если кто-то хочет помочь - подключайтесь)
если что с этого документа начинается великое шевствие MVC
статья была написана в мае, первое введение термина MVC - декабрь того же года
ну так, немного истории... кому как а мне интересно как рождалась мысль

Nick
29.01.2017
19:40:09
Сначала подумал, что новую методологию предлагать начинают, а потом на дату глянул

Sergey
29.01.2017
19:40:29
ну тип это ДО MVC
надо попробовать собрать письма по этой теме и отсортировать по датам
была просто мысль взять эти штуки, перевести их, и потом сверху добавить итоговую статью про "что такое MVC" с целью закрыть этот вопрос и кидать на нее ссылку всяки раз как школьник будет публиковать "свою трактовку"
буквально недавно на хабре кто-то публиковал что MVC это. если в двух словах, когда у нас html выносится в шаблоны, и есть ORM или другая абстракция для работы с базой (DAO например)
ну то есть как бы... норм но это просто разделение ответственности
еще бы не зацикливались на "контроллеры и модели"
ну то объект и то объект. Могут быть еще объекты

Google

Nick
29.01.2017
19:48:41

Sergey
29.01.2017
19:49:06
у меня другой вопрос - а какая собственно разница?)
ты юзаешь HMVC на бэкэнде?)
или все же это больше MVA (Model-View-Adapter)
HTTP <-> Front Controller/Middelware -> Middleware <-> Controller <-> Model
точно так же у тебя какая-то из мидлварей или контроллер может попутно дернуть другой контроллер

Admin
ERROR: S client not available

Nick
29.01.2017
19:50:30
Не юзаю

Sergey
29.01.2017
19:50:36
и таким образом добиться иерархии какой-то
но это как была цепочка адаптеров так и остается
а модель как была просто тем что по сути является приложением так и остается

Sergey
29.01.2017
19:51:37

Sergey
29.01.2017
19:52:02
она нужна как и для работы с HTTP так и для работы с базой
ну то есть... инфраструктура штука сквозная
а по поводу "модели" в контексте всех этих MV*
да, мутная
потому взялся переводить первоисточники
где более конкретные примеры под тем что все же подразумевалось
> Модели представлены в компьютере как коллекция данных вместе с методами, необходимыми для обработки этих данных.

Google

Sergey
29.01.2017
19:54:15
база данных тут - просто инфраструктура, на нее насрать
у меня хватило сегодня сил только на этот кусочек. Там в статье потом детально расписано че там с UI и откуда данные берутся
и как

Nick
29.01.2017
19:55:06
Имеешь ввиду, что все трактуют по-разному и от этого у кого-то толстые контроллеры, а за роль модели отвечает лишь структура данных(репозиторий в симфе)? А у кого-то бизнес логика в модели вся, а контроллер лишь вызывает методы из модели и передает их отображению?

Sergey
29.01.2017
19:55:27
ну тип того, люди просто забыли зачем это все придумывалось
отделить UI от приложения
причем MVC это не архитектура ВСЕГО приложения
если ты посмотришь на то что в статье + далее статьи тех годов с описанием флоу данных и т.д. и потом посмотришь на react + redux какой
то как бы увидишь много схожего


finkel
29.01.2017
21:44:21
простите за много букв)
Есть 3 сущности:
User
-id (int)
Settings (что-то типа связующей таблицы в manyToMany, но с доп данным и только на половину замапленная)
-id (int)
-page (manyToOne Page)
-user_id (int)
-string_settings (string)
Page
-id (int)
-settings (oneToMany Settings)
У меня есть список из сущностей Page, хочу выводить настройки Page->getSetting() исходя из user_id.
Я делал так:
Получал коллекцию Page, затем у каждой Page доставал коллекцию связанных настроек (Page->getSettings()) и фильтровал их по user_id (collection->filter()) и если что-то оставалось, то уже получал из них string_settings (Settings->getStringSettings()).
В контроллере это все выглядело стремно, перенес эти фильтры в getter getSettings у сущности
Page (Page->getSettings(user_id = null)), получилось чуть менее странно, но меня все равно не покидает ощущение, что что-то не так.
Как вариант доставать запросом сразу правильные settings у всех Page, исходя из user_id, но смущает, что у одного и того-же Page, будут разные данные в getSettings, если я их достал запросом то Page будет содержать данные только с нужным user_id, то что мне и надо, но если я получаю список Page через другой запрос, без settings и использую ленивую подгрузку данных в геттере, то там будет список настроек для всех user_id. Это вообще нормально?


Sergey
29.01.2017
21:46:51
$this->regions->matching(
Criteria::create()->where(
Criteria::expr()->eq('user', $user)
)
);
точнее $this->settings
оно тебе сгенерит нужный sql запрос и выгребет только то что надо

finkel
29.01.2017
21:48:08

Taras
30.01.2017
08:39:46
умнички :) https://adnauseam.io/

Ivan
30.01.2017
08:56:19
а зачем это нужно? установил плагин, прочитал что к чему. вот только смысла не понял.