@prophp7

Страница 1161 из 1387
Мио
06.07.2018
18:30:38
кто нибудь занимался поисками двумерных таблиц подходящих параметров в потоке данных?

Мио
06.07.2018
20:42:44
есть большой файл а в нем таблицы. с примерно похожей структурой но разными значениями.

надо определить такие таблицы

Google
Vadim
06.07.2018
20:50:08
Что за формат?

Sergey
06.07.2018
20:54:53
надо определить такие таблицы
типа схему выделить и потом искать соответствия?

Мио
06.07.2018
20:55:21
да, пока решается регулярками + фильтр по результатам

но хочется готового решения

Что за формат?
текстовый файл

Aleh
06.07.2018
21:13:32
@mkusher поможешь?)
Не уверен, что пытаться делать типы в пыхе нужно

Aleh
06.07.2018
21:15:10
Чтобы сделать query builder надо ж не просто настоящие генетики завезти, а еще всякие операторы для работы с ними, всякие Pick, Omit, еще mapped types

Aleh
06.07.2018
21:17:48
причем тут квери билдеры?)
Ну либо я не понял что надо

Sergey
06.07.2018
21:17:49
тут хотя бы что-то лучше чем psalm сгодилось бы

Aleh
06.07.2018
21:18:04
Kotlin?)

Sergey
06.07.2018
21:19:07
ну то есть как по мне проблема тулов типа psalm/phan/phpstan - неверный подход к поиску компромисов на ложно-позитивные случаи (типа "не ну люди в 99% случаев проверяют есть файл или нет, и только потом file_get_contents юзают, накой проверять на false. Или накой проверять getType(): Type на нул, есть же hasType который 99% людей дернут.

Google
Sergey
06.07.2018
21:19:52
ну то есть тула не должна идти на компромисы, но должна предоставить точку расширения для умных "подавителей" ошибок

хочешь - будет как у psalm, а хочешь - будет режим паранойи

Aleh
06.07.2018
21:21:30
Sergey
06.07.2018
21:21:36
ну и опять же можно сделать точку расширения

которая позволит для array_map свой вывод типов мутить

да, будет по итогу раз так в 3-4 медленнее чем psalm. но зато гибко и более точно

Aleh
06.07.2018
21:22:55
А кто считает не так?

Т.е. это ж не проблема вывода, а проблема описания std?

Sergey
06.07.2018
21:23:21
psalm, phpstan. у них просто стринг потому что "не ну в 99% случаев там не будет false и нечего ругаться что ты не проверил"

Aleh
06.07.2018
21:23:37
Это проблема решается за 2 минуты форком)

Sergey
06.07.2018
21:23:41
в phpstorm стабах там string | false

Aleh
06.07.2018
21:23:45
Но это вообще не проблема

Sergey
06.07.2018
21:23:58
Но это вообще не проблема
psalm умеет только локальный вывод типов

меня это бесит

то есть вывод типов внутри замыкания но не с вызывающей стороны

Google
Aleh
06.07.2018
21:24:32
Проблема с array_map в общем-то в variadic аргументах, но и это решается через описание конкретных случаев

Sergey
06.07.2018
21:25:00
array_filter([1, 2, 3], function ($i) { return $i % 2 === 0; });

вот попроще вариант

Aleh
06.07.2018
21:25:37
Окей, что здесь не так у psalm?

Sergey
06.07.2018
21:25:49
https://getpsalm.org/r/3f99ef2c0d

Aleh
06.07.2018
21:25:50
Кроме того, что ни одна тула не умеет в генерики?)

Sergey
06.07.2018
21:26:15
ну оно не может вывести тип $i

Aleh
06.07.2018
21:26:28
Потому что это сложная задача вообще говоря)

Для этого надо уметь в генерики

Sergey
06.07.2018
21:26:48
Для этого надо уметь в генерики
psalm чуть-чуть умеет в дженерики

https://github.com/vimeo/psalm/issues/762

Aleh
06.07.2018
21:26:58
Sergey
06.07.2018
21:27:04
вот с этой штукой может быть можно будет описать то что я скинул

Aleh
06.07.2018
21:27:26
Он просто вместо генерика почти всегда пихает any

Sergey
06.07.2018
21:27:29
Давай будем честны)
ну оно реально умеет, просто использует их только для локальных проверок что делает это все чуть более чем бесполезным

Aleh
06.07.2018
21:29:01
Делать точки расширения кмк это рак, потому что мы теряем весь смысл типов, как компактного явного языка описания интерфейсов

И начинаем использовать вместо этого компактного языка венец творения computer science, который хотели чуть-чуть подлечить этими самыми типами

Sergey
06.07.2018
21:31:09
не всегда

Google
Aleh
06.07.2018
21:32:10
?

Sergey
06.07.2018
21:32:19
https://getpsalm.org/r/b02cf767c1

охереть, неужели

так, надо твой пример с котиками и собачками

Aleh
06.07.2018
21:33:25
https://getpsalm.org/r/b02cf767c1
А другой инт тоже нельзя ?(

Это похоже на проблемы тса, он тоже очень узкие типы выводит

Ну не настолько конечно

Sergey
06.07.2018
21:34:59
ну можно добавить /** @var Container<int> $data */

но чисто теоритический твой пример с котиками и собачками psalm сейчас захэндлит

Admin
ERROR: S client not available

Sergey
06.07.2018
21:35:36
сча потещу

Aleh
06.07.2018
21:35:58
Variance это настолько сложно, что лучше даже не начинать

В тс это делали года два

Sergey
06.07.2018
21:36:59
ммм

/** @var Container<int> $string */ $string = new Container('test');

оно даже это не смогло красненьким пометить

(

Aleh
06.07.2018
21:37:42
В тс это делали года два
И не сделали, просто убрали бивариантность аргументов функций(это было по сути эквивалентно выводу any)

Короче генерики(параметрические типы) это вершина айсберга

Google
Aleh
06.07.2018
21:39:11
Как только появляется параметр начинается столько всего веселого с его выводом, что ненароком можно сделать тьюринг полный язык из вашей системы типов

Sergey
07.07.2018
03:16:48
не сильно понимаю все же в чем проблема ADR

Sergey
07.07.2018
07:34:38
не сильно понимаю все же в чем проблема ADR
проблема ADR в отсутствии профита. pmjones предлагает тебе по классу на экшен. Это часто провоцирует людей пихать туда логику. Во всяком случае по моим наблюдениям.

а так как в его понимании Domain это "все что угодно что вы и так юзали" а Responder "что вы там раньше юзали для view" то в целом встает вопрос - а нахера тогда ты это придумал?)

имхо переименовывание компонентов никак людям не помогает по итогу.

было 3 херни где можно код писать - осталось 3 херни где можно код писать. Понимания когда надо юзать transactional script или дробить это еще на слои (application layer + domain layer + persistence layer) у людей не добавляется. Да даже то что мы с тобой обсудили уже (где ты все пытался с базами данных связать) немного говорит о том что проблема у ADR та же что и у MVC - типа "домен это про базу данных"

вместо этого лучше реально воспринимать твое приложение как некую цепочку адаптеров над приложением. И тем самым разделить уровни применения подходов - типа архитектура самого приложения отдельная история. Лучше распространять мысль что слои имеют свою стоимость, иногда они нужны а иногда нет. Есть масса других способов абстрагировать тот же контроллер от UI (за счет мидлваров) и реюзать в MQ или в CLI

ну и про вертикальные срезы нежели горизонтальные, которые могут иметь каждый свою оптимальную схему работы

(примерно то о чем Уди говорит)

Sergey
07.07.2018
08:13:34
хм...

я так понимаю что суть в том, что эти срезы как раз и находятся в зоне домена

ADR не решает проблему доменов, она для Web-application

кстати у меня как раз очень тонкие действия выходят, по размеру примерно как в том видео где сервисы размер сервиса

вернее его метода

в принципе идея с action вместо жирного контроллера если я правильно понимаю мысль в том, чтобы у действия была одна зона ответственности

кстати говоря о паттернах очень уж мне это напоминает command паттерн

Sergey
07.07.2018
08:29:06
в смысле полностью?

таких нет

частично - да

Sergey
07.07.2018
08:29:56
не очень в это верю

но что бы что-то говорить нужно видеть код

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