
Dmitry
06.11.2017
19:20:54
с другой стороны, в пхп можно array_keys(array_flip(...))... O(2n) получится? ;)

Adel
06.11.2017
19:21:22
https://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html
он наверно это имел ввиду
оно хранит только уникальные :)

Google

Adel
06.11.2017
19:21:45
и там разумеется сложность приятная

Dmitry
06.11.2017
19:23:10
ну так в пхп хеши ака массивы так же использовать можно... ну чуть затратнее по памяти
интересно... SplPriorityQueue - это по сути sorted list?
хм, а как SplType работает...

Pavel
06.11.2017
20:24:33
Хватит это терпеть, почему бы на zephir/c не накодить нормальные структуры в виде расширения и не юзать их ?

Dmitry
06.11.2017
20:29:24
что терпеть то? ;) мне просто интересно стало internals, там $foo = "xxx" дает исключение.... ;)

Pavel
06.11.2017
20:32:14
Почему нету структур данных нормальных?
Коллекций
С фильтрами функциональными
Почему в каждом проекте свои костыли снова и снова
ДОКОЛЕ?

Dmitry
06.11.2017
20:33:44
а коллекция - это разве структура данных? ;)

Pavel
06.11.2017
20:34:27
Нет

Google

Pavel
06.11.2017
20:34:36
Поэтому я ее и написал отдельным сообщением.

Dmitry
06.11.2017
20:37:42
короче, даешь дженерики

Alexander
06.11.2017
20:42:31
перезагрузки бы не помешали, а дженерики зачем?

Pavel
06.11.2017
20:43:42
перезагрузки? да пхп и так перезагружается на каждый реквест!

Dmitry
06.11.2017
20:44:07
перегрузки ваще не нужны ;)

Alexander
06.11.2017
20:44:25
Да вообще все и так норм )

Dmitry
06.11.2017
20:44:26
дженерики для коллекций хотя бы

Alexander
06.11.2017
20:46:13
это абстрактно, а на практике я с такой необходимостью не сталкивался...а вот перезагрузки не помешали бы ))

Dmitry
06.11.2017
20:46:29
что абстрактно? коллекции абстракно?

Alexander
06.11.2017
20:46:30
и перезагрузки операторов ещё

Pavel
06.11.2017
20:46:38
Хм а разве не получится сделать что-то типа:
$collection = new Collection(Item::class)
Это не то же самое что дженерик будет?
Или ты хочешь именно типизацию

Dmitry
06.11.2017
20:47:05

Alexander
06.11.2017
20:47:26
мм ) типизация в пхп который for http...

Dmitry
06.11.2017
20:47:36
как сказать, что этот метод принимает только коллецию объектов Foo

Alexander
06.11.2017
20:49:18
я как-то тоже писал GUI на php, а потом просто скачал Visual C# )

Pavel
06.11.2017
20:49:21
Ну впринципе, маленький workaround - создай
interface FooCollectionInterface
class FooCollection extends Collection implements FooCollectionInterface

Dmitry
06.11.2017
20:49:46
ну интерфейс тут нафиг не нужен, а так да...

Google

Pavel
06.11.2017
20:50:06
+2 пустых файла, и фактически типизация готова

Dmitry
06.11.2017
20:50:14
ну и получается, что на каждый объект еще и коллекцию создавай... и всякие add(Foo $foo) там описывай
пустые не получится ;) хотя бы из-за add...

Pavel
06.11.2017
20:50:50
Блин, кажется тут этот разговор уже 3 или 4 раз по кругу идет снова опять

Dmitry
06.11.2017
20:51:01
или того же map - нужно же сказать, что он FooCollection вернет

Alexander
06.11.2017
20:51:22
Вот поэтому и перезагрузка бы пригодилась
add(int $foo) add(Foo $foo)

Pavel
06.11.2017
20:51:35
Для этого нужно написать генератор типизированных коллекций

Dmitry
06.11.2017
20:51:56

Pavel
06.11.2017
20:52:19
Даешь на вход консольной команде директорию, она в ней ищет все сущности и генерить гору ClassCollection файлов с методами и типизациями

Dmitry
06.11.2017
20:52:20

Alexander
06.11.2017
20:52:29
Так я тоже не понимаю половину чего вы пишите ) Просто я на практике сталкивался с тем что мне этого нехватало...

Dmitry
06.11.2017
20:52:45
с синтакстисом дженериков и генерацией "на лету" ;)

Dmitry
06.11.2017
20:52:48
но костыль же

Alexander
06.11.2017
20:54:00
phpшной? да, но только если надо

Dmitry
06.11.2017
20:54:25
а "если надо" - это как? ;)

Alexander
06.11.2017
20:55:02
Если надо именно конкретный тип получить, а не mixed например
например $user_id может быть User | UserID | int

Dmitry
06.11.2017
20:56:54
писать код, что бы там только UserId был бы - не, незя? ;)

Alexander
06.11.2017
20:57:56
Можно, но смысла нет если все значения валидные...

Google

Dmitry
06.11.2017
20:58:54
в читаемости и предсказуемости кода смысл, не? ;) или у тебя сегодня одно настроение - UserId пользуешь, завтра другое - int... а кому-то потом разбираться

Alexander
06.11.2017
20:59:34
Для этого есть phpdoc + просто doc
+ защита от дурака

Dmitry
06.11.2017
21:00:32
ага, в рантайме...
теперь понял зачем тебе нужна перегрузка... и понял, почему не хочу, что бы перегрузку добавили в пхп ;)

Alexander
06.11.2017
21:04:15
Ну никто же не заставляет пользоваться ) Есть например более практичный пример, когда api можно вызвать зная ID пользователя или имея User объект. Если ты напишешь User тип, то придется тянуть юзверя из базы, если UserId или int, то будет лишний код при каждом вызове
Самое плохое, если кто-то напишет User тип, а у тебя есть только ID...

Dmitry
06.11.2017
21:05:38
...byUserId($userObject->getId()) ?
byUserId(new UserId($intId)) ?

Admin
ERROR: S client not available

Alexander
06.11.2017
21:06:42
вот так и происходит, тут перезагрузки бы помогли. Сейчас делаем либо bySome() либо phpdoc

Dmitry
06.11.2017
21:07:07
намек был, что тут достаточно одного метода

Alexander
06.11.2017
21:08:20
На практике бывает самый худший вариант byUser(new User($userId))

Pavel
06.11.2017
21:09:13
надо просто стараться отрывать руки тому кто такой код придумывает. Тогда ущерб будет нанесен меньше.

Dmitry
06.11.2017
21:09:21
в смысле "на практике"... если тебе нужен в классе user - то user, если достаточно userId - то userId

Pavel
06.11.2017
21:09:29
Я везде где нахожу такое - переписываю на нормальные сущности

Dmitry
06.11.2017
21:09:56
"нормальные сущности" - "сущности с нормальным распределением" ;)))

Alexander
06.11.2017
21:09:58
Потому что бывает что пишется интерфейс где нужен User а потом оказывается что достаточно UserId )

Pavel
06.11.2017
21:10:10
Пришел id - как можно быстрее конвертнули его в сущность и далее во всех сервисах оперируем ею.

Dmitry
06.11.2017
21:10:41

Google

Alexander
06.11.2017
21:11:34
со временем я решил не заморачиваться и меньше пользоваться типизацией
кстати за рефакторинг никто не хочет платить...

Dmitry
06.11.2017
21:14:15
а не нужно продавать рефакторинг, он закладывается в разработку

Alexander
06.11.2017
21:15:15
тогда цена выше будет
заказчику же важно дешево и быстро обычно
Насколько я помню, все крупные проекты по такому принципу создавались, а потом 10 раз переписывались

Dmitry
06.11.2017
21:35:25
так се оправдание для говнокода и неспособности спроектировать интерфейс ;)

Adel
06.11.2017
21:45:50
истину глаголишь на ночь, Дмитрий

Pavel
06.11.2017
21:54:17
Меню:
-------------
- Написание кода с $user, $userId, int - 20$/час
- Написание кода только с $user - 25$/час

Adel
06.11.2017
21:57:33
надо понимать что если агрегату надо только юзерид - то так и надо оставлять. это ддд, детка

dypa
07.11.2017
06:31:34

Кирилл
07.11.2017
07:14:35
Доброе утро. Есть ли форум по nginx?

dypa
07.11.2017
07:23:03
гугл, яндекс и бинг заблокировали?!

Иван
07.11.2017
07:24:17

Pavel
07.11.2017
08:31:29

dot
07.11.2017
09:32:40
Здравствуйте. Скажите вот у меня есть функция `doform: function (event) {
alert(event.target)
}` она повешана на колонци таблицы. Как мне вытащит ь то что внутри ячеек ?

Максим
07.11.2017
09:34:38

dot
07.11.2017
09:45:14
не неработает "Uncaught ReferenceError: $ is not defined"

Alexandr
07.11.2017
09:46:51
https://www.youtube.com/watch?v=BlDK2KKKYc8

Adel
07.11.2017
09:47:30

Dmitry
07.11.2017
09:56:37
не в классе

Alexandr
07.11.2017
09:57:43
@Fisher с кофе прошел ? С зачетной футболкой