
Дмитрий
24.04.2018
19:52:06
Какие-то вредные советы на оопшный лад, перевёрнутый мир, всё наоборот

Mykola
24.04.2018
19:52:17
ну мы щас рассматриваем альтернативы, они есть, хотя все тут утверждают что их нет

Дмитрий
24.04.2018
19:52:28
Ясно

Mykola
24.04.2018
19:53:02
вот эти все "ясно", "понятно"

Google

Mykola
24.04.2018
19:53:15
а где конкретика почему так плохо делать?
аргументация?

Maksim
24.04.2018
19:54:04
ну от тебя её и ждут) почему это плохо в твоей картине мира)
в разные вещи народ укпарывается, но что бы в конструкторы - эт впервые)

Mykola
24.04.2018
19:54:43

Дмитрий
24.04.2018
19:55:04
Попробуй говорить с собеседниками а не сам с собой)

code4aman
24.04.2018
19:55:09
вот да

Maksim
24.04.2018
19:55:40
1) да, метод) вызывается вслед за каким-то мифическим событием.
2) всё то же самое, что и всегда
3) понять и простить
4) хоть через рефлексию
чё дальше?)

Mykola
24.04.2018
19:57:00
дальше думать почему так

Maksim
24.04.2018
19:57:08
нахера?

Mykola
24.04.2018
19:57:20
чтоб моск развивать
если он канеш есть

Maksim
24.04.2018
19:57:53
подумай лучше про теорию большого взрыва. От этого хоть какая-то польза есть. И она мозг задействует, в отличии от этого булшита

Google

code4aman
24.04.2018
19:59:36

Mykola
24.04.2018
20:01:47
итак:
- конструктор нарушает LSP почти всегда... это никого не интересует?
- вызывать его как метод не имеет смысла, но он доступен как метод... это типа ок?
- жизненный цыкл обьекта - это что-то новое, неизученное в ООП
- есть отличный способ обойтись без конструктора-метода, например как в Scala
я перефразировал, надеюсь теперь понятно в чем боль

code4aman
24.04.2018
20:08:23

Mykola
24.04.2018
20:09:13
> 1 - фактори метод может возвращать что угодно
именно! например что-то другое
я не хочу влезать в фактори-метод сейчас, это грустная тема...

code4aman
24.04.2018
20:10:55

Mykola
24.04.2018
20:10:55
и если уж предлагаются такие воркараунды с ним, то зачем тогда конструтор вообще? в фактори-методе можна и поля все установить

code4aman
24.04.2018
20:11:23
для этого конструктор

Mykola
24.04.2018
20:12:05
а ридонли это какие? специальные readonly? не приватные?

Дмитрий
24.04.2018
20:12:20
Вот что случается с людьми в языках без функций as first class citizens

Maksim
24.04.2018
20:12:27
пхпшник не палится)

code4aman
24.04.2018
20:12:31

Mykola
24.04.2018
20:12:54
это в каком языке есть такое прикольное?

code4aman
24.04.2018
20:13:16
C#, TS еще думаю

Дмитрий
24.04.2018
20:13:17
В любом нормальном

code4aman
24.04.2018
20:13:34
везде где классы есть же?

Mykola
24.04.2018
20:14:02
вспомнил, да... уже забыл эту штуку в сишарп, давно было.... но это же костыль)

Google

code4aman
24.04.2018
20:14:30
readonly > private set > public set, парад костылей

Mykola
24.04.2018
20:15:13
еще protected, sealed
а еще friend

code4aman
24.04.2018
20:15:51
ну ты чет путаешь
это уже про наследование

Mykola
24.04.2018
20:17:41
с чего бы? вот friend - это по сути то, что происходит, когда ты пытаешься приватный метод у обьекта вызвать из стсаческого метода
остальное тоже про доступ

code4aman
24.04.2018
20:19:22
ноуп, френд да, про доступ, но я не подразумевал его использование

Mykola
24.04.2018
20:19:50
но что-то му отвлеклись.... так зачем нам такие поля, которые можно только с конструтора установить? что это дает нам?
особенно если мы можем вызвать конструтор явно второй раз и переопределить их....
и вообще почему эти поля можно записывать только в конструторе, а не просто "возможность записи один раз"

Дмитрий
24.04.2018
20:31:15
Обычно подобные диалоги ведут с уткой
Использовать чаты в данных целях неприлично))

code4aman
24.04.2018
20:33:18

Sergey
24.04.2018
20:34:45

code4aman
24.04.2018
20:35:12
я думал KISS

Mykola
24.04.2018
20:36:33
так где тут KISS? вызывам статический метод, чтоб он вызвал приватный конструктор, чтоб он засетил ридонли поля?

Ky
24.04.2018
20:37:27

Mykola
24.04.2018
20:37:27
и где здесь broad vs narrow?

code4aman
24.04.2018
20:38:17

Google

Mykola
24.04.2018
20:39:05
где вопрос? я только одно утверждение вижу, где в конце знак вопроса... но на вопрос не похоже

code4aman
24.04.2018
20:39:55
broad api or narrow api? choose your warrior :D

Sergey
24.04.2018
20:43:05

Mykola
24.04.2018
20:43:55
ну каким, это ж метод, он должен сохранять совместимость с сигнатурой родителя, а это очень редко бывает

code4aman
24.04.2018
20:44:05

Mykola
24.04.2018
20:44:17
все началось как раз с такого вопроса: абстрактный конструтор

Sergey
24.04.2018
20:44:21

Mykola
24.04.2018
20:44:37
именно

Sergey
24.04.2018
20:45:04
ну короч ты мягко подходишь к мысли что классы это офигеть как устаревшая и неактуальная на сегодня концепция?

Mykola
24.04.2018
20:45:18
скорее не так

Sergey
24.04.2018
20:45:28
к слову - в контексте прототипного наследования ж нет проблемы с конструкторами и LSP

Mykola
24.04.2018
20:45:35
просто классы в разных языках - очень разные

Sergey
24.04.2018
20:45:44

Mykola
24.04.2018
20:46:06
ну я к тому, что кое-что устарело)
например, языки программирования

Sergey
24.04.2018
20:47:00

Mykola
24.04.2018
20:47:15
еще нет, дай где)
но суть та, да

Sergey
24.04.2018
20:47:38
http://www.moserware.com/2008/04/towards-moores-law-software-part-3-of-3.html

Google

Sergey
24.04.2018
20:47:43
ну например из распиаренного вот это
типа реализация TCP/IP стэка в 200 строк

Mykola
24.04.2018
20:53:11
да, угу
только я шото не понял, это только концепция, или они уже пилят?

Дмитрий
24.04.2018
20:57:33
Хотя как низкоуровневая база весьма эффективен

Sergey
24.04.2018
20:58:32

Дмитрий
24.04.2018
20:59:15
Ну как эталон монстроузных возможностей
Можно делать слишком невероятные вещи)
ну это к слову

Sergey
24.04.2018
20:59:35
а ну это да

Дмитрий
24.04.2018
21:00:04
По ссылке выше люди со своего угла зрения подходят к самой топовой сейчас идее

Mykola
24.04.2018
21:00:26

Дмитрий
24.04.2018
21:01:07
Sum type, dsl, case class, unions, free monads, даже конечные автоматы с натяжкой — это всё выражает одну и ту же идею

Mykola
24.04.2018
21:01:49

Дмитрий
24.04.2018
21:02:43
Идею о том, что бизнес логика выражается конечным числом отдельных сущностей, я не уверен что могу это явно сформулировать

Mykola
24.04.2018
21:03:04
open-closed в широком смысле
это именно оно

Дмитрий
24.04.2018
21:03:49
Нет, это радикально иной уровень
Об этом можно судить хотя бы потому что все движутся в одном напрвлении но ни у кого ещё не получилось исчерпывающего решения