Size: a a a

Software Design/Architecture/Zen

2020 October 19

SP

Sergey Protko in Software Design/Architecture/Zen
Jerzy Syrowiecki
может, непустой? для пустого-то легко
ну я потому и дал два варианта) надо что бы под оба подходило
источник

SP

Sergey Protko in Software Design/Architecture/Zen
на тему параметризации мол
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
Sergey Protko
сделай мне типы для:

- пустой список
- список интов определенной длины
1) []
2) $arr = new IntArray(5) { private $len; $private $data; __construct($len) {$this->len = len;} } ну и там всякие методы получения / записи значения, тот же ArrayAccess...
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
я вообще ожидал ответа "дык женерики"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Алексей Гевондян
1) []
2) $arr = new IntArray(5) { private $len; $private $data; __construct($len) {$this->len = len;} } ну и там всякие методы получения / записи значения, тот же ArrayAccess...
а теперь опиши мне тип для списка из 5-ти элементов зарегистрированных юзеров)
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
ну а если надо именно абстрактный список - можно сделать базовый класс, 2 подкласса...
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
Sergey Protko
а теперь опиши мне тип для списка из 5-ти элементов зарегистрированных юзеров)
намек на дженерики чтоли?) ну да, не хватает их.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну то есть это уже про комбинаторику - тебе надо комбинировать все варианты. Можешь почитать как реализуется это все дело в каких-нибудь плюсах с темплейтами и какие там кастыли для этого всего
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
фигачить кучу классов разных, да
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну это круто и клево работает в каком-нибудь похапе где типов в компайл тайме как таковых и нет и нет нужды "выделять память под размер заранее"
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
в плюсах да, знаю, все эти темплейты заменяются на физическую кучу разных одинаковых классов, функций, и т д
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
просто ну ок, допустим, список из 5 юзеров. почему из 5? почему не просто User[] ?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
нужны ограничения на размер - делаем класс обертку...
источник

SP

Sergey Protko in Software Design/Architecture/Zen
короч, типы это прикольно. И что бы типы были прикольными (а не как в плюсах и джаве) хотелось бы что бы эти типы за тебя компилятор выводил. А для этого уже там все эти имутабельности и лэйзи вычисления и прочее и прочее
источник

SP

Sergey Protko in Software Design/Architecture/Zen
и как следствие "на джаву это не надеть"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Алексей Гевондян
просто ну ок, допустим, список из 5 юзеров. почему из 5? почему не просто User[] ?
потому что у тебя компонент UI-ый хочет на вход именно 5 элементов и не больше
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
главное чтобы на пхп или жс надели) жава фиг с ней)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ух как же все плохо
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
с динамическими интерпретируемыми языками хорошо то, что в них можно фигачить практически что угодно
источник

SP

Sergey Protko in Software Design/Architecture/Zen
это же и плохо)
источник