@prophp7

Страница 842 из 1387
Like
18.12.2017
12:39:45
Ну, это понятно Я к тому, что человек привел пример с типами, на что я предложил использовать type hinting

Кто его знает, возможно, он не знает про это? :)

Maksim
18.12.2017
12:40:23
Возможно он ещё знает как круто пхп типы приводит) Но это всё лирика.

Roman
18.12.2017
12:40:55
Google
Like
18.12.2017
12:41:04
Возможно он ещё знает как круто пхп типы приводит) Но это всё лирика.
Возможно, я еще знаю, что php типы иногда принимает за константы? :)

Sergey
18.12.2017
12:41:18
А почему не видите смысла юзать в проектах?
что бы это давало пруфит - оно должно падать в рантайме. А я не хочу что бы мой проект падал в рантайме)

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

ну тобишь когда я например тесты генерю какие

Like
18.12.2017
12:42:00
Возможно он ещё знает как круто пхп типы приводит) Но это всё лирика.
И все таки... Если речь про сравнение, то строгое тебе в помощь

Sergey
18.12.2017
12:42:51
Maksim
18.12.2017
12:43:07
что бы это давало пруфит - оно должно падать в рантайме. А я не хочу что бы мой проект падал в рантайме)
А функциональные для чего?) Имхо, как раз наоборот падать ему не надо. Так, верификация "интерфейса" на всякий случай.

Если случилось, значит руки в тиски и таску

Sergey
18.12.2017
12:44:00
А функциональные для чего?) Имхо, как раз наоборот падать ему не надо. Так, верификация "интерфейса" на всякий случай.
юниты тоже неплохо так рантайм чекают раз на то пошло. Речь идет о том что в тестах у тебя вполне контролируемая среда

Like
18.12.2017
12:44:21
Ну блин, мы про типы не договорили :(

Roman
18.12.2017
12:44:29
вреда тоже не вижу)
Ну аргумент, чтобы приложение не крашнулось, тоже довольно сильный

Sergey
18.12.2017
12:44:29
ты можешь чего словить конечно - но тебе это статические анализаторы подсветят. Другое дело когда тебе надо интегрироваться с чем-то непонятным

Maksim
18.12.2017
12:44:49
У тебя набор входных типов данных всегда конечен. При чём тут контролируемые данные?

Google
Sergey
18.12.2017
12:44:51
Ну аргумент, чтобы приложение не крашнулось, тоже довольно сильный
вопрос что тебе важнее - не допустить крэш или отлавливать странное поведение часами

Dmitry
18.12.2017
12:45:01
зная пхп и управляя входными данными - в общем строгий режим и не особо нужен

Sergey
18.12.2017
12:45:20
У тебя набор входных типов данных всегда конечен. При чём тут контролируемые данные?
увы система типов в php слишком ущербная что бы все покрыть

Maksim
18.12.2017
12:45:45
увы система типов в php слишком ущербная что бы все покрыть
Что она ущербная - окей. Но тем не менее?

Roman
18.12.2017
12:47:05
Хех, два лагеря людей получается: кто-то юзает полностью, а кто-то нет) Я лично в данный момент использую только тайп-хинтинги и тестирую код, но вот что-то задумался про наличие типизации построже

Dmitry
18.12.2017
12:47:38
по сути с большой вероятностью включение строгого режима приведет к function((int)$param) вместо function($param) и никакого профита

Maksim
18.12.2017
12:47:41
Тебе на уровне кода ни что не мешает всё контролировать самому. Но если такое случилось, что тайпихинт ругнулся - значит херово следил, исправляй.

Sergey
18.12.2017
12:48:20
Что она ущербная - окей. Но тем не менее?
что тем не менее? ты не можешь типами в php все покрыть

это тебе не хаскель

а значит где-то будут места где ты не сможешь типы вывести

Sergey
18.12.2017
12:48:44
а если ты исходишь из позиции "хочешь хорошо - делай хорошо" - то это ниочем

Maksim
18.12.2017
12:49:08
Ну у тебя калькулятор есть. Строки ждёт. Что ты там покрыть не можешь?

Danila
18.12.2017
12:49:36
ОПОМНИТЕСЬ! Я прозрел!

Вас траллят!

Не повторяйте моих ошибок

Признаваться в собственных ошибках приятно

Google
Danila
18.12.2017
12:50:03
Признайтесь

И перестаньте с ним спорить

Sergey
18.12.2017
12:50:14
Признайтесь
я пушу в мастер с форсом

Danila
18.12.2017
12:50:26
Не та конфа лол

Maksim
18.12.2017
12:50:32
непустые строки
Ну чёт такое себе

Like
18.12.2017
12:50:34
я пушу в мастер с форсом
Такс... Почему в пхп нельзя все типами покрыть?

Dmitry
18.12.2017
12:50:41
опаньки...

Sergey
18.12.2017
12:51:41
Ну чёт такое себе
если мы говорим о самом примитивном варианте - типа "эта штука принимает на вход массив пользователей" - то ты уже не можешь это через тайп хинты выразить. Остается только phpdoc + статический анализатор. А тогда вопрос - нафига мне нужны тайпхинты в рантайме если я все типы и так могу в компайл тайм прочекать?

а если мне не нужны тайпхинты в рантайме - зачем мне стрикт мод?

Maksim
18.12.2017
12:52:07
Дженерики "скоро" будут

Sergey
18.12.2017
12:52:23
Dmitry
18.12.2017
12:52:59
дженерики - это всего лишь упрощение, тебе ничего не мешает делать коллекции на каждый нужный тип

Maksim
18.12.2017
12:54:17
Ну если не брать в расчёт экзотику, то я не понял почему пример с пустой строкой. Баально с тем же калькулятором 0 будет такой же эффект оказывать. Это ведь не типа проблема, а логики

Sergey
18.12.2017
12:54:26
ну то есть я понимаю профит, НО! Это не практично

тем более что какой-нибудь phpstan/phan умеют в простенькие Post[][][]

Like
18.12.2017
12:55:08
Не практично юзать type hinting в языке с динамической типизацией ?

Google
Sergey
18.12.2017
12:55:29
или прекондишен для калькулятора - как хочешь это называй

есть варианта два: - декларативно описать тип - императивно проверить в рантайме

в конечном счете все сводится к подтверждению корректности

Dmitry
18.12.2017
12:56:02
Не практично юзать type hinting в языке с динамической типизацией ?
а как ты определяешь "динамическую типизацию"

Maksim
18.12.2017
12:56:34
Ну что б не долетала дрянь всякая, либо контролируй то, что скармливаешь в ф-ю, либо сооруди аспект какой-нить)

Sergey
18.12.2017
12:56:41
Не практично юзать type hinting в языке с динамической типизацией ?
посмотри на python) там тайпхинты есть, есть дженерики и т.д. И главное - они никак не влияют на рантайм

а сейчас из-за того что тайпхнинты в php влияют на рантайм не могут запилить тайпхниты для пропертей и дженерики (медленно)

Dmitry
18.12.2017
12:57:50
спорный вопрос, что лучше - упасть в рантайме в проде или подать неверное значение и произвести неизвестную операцию

Sergey
18.12.2017
12:57:51
короч в php тайхинтинг нужен не для того что бы типы контролировать а что бы иллюзию контроля создавать

Admin
ERROR: S client not available

Dmitry
18.12.2017
12:58:35
ну тайпхинт - это тот же ассерт по сути

Sergey
18.12.2017
12:58:49
function ($foo, $bar) { assert(is_string($foo) && mb_strlen($foo) > 3); assert(is_numeric($bar)); }

Like
18.12.2017
12:59:14
function ($foo, $bar) { assert(is_string($foo) && mb_strlen($foo) > 3); assert(is_numeric($bar)); }
Тайп хинтинг который мы заслуживаем

Sergey
18.12.2017
12:59:17
ну тайпхинт - это тот же ассерт по сути
1. только если кастрированные 2. их в отличии от ассертов нельзя выключить

Maksim
18.12.2017
12:59:27
короч в php тайхинтинг нужен не для того что бы типы контролировать а что бы иллюзию контроля создавать
Да нет же) падение в рантайме и есть контроль) И то, что ты его допустил - ошибка же твоя) А пхп тебе не дал просрать пару миллионов, которые не туда улетели)

Sergey
18.12.2017
12:59:36
Нахер ваши дженерики Я жду overload
вот оверлоада точно не будет

Google
Dmitry
18.12.2017
12:59:43
Скорее зависит от бизнеса)))
от бизнеса зависит, да... но проблема в том, что нет разделения программистов на тип бизнеса ;)

Sergey
18.12.2017
12:59:44
пока Зив не сдохнет

и вся эта вордпресс рать

Like
18.12.2017
13:00:07
вот оверлоада точно не будет
Но, как же... function s(string $s): void; function s(array $s): void;

Like
18.12.2017
13:00:35
пока Зив не сдохнет
Понял, выезжаю

Dmitry
18.12.2017
13:00:41
1. только если кастрированные 2. их в отличии от ассертов нельзя выключить
1. что значит "кастированные"... просто выполняющие свою работу, для другого - есть другое 2. а зачем их выключать?

Maksim
18.12.2017
13:00:57
попробуй хаскель)
Погоди, я ещё питон не добил)

Sergey
18.12.2017
13:01:19
п - ad-hock полиморфизм

Like
18.12.2017
13:01:28
function s($s) { if (is_string($s)) {$s = [$s]} }
Да, но я хочу чтобы был тип :(

Sergey
18.12.2017
13:01:50
Like
18.12.2017
13:01:57
function s(string | array $s);
Разве добавили?

Sergey
18.12.2017
13:02:00
нет)

Like
18.12.2017
13:02:05
Подло

Добавляют всякую херню типа retry для исключения...

А годные rfc выкидывают

Dmitry
18.12.2017
13:02:33
это хорошо, пока меняются только типы... а вот когда сигнатуры - уже так себе логика будет

?
18.12.2017
13:02:48
Sergey
18.12.2017
13:02:57
вот оверлоада точно не будет
не сильно то и нужно

Like
18.12.2017
13:02:59
Попробуй Java :)
Нет, спасибо, никогда больше туда не вернусь...

Sergey
18.12.2017
13:03:02
А годные rfc выкидывают
там вся проблема - найти доводы

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