
Dmitry
05.07.2017
16:09:19
с переездом то чем помогают?

Adel
05.07.2017
16:09:19
ну мы в России программировать то не умеем. Вот казахи умеют. вот их и хантят. ты это хочешь услышать?

Kirill
05.07.2017
16:10:00
Нет совсем не это.

Adel
05.07.2017
16:10:03
))

Google

Dmitry
05.07.2017
16:10:08
местные денег много хотят ;) недоджуниор, а уже 150 давай плати ;)

Adel
05.07.2017
16:10:19
и этот фактор кстати тоже учитывается
думаю он много на что влияет

Kirill
05.07.2017
16:10:31
То что вы очень хорошо кодите это известный факт. Зря ты так...

Adel
05.07.2017
16:10:46
я не делю людей на национальности :)
и никому не советую. так проще жить

Dmitry
05.07.2017
16:11:21
угу, "и матом не ругаюсь" ;)

Adel
05.07.2017
16:11:27
ругаюсь

Dmitry
05.07.2017
16:13:35
вот как думаете... есть юзера редакторы и статьи лобают... что ставить во внешнем, restrict или set null ? :)

Pavel
05.07.2017
16:31:24
На статьи или на юзеров?

Dmitry
05.07.2017
16:33:50
ну вряд ли у юзера есть поле article_id :)

Adel
05.07.2017
16:35:27
я вообще не понял о чем вопрос

Pavel
05.07.2017
16:35:43
Сейчас я придерживаюсь мнения что надо ставить restrict

Google

Pavel
05.07.2017
16:35:50
А юзеров удалять нельзя
Ну в крайнем случае блокировать или что-то типа soft deletable

Dmitry
05.07.2017
16:36:16
ну да... в общем где-то того же мнения
хотя сейчас все же решил set null... типа, могу нарушить правило ;)

Adel
05.07.2017
16:36:39
теперь дошло. ясное дело юзеров не удаляют :)

Dmitry
05.07.2017
16:37:23
ну, прям категорично не удаляют? ;)

Pavel
05.07.2017
16:37:31
Вроде в постгресе том же есть прекрасный оператор DELETE CASCADE который в случае нужды удалит и юзера и его посты.

Adel
05.07.2017
16:37:36
удаляют.. в 20 веке...

Pavel
05.07.2017
16:37:40
Или как-то там можно извернуться.

Adel
05.07.2017
16:37:55
дада. логика удаления юзера в каскадах...

Dmitry
05.07.2017
16:37:59
а что изменилось в 21-м веке, что юзеров стало нельзя удалять? ;)

Pavel
05.07.2017
16:38:19

Adel
05.07.2017
16:38:38
нельзя. на них куча всего завязано обычно. плюс удаление очень дорогая операция.. хайлоады и всякое такое

Dmitry
05.07.2017
16:38:41
это не филосовский, а вполне бизнелогиковый ;)
ну вот опять хайлоады ;)

Adel
05.07.2017
16:39:40
да чот.. немного поработаешь и мозги уже по-другому варят. удалять дорого очень.

Pavel
05.07.2017
16:39:41
При попытке напрячь извилины мы приходим к парадоксу корабля Тесея и наступает splitbrain

Dmitry
05.07.2017
16:40:23

Pavel
05.07.2017
16:40:48
Ну вот как бы статья - она не принадлежит редактору на самом деле.
Если редактор уволится, то статью ведь не удаляют.

Google

Pavel
05.07.2017
16:41:22
И опять же новая головоломка - принадлежит ли редактору его аккаунт в базе данных.

Dmitry
05.07.2017
16:41:44
редактору не принадлежит ничего ;) ТК РФ ;)

Pavel
05.07.2017
16:42:08
Ну вот, а курс в вузе принадлежит преподавателю? =)
Тот который он сам писал в двух тетрадках и преподает 15 лет.

Adel
05.07.2017
16:42:32
т.е. если редактор нахулиганит наспоследок. его удалят. а потом по логам нельзя будет вычислить что он сделал? что он там напортил? какие статьи и т.д.

Dmitry
05.07.2017
16:42:45
если писал в рабочее время сидя в университете на зарплате - то нет, не принадлежит ;)

Pavel
05.07.2017
16:43:19
Наконец то мы плавно подошли к теме которую я хотел обсудить - event sourcing

Adel
05.07.2017
16:43:37
в котоом юзера не удаляют :)

Dmitry
05.07.2017
16:43:40
ну были бы логи действий, то, наверное, было бы restrict...

Adel
05.07.2017
16:44:11
хорошо. а если он кучу статей завел нпоследок. и там полно всякой ерунды. как их найти теперь?

Dmitry
05.07.2017
16:44:36
список по дате добавления ;)

Adel
05.07.2017
16:45:25
и смотреть все статьи

Pavel
05.07.2017
16:45:25

Adel
05.07.2017
16:45:33
именно так
это абсолютно нелогичное поведение
как и удаление юзера
если он чтото делал в системе - что останется после него мы должны знать что это он

Pavel
05.07.2017
16:46:19
Например зарегался спамер, насоздавал 100000 постов, его модератор удалил. В результате все статьи стали анонимными.

Alexandr
05.07.2017
16:46:52
Нет - надо с удалением статей.. спамер не редактор же..

Dmitry
05.07.2017
16:47:00
Это бизнес-логика, на самом деле

Google

Pavel
05.07.2017
16:47:15
Но и с другой стороны - restrict подход не очень хорошо работает в честной системе. Когда надо например удалить пользователя, а его статьи оставить. Тогда неудобно все как-то становится.

Dmitry
05.07.2017
16:47:21
Она шире, чем логика внешнего ключа.. те же форумы предлагают оба варианта

Alexandr
05.07.2017
16:47:23
Просто аккаун должен быть архивирован к примеру..

Dmitry
05.07.2017
16:48:31
но у меня тут все тупо... тупая yii, тупой crud на добавление статей, тупой crud на создание пользователей (какой-то готовый модуль) и полное отсутствие внешних ключей... причесываю как бы

Alexandr
05.07.2017
16:49:13
Запись юзера недолжна удаляться - deleted=true

Adel
05.07.2017
16:49:22

Dmitry
05.07.2017
16:49:51
ага, ибо хайлоад и все такое, я понял ;)

Pavel
05.07.2017
16:50:18
Ну я бы не удалял хотя бы потому, что непонятно зачем это делать.
Можно просто скрыть или блокировать.

Dmitry
05.07.2017
16:50:35
Я давно расстался с мыслю, что разработчик всегда выше обычного пользователя и умеет смотреть на проблему глобоко и разносторонне ;)

Admin
ERROR: S client not available

Adel
05.07.2017
16:50:47

Dmitry
05.07.2017
16:50:51
Ну, потому-что в этом круде есть иконка "удалить" ;)

Pavel
05.07.2017
16:51:36
Удалить с точки зрения пользователя - это значит сделать так чтобы элемент исчез и пользователь не мог его нигде найти и пощупать.

Adel
05.07.2017
16:51:39

Dmitry
05.07.2017
16:51:42
больше аргументов не было ;)
но в общем я согласен, мдя... просто если сделать restrict - тупой админ тупрой компании получит SQL error при нажатии на иконку удалить и будет *** мозг

Pavel
05.07.2017
16:52:31
Самый сильный аргумент - это нарушение консистентности данных

Dmitry
05.07.2017
16:53:00
нет никакого нарушения консистентности, нарушение консистентности - это когда нет внешнего ключа

Google

Pavel
05.07.2017
16:53:04

Dmitry
05.07.2017
16:53:26
а это какой-то готовый модуль
а наследовать и править готовые модули хрен знает как написанные - это нафиг, проще set null :)

Pavel
05.07.2017
16:54:36
Получается ты взял и переписал прошлое в своей системе.

Dmitry
05.07.2017
16:55:09
Ну да, если я уволил человека из компании, то из рейтинга его тоже нужно убрать ;)

Pavel
05.07.2017
16:55:46
А если там еще какие-нибудь рассчеты премий за годы, исходя из позиции в рейтингах то это затронет других авторов, короче все складывается как карточный домик.

Dmitry
05.07.2017
16:56:16
ну да, те, кто был ниже рейтингом только спасибо скажут ;)

Adel
05.07.2017
16:56:19

Dmitry
05.07.2017
16:57:04
Кто сказал? Ты, а хто ты такой в этой компании? Разработчик? Вот и разрабатывай, а генеральному виднее ;)
Я к тому, что на самом деле удалять или нет - это, как ни странно, бизнес...

Pavel
05.07.2017
16:57:34
Да бизнес дурак
Он ничего не понимает в правильной разработке.

Dmitry
05.07.2017
16:59:58
Не, смотри... бизнес дает задачу "удалить". В понимании бизнеса "удалить" - это скрыть с глаз долой. Как разработчик ты можешь или удалить или ввести флаг. Только флаг - он много сложнее, и не потерять нигде его. А потеряешь в каком-то рейтинге - бизнес даст проблему ;) Бритва О́ккама

Pavel
05.07.2017
17:01:21
Ну так из рейтинга он пропадет по любому, а бизнес потом спрашивает: а чего это у нас вся бухгалтерия за прошлый год съехала, и новый чувак требует от нас денег?
Начинаются разборки, поиски виновных.. Потом бизнес начинает подумывать, а зачем ему все эти проблемы и не купить ли битрикс... Хорошим это не закончится.

Dmitry
05.07.2017
17:02:08
это проблема бизнеса ведь, так? ;)
битрикс тоже удаляет ;)

Pavel
05.07.2017
17:02:47
Проблема у бизнеса, но все подумают что разработчики идиоты и все испортили как всегда.

Adel
05.07.2017
17:02:53
но хорошие разработчики в галерах.. надолго не задерживаются

Dmitry
05.07.2017
17:03:34
ибо это вообще-то работа аналитиков ;)