@prophp7

Страница 295 из 1387
Sergey
19.03.2017
12:50:41
ну то есть смотря какую идею ты имеешь ввиду

Artem
19.03.2017
12:51:04
конкретно про блоки кода не более одной строки (в if, например)

Sergey
19.03.2017
12:51:09
ну и опять же то что будет хорошо работать для одного конкретного проекта не факт что будет работать для тебя

Google
Artem
19.03.2017
12:51:30
ну вот поэтому я хочу хотя бы один пример, где это бы работало :)

хотя бы один

Sergey
19.03.2017
12:51:35
например?
попиши на хаскель

?
19.03.2017
12:51:57
там нету if'ов?

Sergey
19.03.2017
12:51:57
это работает)

Artem
19.03.2017
12:52:14
это работает)
работало = применялось и применяется в коде

?
19.03.2017
12:52:28
Я пропустил, а чем плохи if и почему от них стоит отказываться?

Sergey
19.03.2017
12:52:28
работало = применялось и применяется в коде
повторюсь. Почитай "чистый код" мартина

Artem
19.03.2017
12:52:42
да я читал его, это не говорит ничего о практике

Sergey
19.03.2017
12:52:44
как по мне вполне себе "пример"

Artem
19.03.2017
12:52:50
александреску тоже многие читали

Sergey
19.03.2017
12:53:15
да я читал его, это не говорит ничего о практике
на самом деле речь идет о том понимаешь ты зачем надо оборачивать в блок или нет

Google
Vadim
19.03.2017
12:53:15
мы ж вроде вчера узнали, что в иф без скобок xdebug не заходит?)

Sergey
19.03.2017
12:53:55
1. оборачивать надо всегда потому что можно проиграть когда добавляешь еще одно выражение, и мы делаем допущение что наша команда не в состоянии чуть что вынести несколько выражений как приватный метод. 2. оборачивать ненадо никогда что бы заставлять выносить несколько выражений как приватный метод

Artem
19.03.2017
12:53:58
в ту же степь дрочь на цикломатическую сложность отдельных методов. Типа давайте мы метод со сложностью 20 разобьём на 5 мелких методов и это типа нам 100% даст более лучший код

может даст, а может и не даст, потому что один метод ты можешь сразу отсмотреть одним взглядом, а 5 будут размазаны

Sergey
19.03.2017
12:54:50
в ту же степь дрочь на цикломатическую сложность отдельных методов. Типа давайте мы метод со сложностью 20 разобьём на 5 мелких методов и это типа нам 100% даст более лучший код
я так понимаю что ты любишь читать километровые методы с кучей ифов. Я сейчас не про парсеры и конечные автоматы, я про простые проверки

качество кода проявляется только тогда когда его читает не автор

если что

а "вынесение в приватный метод" это еще один уровень абстракции

Artem
19.03.2017
12:55:55
я не за то, чтобы делать длинные методы, я за то, чтобы думать как сделать так, чтобы код был проще для понимания. Тупое следование правилам тут не всегда работает

в общем случае да - мелкие методы улучшают понимание кода, но не всё можно разбить так, чтобы получилось проще

Sergey
19.03.2017
12:57:04
я не за то, чтобы делать длинные методы, я за то, чтобы думать как сделать так, чтобы код был проще для понимания. Тупое следование правилам тут не всегда работает
добавлять всегда и везде фигурные скобки это такое же тупое следование правилам как и "никогда не добавлять". Абсолютных правил нет и так или иначе ты будешь их нарушать

в общем случае да - мелкие методы улучшают понимание кода, но не всё можно разбить так, чтобы получилось проще
да, далеко не все. Есть куча примеров когда подобное разбиение наоборот ухудшает восприятие кода

Artem
19.03.2017
12:57:48
тогда о чём мы спорим

Василий
19.03.2017
12:57:51
я не за то, чтобы делать длинные методы, я за то, чтобы думать как сделать так, чтобы код был проще для понимания. Тупое следование правилам тут не всегда работает
зачастую, если вдруг бестпрактисы известные не подходят, то выше уровнем имеется проблема. архитектурная али еще какая.

Sergey
19.03.2017
12:58:15
тогда о чём мы спорим
я понятия не имею, я предложил еще один вариант "как можно делать" а ты захотел каких-то невнятных пруфов

зачастую, если вдруг бестпрактисы известные не подходят, то выше уровнем имеется проблема. архитектурная али еще какая.
бест практисы != правила. Это общие рекомендации. Либо ты их не понимаешь либо ты уже дорос до такого уровня когда понимаешь их настолько что бы нарушать и составлять свои

тупо следовать правилам - плохая идея

Artem
19.03.2017
12:59:51
я понятия не имею, я предложил еще один вариант "как можно делать" а ты захотел каких-то невнятных пруфов
ну просто какой смысл говрить про это мнение, если на самом деле его очень мало кто использует и даже далеко не во всех случаях. Ну как бы да, кто-то так пишет, а кто-то так не пишет (большинство) и хорошо живёт. Может, конечно, я не так тебя понял и ты просто упомянул, что бывают и иные мнения, тогда извиняюсь

Google
Sergey
19.03.2017
13:18:02
как минимум)

потому и говорю)

Artem
19.03.2017
13:20:41
да я тоже стараюсь, благо early return и мелкие методы тут решают. Я подумал, что ты предлагаешь это использовать всегда без исключений

Roman ?
19.03.2017
13:53:18
Для какой версии?
для какой версии чего?

Sergey
19.03.2017
13:54:11
Ну, а если из имени метода вытекает его функционал, то надо ли смотреть код метода?
ну в этом и профит, мы абстрагируем детали и оставляем решение "надо нам погружаться ниже или нет" на того кто читает код.

тем самым можно много информационного мусора прятать

Для какой версии?
подозреваю что речь идет о подобных штуках: ``` if ($someCondition) someAction(); ```

вот с такими штуками бывают проблемы

Roman ?
19.03.2017
13:55:39
ну ты не видишь куда он ушел если не зайдешь в метод

Roman ?
19.03.2017
13:58:18
заход в { ... } считается отдельным шагом

Alexander
19.03.2017
13:58:46
для какой версии чего?
Xdebug в if у меня до февраля заходил. Версия php, 5.6

Alexander
19.03.2017
14:00:27
Ага, но более точно версию не скажу, проекта нет на компе

Sergey
19.03.2017
14:16:47
ну мол я плохо знаю как работает xdebug

но что-то мне подсказывает что он подсасывается к опкодам

а с точки зрения php запись `if ($cond) action()` и `if ($cond) {action();}`

Google
Roman ?
19.03.2017
14:20:22
ну может идеа так интерпретирует а так да, конечно, я зашел сюда чтобы наврать

Sergey
19.03.2017
14:20:25
разворачивается в одни и те же опкоды

у тебя есть опкод

5 1 > JMPZ !0, ->3 2 > ECHO 'Short'

Roman ?
19.03.2017
14:20:57
причем тут idea?
ну я же не в консоли дебажу

Sergey
19.03.2017
14:21:14
ну я же не в консоли дебажу
суть в том что у тебя на уровне рантайма есть опкод и номер строки

Roman ?
19.03.2017
14:21:20
я понимаю

Sergey
19.03.2017
14:21:23
и у тебя есть информация о бряках

Admin
ERROR: S client not available

Sergey
19.03.2017
14:21:48
у тебя переход от одного опкода до другого считается

от jmpz до echo например

и они могут быть на разных строчках

когда у тебя php выполняется информация о фигурных скобочках и любом синтаксисе теряется

потому например "тернаный оператор" через xdebug неудобно отлаживать)

https://www.youtube.com/watch?v=WzLca1nrvXE

Aleh
19.03.2017
14:26:52
попиши на хаскель
так там ж на полиморфизме по сути)

ну, мол если бы бул в пыхе был чем-то аля interface Boolean { public function when(callable $ifTrue, callable $ifFalse); }

или не when, а then или тот же if

Google
Sergey
19.03.2017
14:51:32
и приняли бы arrow-functions

то всеравно ты был бы ограничен одним выражением на ветку условий

``` when($condition)->then( () => action(), () => alternative() ); ```

Aleh
19.03.2017
15:32:05
так типа норм

/
19.03.2017
19:54:08
напомните как можно к массиву обращатсья как к классу?

0 => array (size=2) 'type' => string $obj->type

Артур
19.03.2017
19:54:55
зачем так делать?

Sergey
19.03.2017
20:32:35
(object) $arr;

/
19.03.2017
20:33:29
(object) $arr;
я понял, да так идет, когда массив не многомерный

я понял, да так идет, когда массив не многомерный
foreach ($attachments as $k => $attachment) { // $attachment = new \ArrayObject($attachment,\ArrayObject::ARRAY_AS_PROPS); //time fix $attachment = (object)$attachment; var_dump($attachment->type); а как мне пропихнуть $attachments так

https://habrahabr.ru/post/127711/

(;¬_¬)
19.03.2017
21:44:58
ты к слову так и не ответил зачем тебе это
потому что он латентный жсер и ему сложно в синтаксис пхп

Sergey
19.03.2017
22:17:44
кошмар какой

того глядишь еще один препроцессор напишут

как это было с CWithClasses

Viktor
20.03.2017
01:02:52
PHP Warning: array_replace_recursive(): recursion detected эмн... а как такое вообще может быть?

da horsie
20.03.2017
02:28:45
какой-то элемент массива ссылается на сам массив

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