@prophp7

Страница 1340 из 1387
dypa
15.10.2018
08:13:21
это потому что в php все плохо с типами, нет array shapes, нет туплов и всего того что уже давным давно есть в Hack
мне кажется с php все хорошо, если не забывать про PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.. думаю стоит подкорректировать свои ожидания, либо выбрать другой язык программирования в качестве основного (потому что человек перерос язык). у меня сейчас вот например страннейшее ощушение от чистого js, как будто бы попал в php4 времена

Anton
15.10.2018
08:13:23
вроде так в питоне сделано с их тайп хинтами. нативный питон их тупо игнорит. а какой-нибудь mypy Уже чекает

Aleh
15.10.2018
08:14:16
Google
Aleh
15.10.2018
08:14:24
Тогда и генерики легко завезти

Sergey
15.10.2018
08:14:56
вроде так в питоне сделано с их тайп хинтами. нативный питон их тупо игнорит. а какой-нибудь mypy Уже чекает
для php это будет означать неконсистентность языка (что не ново для него конечно). Когда у тебя часть описаний типов срабатывают в рантайме а часть - нет

dypa
15.10.2018
08:15:00
если не забывать что php это процессор гипертекста - то он нахуй ненужон похапе этот ваш. Ну либо смериться что php это только для бложиков.
так по факту он в 80% случаев и является тем, что запускает бложик. да и не потому что язык лучший сейчас для бложиков, а потому что исторически сложилось

Anton
15.10.2018
08:15:19
да. все забыли, что пхп должен быть в лучшем случае 1 скрипт, который выплюнет тебе html-ку. теперь напридумывали всяких классов и вообще html на JS генерят.

Sergey
15.10.2018
08:15:44
так по факту он в 80% случаев и является тем, что запускает бложик. да и не потому что язык лучший сейчас для бложиков, а потому что исторически сложилось
я вкурсе что php это недоязык, не надо напоминать об этом. Если против разтивия языка и движения его в сторону к мэйнстрим вещам - проходите мимо

Тогда и генерики легко завезти
в целом если так подумать.... есть компромисный вариант что бы и неконсистентностей было мало, и что бы расширять нормально. Типа... оставить текущее поведение для проверок в рантайме за счет упрощения типов. У тебя тип Foo[]|null - будет восприниматься как ?array

dypa
15.10.2018
08:19:03
я вкурсе что php это недоязык, не надо напоминать об этом. Если против разтивия языка и движения его в сторону к мэйнстрим вещам - проходите мимо
я против внедрения всего и вся из других ЯП, потому что у них есть. например за последнее время привнесли goto, spaceship operator из того, что сразу вспомнилось, что нафиг не нужно - но мы сделаем

Maksim
15.10.2018
08:19:51
я к своему стыду так и не знаю чё он делает(

Sergey
15.10.2018
08:19:53
goto - тоже удобно было когда писал таблицу переходов в примитивном компиляторе регулярок

я к своему стыду так и не знаю чё он делает(
if ($a > $b) return 1; if ($a < $b) return -1; return 0; аля такое. не помню когда плюс и когда минус, потому отдельный оператор норм

я против внедрения всего и вся из других ЯП, потому что у них есть. например за последнее время привнесли goto, spaceship operator из того, что сразу вспомнилось, что нафиг не нужно - но мы сделаем
я к тому что если ты не можешь найти применения - это твои проблемы. Для меня важнее что бы новые фичи были консистентны (и с этим беда потому что текущее положение дел блочит почти все плюшки) и безопасны (опасных фич и так в пыхе хватает и без сахарка)

Google
dypa
15.10.2018
08:21:30
вчера как раз заюзал <=> - оч удобно)
без отдельного оператора бы не справился?! ;) конечно бы написал, чуть длинне было бы, но написал бы.

Sergey
15.10.2018
08:21:54
без отдельного оператора бы не справился?! ;) конечно бы написал, чуть длинне было бы, но написал бы.
1. отдельный оператор упрощает это дело в разы 2. он никому не мешает и кушать не особо просит

Sergey
15.10.2018
08:22:13
не было юзкейсов просто, посему и мимо прошёл)
ну вот мне вчера надо было ивенты отсортировать по дате)

Anton
15.10.2018
08:22:40
я к своему стыду так и не знаю чё он делает(
это вроде еще в перле было. сравнивает два числа и выплевывает -1 0 или 1 соответсвенно когда меньше равно или больше

Sergey
15.10.2018
08:23:24
не было юзкейсов просто, посему и мимо прошёл)
я забыл - а уже запилили либку которая позволяет писать что-то типа.... usort($arr, Sort::by(function (Event $event) { return $event->createdAt(); });

вот такие вот либки в целом бы устранили любую необходимость в отдельном операторе

но опять же - господ с WP на php 5.3 все еще хватает, им лучше оператор

либки они не любят, только если их можно через админку как zip архив загрузить

без отдельного оператора бы не справился?! ;) конечно бы написал, чуть длинне было бы, но написал бы.
ну вот давай так... как ты относишься к фиче из php7.3 с возможностью дописывать запятую у последнего аргумента? foo( $a, $b, $c, );

деструктуризацию списков ты так же наверное призираешь: [$foo, $bar] = [$bar, $foo];

Anton
15.10.2018
08:29:17
деструктуризацию списков ты так же наверное призираешь: [$foo, $bar] = [$bar, $foo];
я обожаю теперь [ 'foo' => $foo, 'bar' => $bar ] = ['foo' => 'Foo', 'bar' => 'Bar' ]

dypa
15.10.2018
08:31:20
git diff
foo($a,); - в данном случае не поможет, нужно КАРДИНАЛЬНО менять стиль написания кода

Maksim
15.10.2018
08:33:17
аще никак не отношусь) есть хорошо, нет - тоже норм) ну т.е. моя жизнь лучше явно не станет от такой фичи, но и хуже в целом тоже. единственное, что огорчает - относительная бесполезность новых фич.

Bohdan
15.10.2018
08:34:10
foo($a,); - в данном случае не поможет, нужно КАРДИНАЛЬНО менять стиль написания кода
но занятые в конце добавили именно для многострочных вызовов

dypa
15.10.2018
08:38:03
foo($a,) foo($a, $b,) foo( $a, $b, $veryVeryVeryLoooooooooooooooooooong, ) foo( $a, $b, $veryVeryVeryLoooooooooooooooooooong, $profitHere, ) при написании кода я должен быть либо экстрасенсом, либо писать сразу так foo ( $a, )

Aleh
15.10.2018
08:41:04
Писать сразу

Google
dypa
15.10.2018
08:41:57
Писать сразу
у меня проект начат год, два, пять лет назад, откуда же я знал об этом :)

Maksim
15.10.2018
08:42:51
а если быть честным с собой: часто у вас столько аргументов, что бы это имело смысл?) не попытка ли это решить другую, более важную проблему, заметя под коврик?

dypa
15.10.2018
08:45:59
а если быть честным с собой: часто у вас столько аргументов, что бы это имело смысл?) не попытка ли это решить другую, более важную проблему, заметя под коврик?
обычно до 5 штук, описание типа + нормально названная переменная заставляют делать перенос строки на старые проблемы языка конечно все забивают. это и именование функций, порядок агрументов в них, будет ли аргумент передан по ссылке или нет (sort), super global массивы не являются обьектами

Aleh
15.10.2018
08:46:58
у меня проект начат год, два, пять лет назад, откуда же я знал об этом :)
Как жаль, что не существует способа пройти по проекту и поправить кодстайл, oh wait

Dmitry
15.10.2018
08:47:56
oh wait, с проектом работает более одного человека, которым придется решать конфликты на пустом месте, oh wait, мы сломаем blame, да кому он нужен

Maksim
15.10.2018
08:48:11
увы и ах - часто мгогострочность появляется и при двух аргументах
ну, хрен знает) я конечно люблю джава стиль в именовании, но не до такой степени) в целом, повторюсь, пофиг на фичу. есть - окей, не было бы - тоже не смертельно. да, это потенциально может насрать при сборе каких-то метрик с гита, но их ещё собирать надо.

а так, на лишнюю строку в гит диф аще насрать.

Dmitry
15.10.2018
08:49:10
без нее лучше, конечно, ревьювится легче.. но можно и пережить

Aleh
15.10.2018
08:49:39
Блейм можно выводить не по последнему изменению

Maksim
15.10.2018
08:50:02
без нее лучше, конечно, ревьювится легче.. но можно и пережить
оно справедливо, если ты просматриваешь 100500 изменений в сотне файлов. А если там пара-тройка - проблемы уже нет.

Maksim
15.10.2018
08:50:30
бывает и код на пхп4)

Dmitry
15.10.2018
08:52:05
не в кассу даже если делать промежуточные ревью по большим задачам, все-равно полное ревью тоже нужно делать

Maksim
15.10.2018
08:52:36
полное ревью по задаче делается явно не по дифам)

Dmitry
15.10.2018
08:52:44
Какие конфликты, если код форматируется автоматически, але
ну ты понимаешь, что произойдет, если у тебя человек 20 работает над кодом и ты в какой-то момент пушишь реформатирование?

Maksim
15.10.2018
08:52:45
так что вполне себе в кассу

Dmitry
15.10.2018
08:53:43
и по дифам тоже… ситуаций много бывает я обычно сначала по дифам, потом как возникает вопрос - переключаюсь в код

Google
Dmitry
15.10.2018
09:00:03
Уверен, что по --ours не сдохнет что-то из реальных конфликтов?

Aleh
15.10.2018
09:00:22
для этого уже тесты, проверки типов и так далее

и короткие веточки, конечно же

Dmitry
15.10.2018
09:00:39
Давай проще, сколько разработчиков было в момент, когда решиди “полностью реформатировать код”?

Aleh
15.10.2018
09:00:54
@fes0r сколько нас разрабов?

Sergey
15.10.2018
09:01:11
с пыхом у нас только 4 работают по идее...

5

Aleh
15.10.2018
09:01:17
с фронтом поболее

Sergey
15.10.2018
09:01:25
с фронтом человек 10

и ты претир обновляешь))

проблем небыло

у меня так же небыло проблем с cs-fixer-ом в команде на 12 php-ников

Aleh
15.10.2018
09:02:01
Sergey
15.10.2018
09:02:04
просто пнул всех что бы заребейзились

и да - претир штука порадикальнее чем cs-fixer

потому все это - давно решенная проблема

Борис
15.10.2018
09:03:41
еее, наконец-то я смогу делать как модные чуваки в js: array_reduce($arr, function ($res, $item) { return [...$res, $item->key => $item]; }, []);
Неужто, это читаемее чем array_reduce($arr, function ($res, $item) { $res[$item->key] = $item; return $res; }, []);Ну это субьективно. Да и работать должно на порядки быстрее.... хотя ху ноус

Aleh
15.10.2018
09:03:50
короче заюзать на всем проекте в несколько десятков или двадцатков килострок совсем не проблема, может это проблема при сотнях или миллионах килострок, тут опыта нет

Google
Sergey
15.10.2018
09:04:07
ну мол... основные трудозатраты все же на перевыделение памяти

что до читабельности - тут все в привычки упирается. Если ты никогда не работал с подобным - скорее нет чем да. Если у тебя 50% времени на экране НЕ php - предпочтения могут быть уже другими. Опять же - фича опциональная - не хочешь, не юзай. Просто это к вопросу о консистентности.

Борис
15.10.2018
09:07:41
работать быстрее оно не может потому что и так и так происходит полное копирование массива
Хмм... С каких пор вставка элемента это полное копирование в пыхе? $res[$item->key] = $item; Или я чего-то не знаю?

Aleh
15.10.2018
09:08:11
copy on write не?

Sergey
15.10.2018
09:08:11
copy on write это оптимизация которая позволяет не сразу копировать когда ты по значению передаешь штуки

Aleh
15.10.2018
09:08:41
ну именно здесь она и происходит

Sergey
15.10.2018
09:08:47
если бы ее небыло - любая передача массива как аргумента приводила бы к копированию

Aleh
15.10.2018
09:08:55
при передаче не трогали, при изменении надо копировать и менять

Sergey
15.10.2018
09:09:02
ну как... не совсем имутабельность...

но типа значения не меняются. могут лишь быть новыми

Хмм... С каких пор вставка элемента это полное копирование в пыхе? $res[$item->key] = $item; Или я чего-то не знаю?
создай массив на миллион элементов, добавь еще один - смотрим пиковое потребление памяти

Sergey
15.10.2018
09:10:44
Ок, я упустил момент, что мы передаем в функцию.
не важно передаем мы в функцию или нет - любое изменение массива - происходит полная копия

дальше все зависит от того насколько умные оптимизации под копотом

Aleh
15.10.2018
09:11:11
не важно передаем мы в функцию или нет - любое изменение массива - происходит полная копия
ну вообще пых мог бы это оптимизировать, зная количество ссылок на массив...

мол если она одна, то можно и не копировать

Sergey
15.10.2018
09:11:53
$a = range(1, 1000000); $b = $a; $b[] = 1000001;

2 копии

Страница 1340 из 1387