
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#

Aleh
03.09.2018
14:50:28

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
но врядли доживу

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
в каком случае надо приводить все к числу?)

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
тогда не вижу проблемы
бля

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
))))

Kirill
03.09.2018
15:04:02

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

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

Aleh
03.09.2018
15:33:55
И void это все-таки тип)

Google

Sergey
03.09.2018
15:35:36
ну то есть оно реально чекает не типы а синтаксис

Aleh
03.09.2018
15:35:54

Kirill
03.09.2018
15:36:45

Sergey
03.09.2018
15:36:48
и конкретно 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

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. если совсем надо что-то трекать эдакое - пишешь обертку которая берет номера строк которые были зааффекчены, и эксклудишь те штуки которые не в этих строчках. Сам.
просто, схему проще читать, легко достигается
и не надо людям типа меня объяснять что за хуиту вы там придумали себе)
причем шторм вроде как blame -w по умолчанию юзает.


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

Sergey
03.09.2018
21:23:50
и да - волшебный пакет называется "не болит не трогай"


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