Sergey
22.09.2017
09:52:27
понимание вреда сайд эффектов должно быть просто, как понимание "что не так с goto" и "зачем было придумано структурное программирование"
Борис
22.09.2017
09:52:50
Дмитрий Maestro
22.09.2017
09:53:10
Evgeniy
22.09.2017
09:53:46
Google
Evgeniy
22.09.2017
09:53:53
потом переход на зависимости
но еще есть мутабельный и имутабельный, но да ладно
Борис
22.09.2017
09:54:16
Sergey
22.09.2017
09:55:42
Evgeniy
22.09.2017
09:56:03
но итого нравиться про то что я ничего не хочу сказать
что все зависит от ситуации и целесообразности
Sergey
22.09.2017
09:56:37
а это сложно
очень сложно
особенно когда все привыкли делать сервисы-менеджеры и им норм
Evgeniy
22.09.2017
09:57:19
к сожалению это очень просто, но очень очень сложно объяснить человеку
Дмитрий Maestro
22.09.2017
09:57:21
Sergey
22.09.2017
09:57:38
Google
Evgeniy
22.09.2017
09:58:06
тут как раз вопрос понимания и общения
а как ты заметил например у меня иногда ты называешь "потоком сознания" потому что есть иногда беда с донесением мысли
и такая проблема не только у меня
и не только у программистов
простой мой заход чуть чуть с другой стороны идти от приложения к автотестам в виде проверок того что приложение работает так как ожидается
а вот уже как писать тесты зависит от приложения
Aleh
22.09.2017
10:00:57
Evgeniy
22.09.2017
10:01:25
где то надо юнит тесты, где то вместо кучи юнитестов достаточно одного приемочного теста
ведь кого ебет что у тебя куча юнит тестов и все они зеленые, но апи отдает ошибку?
сори за мат
Aleh
22.09.2017
10:02:00
Или на выхах свой написать, и тестировать его еще на нем самом
Herman
22.09.2017
10:03:39
не
я ценю своё время
Aleh
22.09.2017
10:04:31
я ценю своё время
Именно поэтому и советую, займет не так много времени как понимание магии кодсепшенп
https://github.com/mkusher/reactphp-co/blob/master/specs/spec.php#L91
Sergey
22.09.2017
10:10:30
что не так? время? это быстрее чем лепить кастыли с ассертами и проверками
инфраструктурные ограничения? уж не знаю остались ли такие проблемы
юридические ограничения? например "обновляем пыху - надо устраивать аудит"
Google
Herman
22.09.2017
10:13:43
Sergey
22.09.2017
10:13:58
остались
расскажи, может быть мне пригодится
Herman
22.09.2017
10:14:02
просто не надо эту тему тут поднимать. это бессмысленно
Борис
22.09.2017
10:21:47
бля.... ну ты интригант. Такими фразами заинтересовал 1084 человека. Во всяком случае тех, кто активно читает :) Давай уже, колись. Тебя ж не просят называть имена и явки.... или я чего-то не понимаю
Aleh
22.09.2017
10:22:42
У него кровный уговор с дьяволом, наверное
Dmitriy
22.09.2017
10:25:45
да просто боиться что его зачморят )
Dmitry
22.09.2017
10:26:05
ваще не понял, речь о замене тайпхинтинга на ассерты? как бы разные вещи вообще
Sergey
22.09.2017
10:28:18
Dmitry
22.09.2017
10:29:01
ну тайпхинтинг рантайму не особо и нужен
Aleh
22.09.2017
10:29:30
Так тайпхинтинг ж только в рантайме и работает
Алексей
22.09.2017
10:29:48
Дмитрий Maestro
22.09.2017
10:30:03
да
Алексей
22.09.2017
10:30:07
давно я тут таких страстей не видел
Дмитрий Maestro
22.09.2017
10:30:08
не знал про это
Sergey
22.09.2017
10:31:10
ну тайпхинтинг рантайму не особо и нужен
ты с python не перепутал случайно? у php тайпхинтинг работает именно в рантайме. То что он позволяет тебе еще и статически получать инфу о типах - это далеко не все что в похапэ делается
Dmitry
22.09.2017
10:35:25
я о том, что если у тебя в рантайме те ошибки, что позволяет ловить тайпхинтинг... то у тебя большие проблемы разработкой
ассерты же все же валидация данных... испотльзовать их в роли тайпхинтинга, т.е. в роли зищиты от ошибок программиста.. как-то весьма странно
Роман
22.09.2017
10:50:12
как лучше регулярку сделать на описание
https://regex101.com/r/P3FRjt/2/
Google
Dmitry
22.09.2017
10:52:43
а где там <desc> в тексте
Роман
22.09.2017
10:54:22
так desc просто группа
там неважно слово , главное охват
Alexander
22.09.2017
10:55:00
а где там <desc> в тексте
<desc> это named token, нужен для того, чтобы вхождение попало в массив с ключем desc, а не просто с индексом
Dmitry
22.09.2017
10:55:43
а, ну ты сказал "на описание", вот я ухватился
на какое описание нужно то
Eugene
22.09.2017
10:56:44
Други, добрава дня. Есть какие то ограничение для паттерна "цепочка отвественности", например уже больше 15 "звеньев", значит неправильно выбран паттерн?
Роман
22.09.2017
10:57:08
Dmitry
22.09.2017
10:58:45
хм... /<tbody>(.*?)<\/tbody>/s
Роман
22.09.2017
11:05:24
а тут картинки как
https://regex101.com/r/mkKZL3/2
у меня за пределы img выходит
Сергей
22.09.2017
11:10:30
Alex
22.09.2017
11:13:51
25к уже долго даже вставка без индекса.
Dmitry
22.09.2017
11:16:44
Роман
22.09.2017
11:17:00
все big надо
Dmitry
22.09.2017
11:17:17
ну просто без привязки к ac_container
Роман
22.09.2017
11:17:18
<\w+[^>]*class="ac_container"[^>]*>[^<]*<ul[^>]*>(?<block>.*?)</ul
вот так и дальше как то картинки витянуть
Dmitry
22.09.2017
11:18:04
ты не усложняй, ты пытаешься каждый тег загнать в регулярку, оно тебе не нужно
Google
Rm
22.09.2017
11:19:21
Dmitry
22.09.2017
11:19:55
если в тебя картинки с big только внутри ac_container, то нафига вообще вводить условие на ac_container, тем более что регулярки плохо работают с деревом, не понимают они его, для них html - плоский текст, т.е. там нет понятия "внутри тега", есть понятие "текст следует за текстом".
Роман
22.09.2017
11:21:55
а если preg_match в preg_match сделать
Sergey
22.09.2017
11:22:52
Dmitry
22.09.2017
11:41:54
И то и другое потив возможности создать невалидное состояние объекта, но применяются в разых целях. И основная цель тайпхинтинга - статанализ, защита от ошибок типов во время разработки. Ассерты же этому ну не очень помогают.
Борис
22.09.2017
11:54:33
Одно и тоже с точки зрения проверки входящих данных (типов объектов)
Dmitry
22.09.2017
11:56:31
Ну ты понимаешь проблему рантайма, да, там запустить мало ;) нужно еще прогнать именно это место с нужным ветвлением и т.п. Да и в большинстве случаев отвалимся где-то дальше без тайпхинтинга. Т.е. ради только этих целей покрывать методы ассертами... имхо выглядит маразматично
по большому счету... я вот не помню на своей практике какие-то серьезных проблем именно из-за ошибок типов в рантайме, возможно потому что IDE и расстановка phpdoc хинтов везде, где они нужны... Хуже не будет от них, понимаю, так что использую тайпхинтинг, но все же считаю, что 99% полезности - это именно статанализ... хз, может и не прав
Herman
22.09.2017
12:10:15
по большому счету... я вот не помню на своей практике какие-то серьезных проблем именно из-за ошибок типов в рантайме, возможно потому что IDE и расстановка phpdoc хинтов везде, где они нужны... Хуже не будет от них, понимаю, так что использую тайпхинтинг, но все же считаю, что 99% полезности - это именно статанализ... хз, может и не прав
если какой-то баг делаешь, его проще отловить, т.к. сразу понятно в каком месте, чем расставлять ловушки по всему коду
это основная цель
Dmitry
22.09.2017
12:14:58
Весьма расплывчато. Я вижу только один вариант - сложный баг связанный с кривым приведением типов (типа строки в int) который дает не фатал, а именно что неверное поведение. Но зная особенности PHP и так это каждый раз перепроверяешь, ну в крайних случаях is_int.
Herman
22.09.2017
12:15:24
практика покажет
я не фанатик, если что отброшу в случае неэффективности
Dmitry
22.09.2017
12:17:30
нет, IDE его видит и подсвечивает ошибки типизации