
Дмитрий
27.03.2018
19:30:35
Там очень верное уточнение The AlanKay definition of OO is largely that given by CarlHewitt for the ActorsModel which is a model of computation, not a programming paradigm. AlanKay has acknowledged explicitly this derivation.

Sergey
27.03.2018
19:30:37
мне кажется это вот важный аспект

Дмитрий
27.03.2018
19:30:43
=)

Sergey
27.03.2018
19:31:19
http://wiki.c2.com/?AlanKayOnMessaging

Google

Sergey
27.03.2018
19:31:22
вот еще
что бы ближе к первоисточникам
Smalltalk-80 never really was mutated into the next better versions of OOP.
Given the current low state of programming in general, I think this is a
real mistake.

Hell
27.03.2018
19:35:34
Эксобар
OK. Но все таки замена базы данных "стока" на фейкостаб - это хорошее архитектурное решение. Правда?

Sergey
27.03.2018
19:36:03
это даже не архитектурное решение

Hell
27.03.2018
19:36:30
ну это же пайповая архитектура

Sergey
27.03.2018
19:36:39

Hell
27.03.2018
19:36:42
у меня тесты

Sergey
27.03.2018
19:37:03
блин у тебя проблема в осутствии адекватного тестового окружения
а ты ее пальцем затыкаешь
(потому что по сравнению с ораклом sqlite это палец)
“Object-orientation lumped [these two actions] into the same bucket” making it difficult to separate “simple, stable data models from dynamic behavioral models”,

Google

Aleh
27.03.2018
19:39:59
хорошо, что есть возможность подменить оракл на sqlite, плохо, что в тестах ты просто не можешь развернуть оракл для тестов

Sergey
27.03.2018
19:40:02
@ZeroBias

Hell
27.03.2018
19:40:49
(потому что по сравнению с ораклом sqlite это палец)
оракл выбирал не я. Мы туда просто наши таблички запихнули. Мой внутренний NoSQL лист мог бы выходные переменные хоть в redis запихнуть.
Оракл важен для входа. Мы оттуда данныей берем для тестов. Т.к. девушки заполняют в программе эти данные. А ты мне предлагаешь дубликаты этих данных делать.
Выходные переменные можно вообще в JSON структуру засунуть

Дмитрий
27.03.2018
19:43:49
Не уверен правда, что DCI это выход а не усугубление ситуации, но насчёт причин они правы))

Hell
27.03.2018
19:44:54

Sergey
27.03.2018
19:46:01
Всё так
https://www.artima.com/articles/dci_vision.html

Дмитрий
27.03.2018
19:47:50
Да, она сейчас выглядит самым перспективным вариантом
пишу-на-скале-уже-год.жпг

andretshurotshka?❄️кде
27.03.2018
19:49:15
напомнило мне session types

Дмитрий
27.03.2018
19:49:41
А что за session types?

andretshurotshka?❄️кде
27.03.2018
19:50:07
описывать процессы в типах

Dmitriy
28.03.2018
05:16:02
ща вам расскажут за ооп

Maxim
28.03.2018
05:34:54

adam
28.03.2018
05:35:12

Pavel
28.03.2018
07:39:59
Привет, пытаюсь сделать чтобы хендлеры работали только с обьектами определенного типа
Вопрос

Google

Pavel
28.03.2018
07:41:19
как реализовать базовый класс, чтобы у всех дочерних был метод хендлер
Но при этом каждый дочерний класс обрабатывал обьекты разного типа

da horsie
28.03.2018
07:42:08
Или не?

Bohdan
28.03.2018
07:42:38
require more получается
lsp уже не lsp

da horsie
28.03.2018
07:42:49
Ну вот да

Pavel
28.03.2018
07:42:51

Bohdan
28.03.2018
07:43:05
тут кто-то цитировал одну из формулировок lsp
require no more, promise no less

da horsie
28.03.2018
07:43:24
Что это значит?
https://en.m.wikipedia.org/wiki/Liskov_substitution_principle

Bohdan
28.03.2018
07:43:40
ты не должен ужесточать типы на вход и не должен смягчать типы на выход

Roman ?
28.03.2018
07:44:21
сложна

Bohdan
28.03.2018
07:45:43
The LSP states that the preconditions of a base class must not be strengthened by a subclass and that postconditions cannot be weakened in subclasses.

Pavel
28.03.2018
07:47:17
а внутри уже делать instanceof

Alexey
28.03.2018
07:48:44
напрашивается цепочка обязанностей

da horsie
28.03.2018
07:49:21

Aleh
28.03.2018
07:49:23

Pavel
28.03.2018
07:51:10

Google

Pavel
28.03.2018
07:54:06
А "жестко типы хотелось написать" чтобы было более нагляднее кто кого должен обрабатывать

Aleh
28.03.2018
07:56:00

Pavel
28.03.2018
07:58:18

Alexey
28.03.2018
08:10:31
Объяви интерфейс с методами handle(Exception) и supports(Exception)
проверяй интерфейс в HandlerManager'e, там же можно описать логику "если не нашлось хендлера, то"

Pavel
28.03.2018
08:12:30
Спасибо всем

Aleh
28.03.2018
08:14:27

Alexey
28.03.2018
08:14:28
ну и наверное отдельный вопрос - как поступать, если несколько хэндлеров обрабатывают один и тот же тип. Популярное решение - вводить приоритет обработчиков, если обработчик должен быть один. Либо отдавать всем обработчикам (а что делать, если в одном вылетит другое исключение и т.п.)

Aleh
28.03.2018
08:14:41
<E extends Exception>

Enterpise
28.03.2018
08:33:31
http://blog.ploeh.dk/2013/01/11/PartialTypeNameRoleHint/
это актуально ? или есть более стильные модные и молодёжныые решения

Sergey
28.03.2018
08:37:38

Pavel
28.03.2018
08:40:49
в языке

Alexey
28.03.2018
08:42:23
если речь о php, то можно посмотреть, как подобная задача решается, например, в Symfony, там есть ExceptionHandler

Enterpise
28.03.2018
08:42:56
см. ответ марка

Google

Enterpise
28.03.2018
08:49:26
хотя стоп
http://blog.ploeh.dk/2013/01/09/MetadataRoleHint/
это лучше
я избавляюсь от ада свич кейс в блобе
у меня сейчас проблема ада парсинга строки "Действия юзера "
Поиск_кликнуть
Поиск - это строка - элемент
кликнуть - это действие

Sergey
28.03.2018
08:59:24

Enterpise
28.03.2018
08:59:34
да
ППКС

Pavel
28.03.2018
08:59:43
пизда

Enterpise
28.03.2018
09:00:16
вернее это язык практикантов на 400 евро базис в Германии
ну как уборщица

Sergey
28.03.2018
09:00:30
то что тебе столько платили не означает что всем столько платят)

Roman ?
28.03.2018
09:00:59
у хеллбоя весна?

Sergey
28.03.2018
09:01:20
я хз... он уже неделю чето на тему DI гуглит

Enterpise
28.03.2018
09:01:38
такое ощущениие что некотрое "немецкие знатоки пхп" не знают функций