@prophp7

Страница 1279 из 1387
Dmitry
03.09.2018
14:36:13
только говнокод стимулировать

Ivan
03.09.2018
14:36:20
+

Dmitry
03.09.2018
14:36:25
дженерики нужнее

F01134H
03.09.2018
14:37:49
Можно долго обсуждать че нужнее, на самом деле

Google
F01134H
03.09.2018
14:38:06
особенно когда речь про пхп

f4rt~
03.09.2018
14:47:37
F01134H
03.09.2018
14:48:22
фарт, ты мне друг или сундук? Если сделаешь, то сундук

Sergey
03.09.2018
14:48:36
ну потому что нельзя пока
foo(0); foo('0'); foo(false); ну скажи какие перегрузки должны юзаться и как это все дружит с жанглированием типами

если бы в php выпилили приведетие типов неявное и сделали все стрикт по дефолту - можно думать о перегрузках

Ivan
03.09.2018
14:49:22
статическая типизация + перегрузка методов

Sergey
03.09.2018
14:50:03
статическая типизация + перегрузка методов
тут строгая статическая нужна. Но тогда вопрос зачем вообще тебе статическая типизация.

да и вообще - если у тебя такие запросы - нафиг тебе php? есть Java есть kotlin есть c#

Ivan
03.09.2018
14:50:37
у меня и так котлин

Sergey
03.09.2018
14:50:38
*сильная
да, заглючило

Ivan
03.09.2018
14:50:53
?

Google
Sergey
03.09.2018
14:51:15
перегрузка еще менее нужная
я был бы не против перегрузки операторов... можно было бы красивые DSL делать)))

но врядли доживу

Ivan
03.09.2018
14:51:42
welcome to ruby

ухожу ухожу

Aleh
03.09.2018
14:52:11
Sergey
03.09.2018
14:52:20
welcome to ruby
не, спасибо. Я типы хочу в этом соусе. И хороший вывод типов. То есть не не руби

Aleh
03.09.2018
14:52:50
))) ну я ж хочу что бы правильно но
$a + $b ага, давай опишем общий случай

в каком случае надо приводить все к числу?)

Sergey
03.09.2018
14:53:22
Aleh
03.09.2018
14:53:29
а если есть __toString() ?)

Sergey
03.09.2018
14:53:35
в каком случае надо приводить все к числу?)
воу воу, не надо приводить вообще. не надо менять тип

Aleh
03.09.2018
14:53:42
т.е. ломаем пхп?

Sergey
03.09.2018
14:53:54
да!

Aleh
03.09.2018
14:54:10
ну сам понимаешь)

Sergey
03.09.2018
14:54:11
или.... фича доступна только если стоит use strict=1

Aleh
03.09.2018
14:54:25
т.е. ломаем всех в declare(strict=true)?)

Sergey
03.09.2018
14:54:27
тогда не вижу проблемы

т.е. ломаем всех в declare(strict=true)?)
там не ломается - там уже не будет кастов типов... а не... будет для операторов

бля

Google
Sergey
03.09.2018
14:54:45
все плохо

Aleh
03.09.2018
14:54:52
declare(strict==true)

)))

Sergey
03.09.2018
14:54:56
declare(strict_for_real=true)

Aleh
03.09.2018
14:55:05
двойное равно смешнее

Sergey
03.09.2018
14:55:08
))))

Andrew
03.09.2018
15:10:59
Sergey
03.09.2018
15:19:18
Опять. "return;" это void
void это отсутствие ретурна. Возможность написать return; при типе void это лишь "сахар" что бы ты имел возможность делать early return

Kirill
03.09.2018
15:24:20
void это отсутствие ретурна. Возможность написать return; при типе void это лишь "сахар" что бы ты имел возможность делать early return
void - это тип возвращаемого значения (в данном случе - возвращаемое значение должно отстутствовать), а не декларация об отсутствии какого-либо оператора. Прописать ": Generator" можно и без return в функции вообще, как пример. Ну, не суть - главное, что не null

Sergey
03.09.2018
15:24:57
это я к тому что void это НЕ тип данных. это пустое множество. Ничего. Нет ретурна. Явное указание что функция никогда ничего не вернет. Которое сам пых проверит в компайл тайме.

Kirill
03.09.2018
15:29:14
Имхо, стоит разделять понятие типа данных и понятие типа возвращаемого значения

Sergey
03.09.2018
15:30:32
void это отсутствие типа

и нет не надо разделять "тип" и "тип"

Kirill
03.09.2018
15:33:53
Ещё осталось осмыслить, что тогда такое ?void

Google
Sergey
03.09.2018
15:35:36
Это не совсем так, функция, которая ничего не возвращает в пыхе это либо бросающая эксепшн, либо с бесконечным циклом
я к тому что void отличается от всего что есть в php тем что указание этого дела влияет на то, как компайлер реагирует на код. Если он видит что функция void и видит в коде return $someValue; то оно упадет.

ну то есть оно реально чекает не типы а синтаксис

Kirill
03.09.2018
15:36:45
Sergey
03.09.2018
15:36:48
Ты чё, это вывод
но он не чекает тип вывода, он чекает что вывода нет

Будет чекать и типы, если там ?void
это проблема имплементации nullable

и конкретно void часть тут не фигурирует, просто у тебя нет другой возможности описать что функция возвращает null

Aleh
03.09.2018
15:37:46
Sergey
03.09.2018
15:40:30
вот была бы алгебра типов...

Admin
ERROR: S client not available

Sergey
03.09.2018
15:40:45
type FooBar = Foo | Bar | null

Maksim
03.09.2018
15:51:40
и что ж ты на пхп делаешь...)

я хочу анализатор нормальный) а всякие эти алгебры типов нахер идут) и так сойдёт) псалм делает меня беситься постоянно.. что не день, то праздник(

Dmitry
03.09.2018
16:12:45
напиши свой ?

Maksim
03.09.2018
16:36:04
напиши свой ?
Тупой шибко)

Dmitry
03.09.2018
17:16:39
слуште, а эти все анализаторы умеют хотя бы кодстиль проверять только в дифах?

Maksim
03.09.2018
17:17:45
Не хочешь легаси затрагивать?

Dmitry
03.09.2018
17:18:12
ну да, оно точно не пролезет

стат анализ выдернет свой код с сервера и убежит в шоке

Google
Maksim
03.09.2018
17:18:50
На счет дифов не знаю, а игноры директорий/файлов можно наставить

Стат анализ без полного инспекта бесполезен ведь будет

Dmitry
03.09.2018
17:19:16
ну хоть кодстайл

Maksim
03.09.2018
17:19:18
А всякие фиксеры - хер на них)

Dmitry
03.09.2018
17:20:22
Приходится самому тут писать на базе ast дерева… но блин… так далеко не уехать

Maksim
03.09.2018
17:22:12
Хз. Как по мне, код стаил не является в проекте сколько-нибудь важным моментом. Разово фиксер прогнал, результат взял за точку отсчета и вперед: пущай перед комммтом все к 1 приводит

Dmitry
03.09.2018
17:22:38
тяжко будет с блеймом работать…

Maksim
03.09.2018
17:23:09
Ну, свои велосипеды тоже не оч легко держать, так-то

Dmitry
03.09.2018
17:24:17
Это т да… да и с дифом как-то нет идей как работать, если ast строить…

ID писать в формате id_* - что за… кто-то так еще пишет? поля в базе

Valentin
03.09.2018
19:27:03
ID писать в формате id_* - что за… кто-то так еще пишет? поля в базе
У нас на проекте вообще правило такое, все поля в таблице с префиксом самой таблицы, типа: members (member_id, member_name, member_password..) так мол джоины писать легче, ну и конечно исторически так сложилось)

Dmitry
03.09.2018
19:42:07
не ну такое я знаю, что так делают... но вот что кто-то будет писать id_member... первый раз увидел

Sergey
03.09.2018
21:11:39
слуште, а эти все анализаторы умеют хотя бы кодстиль проверять только в дифах?
1. код стайл лучше сразу применить ко всему коду. Если ты опасных трансформаций не делаешь то это безопасно. 2. если под код стайлом ты подразумеваешь что-то более жесткое - например никаких protected полей - то ты можешь сам замутить проверку на измененных файлах (но проверяться будут файлы целиком) - https://gist.github.com/fesor/05ea5add783382047b2cf0dbf0000099 3. если совсем надо что-то трекать эдакое - пишешь обертку которая берет номера строк которые были зааффекчены, и эксклудишь те штуки которые не в этих строчках. Сам.

У нас на проекте вообще правило такое, все поля в таблице с префиксом самой таблицы, типа: members (member_id, member_name, member_password..) так мол джоины писать легче, ну и конечно исторически так сложилось)
хз как это помогает, с таким подходом просто не юзать элиасы для имен таблиц и вжух SELECT member.id, member.name profile.some_info FROM member INNER JOIN profile ON profile.id=member.id

просто, схему проще читать, легко достигается

и не надо людям типа меня объяснять что за хуиту вы там придумали себе)

причем шторм вроде как blame -w по умолчанию юзает.

Panda
03.09.2018
21:17:23
а вот расскажите начинающему плиз: как вообще анализировать свой код? ну вот есть у меня проект на ларавеле/симфони/просто набор скриптов. Как мне найти в нем узкие места? какие бенчмарки? что вообще делать? этим профайлер должен заниматься?

есть ли "волшебный" пакет который по нажатию кнопки сделает хорошо?)

Sergey
03.09.2018
21:23:50
а вот расскажите начинающему плиз: как вообще анализировать свой код? ну вот есть у меня проект на ларавеле/симфони/просто набор скриптов. Как мне найти в нем узкие места? какие бенчмарки? что вообще делать? этим профайлер должен заниматься?
1. оптимизации требуются там где есть проблемы с производительностью. 2. нет проблем с производительностью - забей. 3. в большинстве ситуаций узким местом будут запросы в базу 3.1 отсутствие индексов, кривые запросы - это можно трекать слоулогом на продакшене и фиксить то что медленно 3.2 много маленьких повторяющихся запросов - опять же профайлер в случае симфони неплохо с обнаружением этого дела справляется 4. php-fpm предоставляет slow log так же, по которому можно трекать какие запросы были медленные что бы уже лазить профайлером 5. если у тебя есть деньги и проект представляет важность - можно заебашить какой сэмпловый профайлер на продакшене который будет тебе скидывать статистику (newrelic, tideways) - особенно хорошо когда у тебя легаси

и да - волшебный пакет называется "не болит не трогай"

Panda
03.09.2018
21:25:39
можно поподробнее про слоулог?

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