
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 Уже чекает

Sergey
15.10.2018
08:13:51

Aleh
15.10.2018
08:14:16

Google

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

Sergey
15.10.2018
08:14:56

dypa
15.10.2018
08:15:00

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

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

dypa
15.10.2018
08:19:03

Sergey
15.10.2018
08:19:35

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

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

Google

dypa
15.10.2018
08:21:30

Sergey
15.10.2018
08:21:54

Maksim
15.10.2018
08:22:00

Sergey
15.10.2018
08:22:13

Anton
15.10.2018
08:22:40

Sergey
15.10.2018
08:23:24
вот такие вот либки в целом бы устранили любую необходимость в отдельном операторе
но опять же - господ с WP на php 5.3 все еще хватает, им лучше оператор
либки они не любят, только если их можно через админку как zip архив загрузить
деструктуризацию списков ты так же наверное призираешь:
[$foo, $bar] = [$bar, $foo];

Anton
15.10.2018
08:29:17

dypa
15.10.2018
08:29:30

Sergey
15.10.2018
08:29:45

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

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

Sergey
15.10.2018
08:34:06

Bohdan
15.10.2018
08:34:10

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
а если быть честным с собой: часто у вас столько аргументов, что бы это имело смысл?) не попытка ли это решить другую, более важную проблему, заметя под коврик?

Sergey
15.10.2018
08:45:56

dypa
15.10.2018
08:45:59

Aleh
15.10.2018
08:46:58

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

Dmitry
15.10.2018
08:50:18

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

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

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

Sergey
15.10.2018
08:52:43

Dmitry
15.10.2018
08:52:44

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

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

Google

Aleh
15.10.2018
08:58:55
git checkout --ours && composer cs-fix

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

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

Google

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

Борис
15.10.2018
09:07:41

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
ну как... не совсем имутабельность...
но типа значения не меняются. могут лишь быть новыми

Борис
15.10.2018
09:10:22

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 копии